9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: erik quanstrom <quanstro@quanstro.net>
To: 9fans@9fans.net
Subject: [9fans] nix scheduler changes
Date: Mon, 26 May 2014 13:14:24 -0400	[thread overview]
Message-ID: <2f40e8ca50e83137d89718948b1b2c4b@brasstown.quanstro.net> (raw)

so, i've done a little bit more work characterizing the performance
of the scheduler correctness changes, and i know have some understanding
on why e.g. ping times are a bit slower.

the old code essentially let processor 0 spin in runproc, other processors called
halt.  the new code uses monmwait to wait for a change on all processors.
this has some significant impacts on performance and power use.  for example,
on my test box with 4c/8t:

	spin/halt		monmwait	spin/monmwait
ping	8µs		14µs		8µs		# ip/ping -n10 $sysname
mk	6.26s		3.98s		3.80		# make nix kernel
fans	audible		silent		audible
δpower	-		-24w		0		# resolution = .1A = 12w @ 120v)

this seems to indicate the latency is all in runproc(), and not waiting for things
to be ready and assuming they will be has a big performance boost.

(the third column, testing spin on mach 0, plus monmwait on the others was done
to tell if monmwait has high latency or not.)

i'd really be interested to see what this does on 24c/48t machines.  something
tells me the performance impacts would be huge, and different.

- erik

---
ps. hzsched in the distribution is 10% off for HZ=100, since
schedticks = m->ticks + HZ/10, and delaysched tests
for > not the expected >=.



             reply	other threads:[~2014-05-26 17:14 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-26 17:14 erik quanstrom [this message]
2014-05-27 18:15 ` Jessica Yu
2014-05-27 19:02   ` 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=2f40e8ca50e83137d89718948b1b2c4b@brasstown.quanstro.net \
    --to=quanstro@quanstro.net \
    --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).