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>