summaryrefslogtreecommitdiff
path: root/sys/kern
AgeCommit message (Collapse)Author
1999-09-12Fix rootdev handling, use disk checksums to find the device we were bootedTobias Weingartner
from. Hopefully this will fix all the hangs/panics where the root device was not found.
1999-09-12Add COMPAT_NETBSD. Currently only works for ELF64. Many missing system calls.kstailey
1999-09-12grammerkstailey
1999-09-12style(9)Niklas Hallqvist
1999-09-10use clrnd(round_page(size)) instead of roundup(size, CLBYTES).Artur Grabowski
They do the same thing, but the former is noticeably faster on sparc
1999-09-10use round_page(foo) instead of roundup(foo, NBPG)Artur Grabowski
1999-09-10ELF64kstailey
1999-09-05Use stathz to calculate CPU time when available; fixes CPU calculationThorsten Lockert
problems when stathz runs at different speed than hz/profhz.
1999-08-26change a & to &&. From dima@best.netArtur Grabowski
1999-08-20more paranoid check of the refcount in vfs_registerArtur Grabowski
1999-08-17There was a line missing in the commit from rev 1.6 that resulted inTodd C. Miller
an uninitialized variable; art@stacken.kth.se
1999-08-17initialize an incorrectly uninitialized variableArtur Grabowski
1999-08-17New cpu_fork API to take a stack in which you point the child's stackpointerNiklas Hallqvist
to, at the bottom or the top, depending on your architecture's stack growth direction. This is in preparation for Linux' clone(2) emulation. port maintainers, please check that I did the work right.
1999-08-15Adopt NetBSD fix for scheduler problems (nice was broken). From the NetBSDPaul Janzen
commit messages: Scheduler bug fixes and reorganization * fix the ancient nice(1) bug, where nice +20 processes incorrectly steal 10 - 20% of the CPU, (or even more depending on load average) * provide a new schedclock() mechanism at a new clock at schedhz, so high platform hz values don't cause nice +0 processes to look like they are niced * change the algorithm slightly, and reorganize the code a lot * fix percent-CPU calculation bugs, and eliminate some no-op code === nice bug === Correctly divide the scheduler queues between niced and compute-bound processes. The current nice weight of two (sort of, see `algorithm change' below) neatly divides the USRPRI queues in half; this should have been used to clip p_estcpu, instead of UCHAR_MAX. Besides being the wrong amount, clipping an unsigned char to UCHAR_MAX is a no-op, and it was done after decay_cpu() which can only _reduce_ the value. It has to be kept <= NICE_WEIGHT * PRIO_MAX - PPQ or processes can scheduler-penalize themselves onto the same queue as nice +20 processes. (Or even a higher one.) === New schedclock() mechanism === Some platforms should be cutting down stathz before hitting the scheduler, since the scheduler algorithm only works right in the vicinity of 64 Hz. Rather than prescale hz, then scale back and forth by 4 every time p_estcpu is touched (each occurance an abstraction violation), use p_estcpu without scaling and require schedhz to be generated directly at the right frequency. Use a default stathz (well, actually, profhz) / 4, so nothing changes unless a platform defines schedhz and a new clock. [ To do: Define these for alpha, where hz==1024, and nice was totally broke.] === Algorithm change === The nice value used to be added to the exponentially-decayed scheduler history value p_estcpu, in _addition_ to be incorporated directly (with greater weight) into the priority calculation. At first glance, it appears to be a pointless increase of 1/8 the nice effect (pri = p_estcpu/4 + nice*2), but it's actually at least 3x that because it will ramp up linearly but be decayed only exponentially, thus converging to an additional .75 nice for a loadaverage of one. I killed this: it makes the behavior hard to control, almost impossible to analyze, and the effect (~~nothing at for the first second, then somewhat increased niceness after three seconds or more, depending on load average) pointless. === Other bugs === hz -> profhz in the p_pctcpu = f(p_cpticks) calcuation. Collect scheduler functionality. Try to put each abstraction in just one place.
1999-08-12Probe svr4 before linuxNiklas Hallqvist
1999-08-09unique panic messagesTheo de Raadt
1999-08-09make panic messages uniqueTheo de Raadt
1999-08-09Stop profiling (see profil(2)) when we execve() a new process; ross@netbsd.orgTodd C. Miller
1999-08-08From NetBSD; new device detaching infrastructure.Niklas Hallqvist
1999-08-08From NetBSD; vdevgone, used for revoking access to device nodes when theyNiklas Hallqvist
disappear (detach is coming).
1999-08-08regenNiklas Hallqvist
1999-08-08compat_22 was never usedNiklas Hallqvist
1999-08-05From NetBSD; config_defer to defer configuration of a device until after allNiklas Hallqvist
other siblings.
1999-08-04optimize poll() for small nfds, by avoiding mallocTheo de Raadt
1999-07-30do not permit regular users to chflags/fchflags on chr or blk devices --Theo de Raadt
even if they happen to own them at the moment.
1999-07-23Remove obsolete detach logic in preparation of a newer oneNiklas Hallqvist
1999-07-20correct os_mask handling for OLF; pefoTheo de Raadt
1999-07-18on exec, clear P_NOCLDWAIT; ambrisko@whistle.comTheo de Raadt
1999-07-18ugly CTheo de Raadt
1999-07-17correct fork statistics for UVMArtur Grabowski
1999-07-15Don't destroy sysvshm if the vmspace is shared (only affects uvm)Artur Grabowski
1999-07-15vm_offset_t -> {v,p}addr_t ; vm_size_t -> {v,p}size_tArtur Grabowski
1999-07-13introduce fdremove() to mark a file descriptor as unused. fdremove makesNiels Provos
sure that the fd_freefile hints stay in sync, otherwise free file descriptors might not be overlooked by fdalloc(); ok millert@
1999-07-09rename SIMPLELOCK_DEBUG to LOCKDEBUGArtur Grabowski
clean up the debug functions add simple_lock_assert
1999-07-08Non UVM vaddr_t/paddr_t fixupTobias Weingartner
1999-07-02Added a simple but potentially very useful new mbuf function, m_apply().cmetz
It applies the supplied function f(state, p, len) to every contiguous region in a mbuf, thus mostly handling all the mbuf-isms for you. It's used by my TCP MD5 signature implementation to run MD5 over the TCP payload data in a mbuf so that I don't have to spread mbufism-loops all over. It might also be useful for IPsec.
1999-06-29add sysctl kern.arandom to get a random integer. useful when chrooted withNiels Provos
no /dev/arandom.
1999-06-23Improved sysv shared memory. Works with UVM.Artur Grabowski
Original work done in FreeBSD, but this code was ported from NetBSD by Chuck Cranor.
1999-06-23apparently we need to have kmemstats in the kernel even if we don't use it.Artur Grabowski
vmstat will fail if we don't have symbol even when it doesn't need it. XXX
1999-06-15do not mangle retval, makes return value sane; problem found by millertTheo de Raadt
1999-06-11oopsNiels Provos
1999-06-08copy int sized objects, not register_t sized objects in pipe()Theo de Raadt
1999-06-08better fd leak preventionTheo de Raadt
1999-06-07need seperate sys_pipe() versions, for pipeclose() or soclose() callsTheo de Raadt
1999-06-07syncTheo de Raadt
1999-06-07replacement pipe() system call; copies data into place inside kernel, soTheo de Raadt
that EFAULT return value is possible
1999-06-07oops, premature commitTheo de Raadt
1999-06-07do not leak file descriptors if copyout() failsTheo de Raadt
1999-06-07store NULL in fd_ofilesTheo de Raadt
1999-06-06-Wall sucksTheo de Raadt