cvs commit: src/sys/sys errno.h globaldata.h msgport.h syscall-hide.h syscall.h syscall.mk sysproto.h sysunion.h thread.h

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Jul 24 16:53:18 PDT 2003


dillon      2003/07/24 16:52:39 PDT

  Modified files:
    sys/sys              errno.h globaldata.h msgport.h 
                         syscall-hide.h syscall.h syscall.mk 
                         sysproto.h sysunion.h thread.h 
  Log:
  Syscall messaging work 2: Continue with the implementation of sendsys(),
  using int 0x81.  This entry point will be responsible for sending system
  call messages or waiting for messages / port activity.
  
  With this commit system call messages can be run through 0x81 but at the
  moment they will always run synchronously. Here's the core interface
  code for IA32:
  
      static __inline int
      sendsys(void *port, void *msg, int msgsize)
      {
  	int error;
  	__asm __volatile("int $0x81" : "=a"(error) :
  			"a"(port), "c"(msg), "d"(msgsize) : "memory");
  	return(error);
      }
  
  Performance verses a direct system call is currently excellent considering
  that this is my initial attempt.
  
  		600MHzC3	1.2GHzP3x2(SMP)
  
  getuid()	1300 ns		 909 ns
  getuid_msg()	1700 ns		1077 ns
  
  Revision  Changes    Path
  1.3       +15 -2     src/sys/sys/errno.h
  1.12      +2 -1      src/sys/sys/globaldata.h
  1.4       +6 -0      src/sys/sys/msgport.h
  1.5       +0 -0      src/sys/sys/syscall-hide.h
  1.5       +0 -0      src/sys/sys/syscall.h
  1.5       +0 -0      src/sys/sys/syscall.mk
  1.5       +10 -0     src/sys/sys/sysproto.h
  1.2       +0 -0      src/sys/sys/sysunion.h
  1.27      +1 -0      src/sys/sys/thread.h






More information about the Commits mailing list