From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sc8-sf-mx2-b.sourceforge.net ([10.3.1.12] helo=sc8-sf-mx2.sourceforge.net) by sc8-sf-list1.sourceforge.net with esmtp (Exim 4.30) id 1DYQr8-0000P8-IU for user-mode-linux-devel@lists.sourceforge.net; Wed, 18 May 2005 08:53:10 -0700 Received: from lakshmi.addtoit.com ([198.99.130.6] helo=lakshmi.solana.com) by sc8-sf-mx2.sourceforge.net with esmtp (Exim 4.41) id 1DYQr5-0006C0-Rr for user-mode-linux-devel@lists.sourceforge.net; Wed, 18 May 2005 08:53:10 -0700 From: Jeff Dike Subject: Re: [uml-devel] Explaination of system call function flow in TT mode Message-ID: <20050518150346.GA18740@ccure.user-mode-linux.org> References: <003e01c503b3$f3e46cb0$ac655e0a@sha.st.com> <200505162324.37749.blaisorblade@yahoo.it> <3524bf1f0505161709476c4940@mail.gmail.com> <200505170217.23138.blaisorblade@yahoo.it> <3524bf1f050517105676c6c051@mail.gmail.com> <20050517220053.GA10144@ccure.user-mode-linux.org> <428B0F2B.3060503@fujitsu-siemens.com> <3524bf1f050518062432e093d6@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3524bf1f050518062432e093d6@mail.gmail.com> Sender: user-mode-linux-devel-admin@lists.sourceforge.net Errors-To: user-mode-linux-devel-admin@lists.sourceforge.net List-Unsubscribe: , List-Id: The user-mode Linux development list List-Post: List-Help: List-Subscribe: , List-Archive: Date: Wed, 18 May 2005 11:03:46 -0400 To: Young Koh Cc: Bodo Stroesser , Blaisorblade , user-mode-linux-devel@lists.sourceforge.net On Wed, May 18, 2005 at 09:24:07AM -0400, Young Koh wrote: > Thanks for the replies. let me understand them. In a SKAS mode UML > kernel, the pseudo code of a system call invocation would be like the > following. > > wait4(); // wait until a user process raises a syscall > save_registers(); // copy the user process' registers to UML kernel space > execute_syscall(); // execute the syscall in UML kernel context > restore_registers(); // copy the user registers back to the user process Correct. > but, during execute_syscall(), even if its stubs use all the registers > and/or it happens to invoke switch_to(), it will happen all in the UML > kernel's context. that means the user process's context will be > protected by host kernel's context switching mechanism. doesn't it? > because the host kernel will automatically save/restore a process' > registers when the process is stopped and resumed, all we care about > in the above routine should be to get system call parameters from the > tracee and save the return value to it. shouldn't it? (again, only for > SKAS) No, because (in skas mode) there is only one host process for all the UML processes. So the process registers have to be saved and restored across a context switch. Jeff ------------------------------------------------------- This SF.Net email is sponsored by Oracle Space Sweepstakes Want to be the first software developer in space? Enter now for the Oracle Space Sweepstakes! http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel