From owner-freebsd-current Sat Mar 25 20: 7:50 2000 Delivered-To: freebsd-current@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by hub.freebsd.org (Postfix) with ESMTP id CDFE737B986 for ; Sat, 25 Mar 2000 20:07:43 -0800 (PST) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.9.3/8.9.1) id UAA26945; Sat, 25 Mar 2000 20:07:34 -0800 (PST) (envelope-from dillon) Date: Sat, 25 Mar 2000 20:07:34 -0800 (PST) From: Matthew Dillon Message-Id: <200003260407.UAA26945@apollo.backplane.com> To: Bruce Evans Cc: freebsd-current@FreeBSD.ORG Subject: smp-patch-06 (hopefully w/ proper syscall return handling) ready Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG smp-patch-06 is now ready. http://www.backplane.com/FreeBSD4/ http://www.backplane.com/FreeBSD4/smp-patch-06.diff Bruce, I'd appreciate a quick review of my solution to the AST issue. Search for 'syscall_ast_exit' in i386/i386/exception.s after patching. I moved astpending to the per-cpu structure and made it a u_int. I then test it in the syscall code and, if non-zero, it obtains the MP lock, pushes the dummy state, and jumps to _doreti. (This patch also adds lots of comments to the assembly). I am also in need of some C code to test it. I *think* the below code will test it, but I'm not sure. Bruce? -Matt #include #include #include #include #include int main(int ac, char **av) { signal(SIGALRM, (void *)-1); alarm(1); for (;;) ; } To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message