From owner-cvs-all Tue Oct 1 8:24:43 2002 Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5EC5237B404; Tue, 1 Oct 2002 08:24:42 -0700 (PDT) Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id A965C43E77; Tue, 1 Oct 2002 08:24:39 -0700 (PDT) (envelope-from robert@fledge.watson.org) Received: from fledge.watson.org (fledge.pr.watson.org [192.0.2.3]) by fledge.watson.org (8.12.4/8.12.4) with SMTP id g91FO8Oo032213; Tue, 1 Oct 2002 11:24:08 -0400 (EDT) (envelope-from robert@fledge.watson.org) Date: Tue, 1 Oct 2002 11:24:07 -0400 (EDT) From: Robert Watson X-Sender: robert@fledge.watson.org To: John Baldwin Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/kern kern_synch.c In-Reply-To: <200210011410.g91EA9EZ026286@freefall.freebsd.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Tue, 1 Oct 2002, John Baldwin wrote: > jhb 2002/10/01 07:10:09 PDT > > Modified files: > sys/kern kern_synch.c > Log: > - Adjust comment noting that handling of CPU limit exhaustion is done in > ast(). > - Actually set KEF_ASTPENDING so ast() is called. I think this is buggy > for a process with multiple KSE's in that PS_XCPU is not a KSE event, > it's a process-wide event. IMO there really should probably be two > ASTPENDING flags, one for per-process, and one for per-KSE. Yeah, the notion of signals and threads is still a bit cloudy in my mind. Some signals are clearly at the scope of the process: SIGKILL, SIGXCPU, etc, apply to process-wide conditions, often managed using POSIX process conventions (PIDs, etc). Other signals are generated in response to execution flow issues -- SIGSEGV is just one example of that, and are generated by a KSE, but presumably intended for a thread at the user level. Finally, those KSE/Thread disposition signals can also be generated and delivered to the process as a whole: for example, kill -SEGV , or even kill(getpid(), SIGSEGV). I agree that we probably do need to know how to handle the idea of certain classes of traps/events being handled at the process level (taken by the first available or designated KSE), and others being taken at the level of the KSE in response to KSE event (floating point exception). All rather confusing, really. Robert N M Watson FreeBSD Core Team, TrustedBSD Projects robert@fledge.watson.org Network Associates Laboratories To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message