freebsd-skq/sys/kern
peter 20984da255 Some cleanups and optimizations:
- Use the system headers method for Elf32/Elf64 symbol compatability
- get rid of the UPRINTF debugging.
- check the ELF header for compatability much more completely
- optimize the section mapper.  Use the same direct VM interfaces that
  imgact_aout.c and kern_exec.c use.
- Check the return codes from the vm_* functions better.  Some return
  KERN_* results, not an errno.
- prefault the page tables to reduce startup faults on page tables like
  a.out does.
- reset the segment protection to zero for each loop, otherwise each
  segment could get progressively more privs. (eg: if the first was
  read/write/execute, and the second was meant to be read/execute, the
  bug would make the second r/w/x too.  In practice this was not a
  problem because executables are normally laid out with text first.)
- Don't impose arbitary limits.  Use the limits on headers imposed by
  the need to fit them into one page.
- Remove unused switch() cases now that the verbose debugging is gone.

I've been using an earlier version of this for a month or so.
This sped up ELF exec speed a bit for me but I found it hard to get
consistant benchmarks when I tested it last (a few weeks ago).
I'm still bothered by the page read out of order caused by the
transition from data to bss. This which requires either part filling the
transition page or clearing the remainder.
1998-10-18 15:55:12 +00:00
..
bus_if.m Document BUS_CREATE_INTR and BUS_CONNECT_INTR. 1998-09-16 08:25:56 +00:00
device_if.m [Add missing files from previous commit] 1998-06-14 13:53:12 +00:00
imgact_aout.c *gulp*. Jordan specifically OK'ed this.. 1998-10-16 03:55:01 +00:00
imgact_elf.c Some cleanups and optimizations: 1998-10-18 15:55:12 +00:00
imgact_gzip.c *gulp*. Jordan specifically OK'ed this.. 1998-10-16 03:55:01 +00:00
imgact_shell.c *gulp*. Jordan specifically OK'ed this.. 1998-10-16 03:55:01 +00:00
inflate.c
init_main.c Fix sysinit_add(). 1998-10-15 17:09:19 +00:00
init_sysent.c Regnerate. 1998-08-24 08:32:19 +00:00
kern_acct.c Moved limit frobbing (and the resulting limcopy()) that occurs for 1998-06-05 21:44:20 +00:00
kern_clock.c Cast the return value of tvtohz() from a long to an int to satisfy the 1998-10-06 23:17:44 +00:00
kern_conf.c There is no such thing any more as "struct bdevsw". 1998-07-04 22:30:26 +00:00
kern_descrip.c Fixed printf format errors. 1998-07-29 17:38:14 +00:00
kern_environment.c Don't try to initialise the environment out of a sysinit, it's handled 1998-10-09 21:21:34 +00:00
kern_exec.c *gulp*. Jordan specifically OK'ed this.. 1998-10-16 03:55:01 +00:00
kern_exit.c Moved limit frobbing (and the resulting limcopy()) that occurs for 1998-06-05 21:44:20 +00:00
kern_fork.c
kern_intr.c Start using the new SWI registration system instead of hardwiring everything. 1998-09-26 14:25:32 +00:00
kern_ktrace.c
kern_linker.c - bzero() after malloc(). This is especially obvious when kern_malloc is 1998-10-15 17:12:12 +00:00
kern_lkm.c *gulp*. Jordan specifically OK'ed this.. 1998-10-16 03:55:01 +00:00
kern_lock.c
kern_lockf.c Fixed printf format errors. 1998-07-29 17:38:14 +00:00
kern_malloc.c Use [u]intptr_t instead of [u_]long for casts between pointers and 1998-08-16 01:21:52 +00:00
kern_mib.c - hw.machine_arch returns cpu architecture type. 1998-08-31 08:41:58 +00:00
kern_module.c *gulp*. Jordan specifically OK'ed this.. 1998-10-16 03:55:01 +00:00
kern_ntptime.c Introduce std_pps_ioctl() to automagically DTRT. 1998-06-13 09:30:26 +00:00
kern_physio.c Make struct buf->b_offset reflect the real byte offset which got 1998-08-19 10:50:32 +00:00
kern_proc.c Fixed printf format errors. 1998-07-11 07:46:16 +00:00
kern_prot.c 64bit fixes: use size_t not u_int for sizes. 1998-06-10 10:28:29 +00:00
kern_random.c Converted add_interrupt_randomness() to take a `void *' arg. Rewrote 1998-06-21 11:33:32 +00:00
kern_resource.c Fixed double counting of runtime after a process exits. The last 1998-07-27 19:16:21 +00:00
kern_shutdown.c Fix precedence bug, so that kernel dump works. 1998-09-20 16:50:31 +00:00
kern_sig.c Remove includes that are no longer needed, now that the core dumping 1998-09-14 23:25:18 +00:00
kern_subr.c remove nonsense code. 1998-08-04 09:21:04 +00:00
kern_synch.c priority comparison in maybe_resched() didn't work properly if current 1998-08-26 05:27:42 +00:00
kern_sysctl.c *gulp*. Jordan specifically OK'ed this.. 1998-10-16 03:55:01 +00:00
kern_tc.c Cast the return value of tvtohz() from a long to an int to satisfy the 1998-10-06 23:17:44 +00:00
kern_threads.c Correct sleep priority. 1998-06-02 05:39:13 +00:00
kern_time.c Add a tc_ prefix to struct timecounter members. 1998-06-09 13:10:54 +00:00
kern_timeout.c
kern_xxx.c Change various syscalls to use size_t arguments instead of u_int. 1998-08-24 08:39:39 +00:00
ksched.c
link_aout.c Fix some bugs in link_aout.c caused by using uninitialized malloc space. 1998-10-16 03:45:35 +00:00
link_elf_obj.c *gulp*. Jordan specifically OK'ed this.. 1998-10-16 03:55:01 +00:00
link_elf.c *gulp*. Jordan specifically OK'ed this.. 1998-10-16 03:55:01 +00:00
Make.tags.inc
makedevops.sh Use the interface name as well as the method name when creating the method 1998-10-15 09:50:45 +00:00
Makefile
makesyscalls.sh Add trailing newline to sys/syscall.mk so that diff doesn't choke on it. 1998-06-28 10:01:52 +00:00
md5c.c This commit fixes various 64bit portability problems required for 1998-06-07 17:13:14 +00:00
p1003_1b.c
posix4_mib.c
subr_autoconf.c
subr_bus.c Don't call DEVICE_DETACH directly, always go through the device_detach() 1998-10-03 08:55:29 +00:00
subr_clist.c Cast pointers to uintptr_t/intptr_t instead of to u_long/long, 1998-07-15 02:32:35 +00:00
subr_devstat.c Disable the 'devstat_end_transaction' busy count printf until after 3.0 1998-10-14 20:44:05 +00:00
subr_disklabel.c Use only the correct raw partition for writing labels. Don't use the 1998-10-17 07:49:04 +00:00
subr_diskmbr.c The machine dependent disk slice manager does not recognize 1998-08-10 07:22:14 +00:00
subr_diskslice.c Overload the correct errno for attempts to set an in-core label with 1998-10-17 09:46:42 +00:00
subr_dkbad.c
subr_log.c This commit fixes various 64bit portability problems required for 1998-06-07 17:13:14 +00:00
subr_module.c Align to sizeof(long) rather than sizeof(int32_t). It needs to be 1998-10-14 05:07:23 +00:00
subr_param.c Moved definition of fscale from param.c to kern_synch.c where it 1998-07-11 13:06:41 +00:00
subr_prf.c Store formatted panic string in static buffer to make it available later 1998-09-06 06:25:18 +00:00
subr_prof.c Fixed bogotification of pseudocode for syscall args by rev.1.53 of 1998-09-05 14:30:11 +00:00
subr_rlist.c Move assignment of cur_rlp to after the acquisition of the list lock. 1998-08-05 14:06:04 +00:00
subr_smp.c mp_machdep.c: Set a vector to boot code (PC-98). 1998-10-10 13:37:16 +00:00
subr_trap.c Fixed printf format errors. 1998-08-23 10:16:26 +00:00
subr_xxx.c Moved `nx' functions to the one place where they are used (su.c). 1998-08-20 06:10:42 +00:00
sys_generic.c Fixed bogotification of pseudocode for syscall args by rev.1.53 of 1998-09-05 14:30:11 +00:00
sys_pipe.c Fixed two potentially serious classes of bugs: 1998-10-13 08:24:45 +00:00
sys_process.c Only access an int for READU/WRITEU since that is what ptrace is declared to 1998-07-29 18:41:30 +00:00
sys_socket.c This commit fixes various 64bit portability problems required for 1998-06-07 17:13:14 +00:00
syscalls.c Regnerate. 1998-08-24 08:32:19 +00:00
syscalls.master Fix a few syscall arguments to use size_t instead of u_int. 1998-08-24 08:29:52 +00:00
sysv_ipc.c
sysv_msg.c
sysv_sem.c
sysv_shm.c Fixed two potentially serious classes of bugs: 1998-10-13 08:24:45 +00:00
tty_compat.c This commit fixes various 64bit portability problems required for 1998-06-07 17:13:14 +00:00
tty_conf.c This commit fixes various 64bit portability problems required for 1998-06-07 17:13:14 +00:00
tty_cons.c Added D_TTY to the cdevswitch flags for all tty drivers. This is required 1998-08-23 08:26:42 +00:00
tty_pty.c Added D_TTY to the cdevswitch flags for all tty drivers. This is required 1998-08-23 08:26:42 +00:00
tty_snoop.c This commit fixes various 64bit portability problems required for 1998-06-07 17:13:14 +00:00
tty_subr.c Cast pointers to uintptr_t/intptr_t instead of to u_long/long, 1998-07-15 02:32:35 +00:00
tty_tb.c
tty_tty.c Added D_TTY to the cdevswitch flags for all tty drivers. This is required 1998-08-23 08:26:42 +00:00
tty.c A limit of 200000 for the output buffer high watermark was excessive, 1998-08-19 04:01:00 +00:00
uipc_domain.c
uipc_mbuf.c Only call m_reclaim() if M_WAIT since calling it from an interrupt can 1998-07-27 03:59:48 +00:00
uipc_proto.c Yow! Completely change the way socket options are handled, eliminating 1998-08-23 03:07:17 +00:00
uipc_sockbuf.c Fixed recently perpetrated printf format errors. 1998-09-05 13:24:39 +00:00
uipc_socket2.c Fixed recently perpetrated printf format errors. 1998-09-05 13:24:39 +00:00
uipc_socket.c Bow to tradition and correctly implement the bogus-but-hallowed semantics 1998-08-31 18:07:23 +00:00
uipc_syscalls.c Yow! Completely change the way socket options are handled, eliminating 1998-08-23 03:07:17 +00:00
uipc_usrreq.c Cast pointers to uintptr_t/intptr_t instead of to u_long/long, 1998-07-15 02:32:35 +00:00
vfs_aio.c Fixed nonsense overflow checking (checking that a long variable is less 1998-08-17 17:28:10 +00:00
vfs_bio.c Fixed two potentially serious classes of bugs: 1998-10-13 08:24:45 +00:00
vfs_cache.c Don't use CTL_VFS at the wrong level. This caused loops in the sysctl 1998-09-09 07:41:41 +00:00
vfs_cluster.c Cosmetic changes to the PAGE_XXX macros to make them consistent with 1998-09-04 08:06:57 +00:00
vfs_conf.c Remove the SLICE code. 1998-09-14 19:56:42 +00:00
vfs_default.c VOP_STRATEGY grows an (struct vnode *) argument 1998-07-04 20:45:42 +00:00
vfs_export.c Backed out rev. 1.164. It caused problems on SMP. 1998-10-14 15:05:52 +00:00
vfs_extattr.c Eliminate a race in VOP_FSYNC() when softupdates is enabled. 1998-09-24 15:02:46 +00:00
vfs_init.c *gulp*. Jordan specifically OK'ed this.. 1998-10-16 03:55:01 +00:00
vfs_lookup.c This commit fixes various 64bit portability problems required for 1998-06-07 17:13:14 +00:00
vfs_mount.c Remove the SLICE code. 1998-09-14 19:56:42 +00:00
vfs_subr.c Backed out rev. 1.164. It caused problems on SMP. 1998-10-14 15:05:52 +00:00
vfs_syscalls.c Eliminate a race in VOP_FSYNC() when softupdates is enabled. 1998-09-24 15:02:46 +00:00
vfs_vnops.c Report the mode as the result of the VOP_GETATTR rather than the 1998-06-27 06:43:09 +00:00
vnode_if.pl VOP_STRATEGY grows an (struct vnode *) argument 1998-07-04 20:45:42 +00:00
vnode_if.sh VOP_STRATEGY grows an (struct vnode *) argument 1998-07-04 20:45:42 +00:00
vnode_if.src Add a new vnode op, VOP_FREEBLKS(), which filesystems can use to inform 1998-09-05 14:13:12 +00:00