From owner-freebsd-arch@FreeBSD.ORG Thu Nov 23 07:09:16 2006 Return-Path: X-Original-To: freebsd-arch@freebsd.org Delivered-To: freebsd-arch@freebsd.org Received: from localhost.my.domain (localhost [127.0.0.1]) by hub.freebsd.org (Postfix) with ESMTP id AEC1816A4C8; Thu, 23 Nov 2006 07:09:14 +0000 (UTC) (envelope-from davidxu@freebsd.org) From: David Xu To: Bruce Evans Date: Thu, 23 Nov 2006 15:09:08 +0800 User-Agent: KMail/1.8.2 References: <20061123170941.T36132@delplex.bde.org> <200611231453.34287.davidxu@freebsd.org> In-Reply-To: <200611231453.34287.davidxu@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200611231509.08742.davidxu@freebsd.org> Cc: arch@freebsd.org, Kip Macy , Alan Cox , freebsd-arch@freebsd.org Subject: Re: superpage plans X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Nov 2006 07:09:16 -0000 On Thursday 23 November 2006 14:53, David Xu wrote: > Do you really believe IPI_PREEMPTION works as expected ? the problem > is in sched_4bsd.c, the remote cpu running an idle cpu is only > interrupted by IPI_AST not IPI_PREEMPT, IPI_AST has no effect for kernel > thread, note that kick_other_cpu is only used for bound thread which is > being resumed, kick_other_cpu does send IPI_PREEMPT, though pagezero > thread is a bound thread in most time, but it is not the case that > kick_other_cpu will be used, we want to preempt it not resuem it, so > PREEMPTION and IPI_PREEPMTION do not work for pagezero thread running > on remote cpu. > > David Xu the above may not be very clear. The forward_wakeup only selects idle cpu, so a thread is being added will not preempt remote cpu which is running pagezero thread.