1. 25 7月, 2008 1 次提交
  2. 06 2月, 2008 1 次提交
  3. 17 10月, 2007 6 次提交
  4. 08 5月, 2007 1 次提交
    • J
      uml: speed page fault path · 64f60841
      Jeff Dike 提交于
      Give the page fault code a specialized path.  There is only one page to look
      at, so there's no point in going into the general page table walking code.
      There's only going to be one host operation, so there are no opportunities for
      merging.  So, we go straight to the pte we want, figure out what needs doing,
      and do it.
      
      While I was in here, I fixed the wart where the address passed to unmap was a
      void *, but an unsigned long to map and protect.
      
      This gives me just under 10% on a kernel build.
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      64f60841
  5. 04 10月, 2006 1 次提交
  6. 27 9月, 2006 1 次提交
    • J
      [PATCH] uml: thread creation tidying · 3c917350
      Jeff Dike 提交于
      fork on UML has always somewhat subtle.  The underlying cause has been the
      need to initialize a stack for the new process.  The only portable way to
      initialize a new stack is to set it as the alternate signal stack and take a
      signal.  The signal handler does whatever initialization is needed and jumps
      back to the original stack, where the fork processing is finished.  The basic
      context switching mechanism is a jmp_buf for each process.  You switch to a
      new process by longjmping to its jmp_buf.
      
      Now that UML has its own implementation of setjmp and longjmp, and I can poke
      around inside a jmp_buf without fear that libc will change the structure, a
      much simpler mechanism is possible.  The jmpbuf can simply be initialized by
      hand.
      
      This eliminates -
      	the need to set up and remove the alternate signal stack
      	sending and handling a signal
      	the signal blocking needed around the stack switching, since
      there is no stack switching
      	setting up the jmp_buf needed to jump back to the original
      stack after the new one is set up
      
      In addition, since jmp_buf is now defined by UML, and not by libc, it can be
      embedded in the thread struct.  This makes it unnecessary to have it exist on
      the stack, where it used to be.  It also simplifies interfaces, since the
      switch jmp_buf used to be a void * inside the thread struct, and functions
      which took it as an argument needed to define a jmp_buf variable and assign it
      from the void *.
      Signed-off-by: NJeff Dike <jdike@addtoit.com>
      Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3c917350
  7. 11 7月, 2006 2 次提交
  8. 28 3月, 2006 1 次提交
  9. 19 1月, 2006 3 次提交