9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "Devon H. O'Dell" <devon.odell@gmail.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] cache lines, and 60000 cycles of doom
Date: Fri, 20 Jun 2014 08:47:15 -0400	[thread overview]
Message-ID: <CAFgOgC_kpcEXf4pkLM0fsXambMfjpiKZs3C4haOwPwGwUer=Qw@mail.gmail.com> (raw)
In-Reply-To: <1b3bfeff9117336767b881178d1f8b6a@brasstown.quanstro.net>

2014-06-20 7:50 GMT-04:00 erik quanstrom <quanstro@quanstro.net>:
> On Fri Jun 20 01:04:20 EDT 2014, devon.odell@gmail.com wrote:
>
>> Weird. I assume cycles is using rdtsc or rdtscp. Perhaps some of it is due
>> to a combination of contention and rdtsc(p) being serializing instructions?

I forget that rdtsc isn't, and one uses cpuid to get that behavior.

>> On Jun 19, 2014 12:04 PM, "erik quanstrom" <quanstro@quanstro.net> wrote:
>
> other than the code i posted, nobody else touching the Srb,
> and it's bigger than a cacheline.
>
> why would serialization cause a big issue?

It disables out-of-order execution by the processor, so there's a
pipeline stall.

There's overhead to calling the tsc instructions, but not that much.

Does `srb->wmach != m->machno` imply that t0 and t1 could be run on
different CPUs? TSC is synchronized between cores (unless someone does
wrmsr), but if you bounce to another processor, there's no guarantee.
Perhaps the difference between when the CPUs came online was on the
order of 60k cycles. No clue how cheap sched() is these days.

I should probably start reading the code again before I reply to these
things. Sorry.

--dho

> - erik
>



  reply	other threads:[~2014-06-20 12:47 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-19 16:01 erik quanstrom
2014-06-20  5:03 ` Devon H. O'Dell
2014-06-20 11:50   ` erik quanstrom
2014-06-20 12:47     ` Devon H. O'Dell [this message]
2014-06-20 13:07       ` erik quanstrom
2014-06-20  5:09 ` Bakul Shah
2014-06-20 11:45   ` erik quanstrom

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAFgOgC_kpcEXf4pkLM0fsXambMfjpiKZs3C4haOwPwGwUer=Qw@mail.gmail.com' \
    --to=devon.odell@gmail.com \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).