From owner-cvs-src@FreeBSD.ORG Wed Sep 27 22:08:36 2006 Return-Path: X-Original-To: cvs-src@freebsd.org Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 276C716A40F; Wed, 27 Sep 2006 22:08:36 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id B9BEA43D5C; Wed, 27 Sep 2006 22:08:33 +0000 (GMT) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id ED46D46CFD; Wed, 27 Sep 2006 18:08:32 -0400 (EDT) Date: Wed, 27 Sep 2006 23:08:32 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: John Baldwin In-Reply-To: <200609271338.22284.jhb@freebsd.org> Message-ID: <20060927230635.D73166@fledge.watson.org> References: <200609261608.k8QG8TYB044266@repoman.freebsd.org> <200609271117.25831.jhb@freebsd.org> <451A9E1E.30601@samsco.org> <200609271338.22284.jhb@freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Maxim Sobolev , Scott Long , src-committers@freebsd.org, cvs-all@freebsd.org, cvs-src@freebsd.org Subject: Re: cvs commit: src/sys/i386/i386 local_apic.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Sep 2006 22:08:36 -0000 On Wed, 27 Sep 2006, John Baldwin wrote: >>>>> from amd64 as well? >>>> >>>> Yes, you are right - this is ULE specific bug. In fact, quick grep of the >>>> ULE code reveals that it doesn't honor hlt_cpus_mask, so that the problem >>>> is with ULE, not with the change in question. >>> >>> Well, hlt_cpus_mask is really an x86-specific hack. :) >> >> x86 and amd64, which represent about 95% of FreeBSD. > > My point is that we need a notion of taking CPUs offline and online with > scheudler hooks, instead of exporting a simple x86-specific bitmask. Right > now we don't notify the schedulers when a CPU goes offline so that they can > try to do sensible things with pinned and bound threads, etc. Instead, they > just have to "notice" which is rediculously lame. It's pretty clear that if we're going to take the hypervisor + dynamic reconfiguration thing seriously, we need a structured notion of adding and removing CPUs from the active CPU pool, including things like event handlers so that subsystems can shut down operations on the CPU. For example, UMA needs a chance to drain per-CPU caches of various zones, services that have pinned threads on the CPU will need to decide how to deal with that, etc. It's work I'd very much like to see happen, and until it's done we basically need to make sure that CPUs either exist from boot and never cease existing, or don't exist at boot and are never used. Robert N M Watson Computer Laboratory University of Cambridge