Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Jul 2001 16:42:51 +0000 (GMT)
From:      "E.B. Dreger" <eddy+public+spam@noc.everquick.net>
To:        "Michael C . Wu" <keichii@peorth.iteration.net>
Cc:        Alfred Perlstein <bright@sneakerz.org>, smp@FreeBSD.ORG
Subject:   Re: per cpu runqueues, cpu affinity and cpu binding.
Message-ID:  <Pine.LNX.4.20.0107021628210.14203-100000@www.everquick.net>
In-Reply-To: <20010702093638.B96996@peorth.iteration.net>

next in thread | previous in thread | raw e-mail | index | archive | help
(thoughts from the sidelines)

> Date: Mon, 2 Jul 2001 09:36:38 -0500
> From: Michael C . Wu <keichii@iteration.net>

> First of all, we have two different types of processor affinity.
> 1. user specified CPU attachment, as you have implemented.
> 2. system-wide transparent processor affinity, transparent
>    to all users, which I see some work below.
> 
> In SMPng, IMHO, if we can do (2) well, a lot of the problems
> in performance can be solved. 

Not just keeping a given process on the same CPU... but what about a
"process type"?  i.e., if different processes have the same ELF header,
run them _all_ on the CPU _unless_ it leaves another CPU excessively idle.

Why waste [code] cache on multiple processors when you can keep things on
one?

> Another problem is the widely varied application that we have.
> For example, on a system with many many PCI devices, (2)'s implementation
> will be very different from a system that is intended to run
> an Oracle database or a HTTP server.

Could you please elaborate?

> I don't think doing per-thread affinity is a good idea.  Because
> we want to keep threads lightweight.

!!!

> You may want to take a look at this url about processor affinity: :)
> http://www.isi.edu/lsam/tools/autosearch/load_balancing/19970804.html

So many of those links are 404. :-(

> An actual empirical measurement is required in this case.
> When can we justify the cache performance loss to switch to another
> CPU?  In addition, once this process is switched to another CPU,
> we want to keep it there.

Unless two processes are running on CPU #1, and CPU #2 becomes idle.
Then switching a process to CPU #2 makes sense... unless the process
getting switched is "close" to completion.

I'll probably get flamed for suggesting something so ugly, but should we
assume that non-daemon processes are short-running, and be more resistant
to switching CPUs on those?


Eddy

---------------------------------------------------------------------------

Brotsman & Dreger, Inc.
EverQuick Internet Division

Phone: +1 (316) 794-8922 Wichita/(Inter)national
Phone: +1 (785) 865-5885 Lawrence

---------------------------------------------------------------------------

Date: Mon, 21 May 2001 11:23:58 +0000 (GMT)
From: A Trap <blacklist@brics.com>
To: blacklist@brics.com
Subject: Please ignore this portion of my mail signature.

These last few lines are a trap for address-harvesting spambots.  Do NOT
send mail to <blacklist@brics.com>, or you are likely to be blocked.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.20.0107021628210.14203-100000>