summaryrefslogtreecommitdiff
path: root/sys/kern
AgeCommit message (Collapse)Author
2009-08-25If option DIAGNOSTIC, do not bother doing sanity checks, including anMiod Vallat
uvm_map_checkprot() call, if the memory we're about to return has just been allocated with uvm_km_kmemalloc() instead of coming from the freelist. No functional change but a very small speedup when the freelist for the given bucket is empty.
2009-08-25The BUCKETINDX() giant macro is used to compute the base 2 logarithm of itsMiod Vallat
input, in order to pick the appropriate malloc() bucket. Replace it with an inline function in kern_malloc.c, which will either do a tightest-but-slower loop (if option SMALL_KERNEL), or a geometric search equivalent to what the macro does, but producing smaller code (especially on platforms which can not load large constants in one instruction).
2009-08-25Remove support for packet mode of Metricom Ricochet radios.Jonathan Gray
It currently doesn't compile and this is unlikely to change as there are many alternatives now since we no longer live in the early 1990s and Metricom went bankrupt some time ago. ok many @
2009-08-24garbage collect the nchash variable that used to store theThordur I. Bjornsson
size of cache hashtable that has now been removed.
2009-08-17dd 'show all bufs' to show all the buffers in the systemJasper Lievisse Adriaanse
ok beck@ thib@
2009-08-13Remove unrelated bit from last commit which breaks at least 2 arches.Bret Lambert
Bad blambert@, no biscuit.
2009-08-13rwlock assertion functions, currently unusedBret Lambert
ok art@
2009-08-13Replace the error strings that were being passed around with much simplerTheo de Raadt
errnos. Note that the error strings are being ignored, since we long ago decided to not spam the console, and there is no other nice way to use the errors (without changing the ioctls to pass it back) The errno is now useful, since we can pass b_error from failing IO up, and the drive can decide how to use that ok miod
2009-08-13- remove super-obvious comments from $fs_vnodeop_entries[]Jasper Lievisse Adriaanse
prodded by and ok thib@ agreed by art@ and blambert@
2009-08-13add a show all vnodes command, use dlg's nice pool_walk() to accomplishThordur I. Bjornsson
this. ok beck@, dlg@
2009-08-12just bzero the pkthdr instead of setting each and every member of thatHenning Brauer
struct to 0/NULL. no performance impact but way less error prone on addition of new pkthdr field (as just ran into with a theo diff). ok theo
2009-08-12revert my change to m_cluncount which tries to prevent the systemDavid Gwynne
running out of mbufs for rx rings. if the system low watermark is lower than a rx rings low watermark, we'll never send a packet up the stack, we'll always recycle it. found by thib@ on a bge sadface
2009-08-12Namecache revamp.Bob Beck
This eliminates the large single namecache hash table, and implements the name cache as a global lru of entires, and a redblack tree in each vnode. It makes cache_purge actually purge the namecache entries associated with a vnode when a vnode is recycled (very important for later on actually being able to resize the vnode pool) This commit does #if 0 out a bunch of procmap code that was already broken before this change, but needs to be redone completely. Tested by many, including in thib's nfs test setup. ok oga@,art@,thib@,miod@
2009-08-12if we get dangerously low on clusters during interrupts, we needDavid Gwynne
to free some for use on the rx rings on network cards. this modifies m_cluncount to advise callers when we're in such a situation, and makes them responsible for freeing up the cluster for allocation by MCLGETI later. fixes an awesome lockup with sis(4) henning has been experiencing. this is not the best fix, but it is better than the current situation. yep deraadt@ tested by henning@
2009-08-11uvm_scheduler() sounds important, but ``while(1) tsleep()'' is kinda lameBret Lambert
inline the loop in the one place it exists, and remove it from uvm adjust a comment mentioning it accordingly originally inspired by a diff fixing a comment from oga@ ok art@ beck@ miod@ oga@
2009-08-11optimise m_clget so that it holds spl for even lessTheo de Raadt
ok dlg thib
2009-08-11Must move the splx() lower in m_clget() so that it protects atomic accessTheo de Raadt
to the per-ipf mbuf cluster reference counters ok dlg claudio
2009-08-10Don't use char arrays for sleep wchans and reuse them.Thordur I. Bjornsson
just use strings and make things unique. ok claudio@
2009-08-10At sys_reboot time, bring all the interfaces down so that their xxstopTheo de Raadt
functions are called, which will turn off DMA. Receiving packets into your memory after a system reboot is pretty nasty. This will also mean that the shutdown hooks can go; this solution is smaller. ok henning miod dlg kettenis
2009-08-09remove the ancient MCFail / MPFail debugging technique; ok claudioTheo de Raadt
2009-08-09buf_dealloc_mem can be called without B_BUSY. Don't decrement busymapped in ↵Artur Grabowski
that case.
2009-08-09use m_free_unlocked() in m_pullup() to avoid iterative splnet/splx downTheo de Raadt
the chain ok henning
2009-08-09Keep track of number of currently mapped and B_BUSY buffers. beck@ okArtur Grabowski
2009-08-09Make dk_mmountroot use vnodes instead of d_open/d_close. This does uglyMarco Peereboom
things to softraid. ok jsing thib krw beck oga
2009-08-09Use an RB tree instead of a SPLAY tree for the page headers tree.Thordur I. Bjornsson
ok beck@, dlg@
2009-08-09make mbuf tags suck a bit less, performance wise.Henning Brauer
the most common operation is checking for a particular tag to be there. in the majority of the cases it is not. introduce a "tagsset" in the mbuf packet header which has a bit for each mbuf tag type that is in the chain set, checking for its existance is now as easy and cheap as (tagsset & type) != 0. theo ok
2009-08-09add mpath(4), a driver that steals paths to scsi devices if itDavid Gwynne
thinks they could be available via multiple paths. those stolen devices are then made available via mpath(4). this is the minimum amount of code to implement the stealing. it is generally broken and very brittle, so it is currently disabled. it is going in so i can work on it in the tree.
2009-08-09create a m_free_unlocked which is now used by both m_freem() and m_free().Theo de Raadt
this lets m_freem() only do one splnet/splx instead of repeating this all the way down a chain ok henning claudio dlg
2009-08-09do not clear a field before we pool_put it into oblivion; ok henningTheo de Raadt
2009-08-09MCLGETI() will now allocate a mbuf header if it is not provided, thusTheo de Raadt
reducing the amount of splnet/splx dancing required.. especially in the worst case (of m_cldrop) ok dlg kettenis damien
2009-08-09Rototill system V message queues.Bret Lambert
No longer allocate a static amount of memory for messages in MD boot path; message queues, message metadata, and message data now all use dynamic memory, which means that runtime sysctls should now be trivial to implement. Since I'm going to be around all week to fix any breakage, this should probably just go in now.
2009-08-08two things:Bob Beck
1) fix buffer cache low water mark to allow for extremely low memory machines without dying 2) Add "show bcstats" to ddb to allow for looking at the buffer cache statistics in ddb ok art@ oga@
2009-08-06reintroduce the uvm_tree commit.Owain Ainsworth
Now instead of the global object hashtable, we have a per object tree. Testing shows no performance difference and a slight code shrink. OTOH when locking is more fine grained this should be faster due to lock contention on uvm.hashlock. ok thib@, art@.
2009-08-03timeout_add -> timeout_add_msecBret Lambert
ok dlg@
2009-08-02Dynamic buffer cache support - a re-commit of what was backed outBob Beck
after c2k9 allows buffer cache to be extended and grow/shrink dynamically tested by many, ok oga@, "why not just commit it" deraadt@
2009-07-30We enable POOL_DEBUG (except in a release)Theo de Raadt
2009-07-21Handle the case where so_pcb is NULL.Todd C. Miller
2009-07-19Hook up "text" (executable) output and implement for fuser too.Todd C. Miller
Man page bits adapted from FreeBSD. OK miod@
2009-07-19clalloc() can't fail, so there's no need to handle failure cases.Bret Lambert
Change to void function. Also, no need to have global tty stats pointer, so just return it from clalloc, as the caller frees it immediately anyway. ok miod@
2009-07-09Remove the VREF() macro and replaces all instances with a call to verf(),Thordur I. Bjornsson
which is exactly what the macro does. Macro's that are nothing more then: #define FUNCTION(arg) function(arg) are almost always pointless and should go away. OK blambert@ Agreed by many.
2009-06-25backout the buf_acquire() does the bremfree() since all callersThordur I. Bjornsson
where doing bremfree() befure calling buf_acquire(). This is causing us headache pinning down a bug that showed up when deraadt@ too cvs to current, and will have to be done anyway as a preperation for backouts. OK deraadt@
2009-06-24Remove a semicolon at the end of an if statement that made the threadJonathan Gray
waiting for all the workqs to die wakeup more often than it should have. ok dlg@ tedu@
2009-06-24Remove extra psignal/wakeup in exit1() which can cause the parent toKurt Miller
receive SIGCHLD twice if scheduled before the reaper runs. diff by guenther@ and myself. okay guenther@ deraadt@
2009-06-24turn off POOL_DEBUG as we go into release; pointed out by mpfTheo de Raadt
2009-06-22sync m_inithdr() with m_gethdr() after theThordur I. Bjornsson
addition of rdomain to struct pkthdr. "Doh!" claudio@ ok henning@
2009-06-17Revert bufq's. this is inline with the major midlayer reverts thatThordur I. Bjornsson
have been going on. this appears to bring us back to stable state. lots of testing by oga and ariane and my self.
2009-06-16Backout all changes to uvm after pmemrange (which will be backed outOwain Ainsworth
separately). a change at or just before the hackathon has either exposed or added a very very nasty memory corruption bug that is giving us hell right now. So in the interest of kernel stability these diffs are being backed out until such a time as that corruption bug has been found and squashed, then the ones that are proven good may slowly return. a quick hitlist of the main commits this backs out: mine: uvm_objwire the lock change in uvm_swap.c using trees for uvm objects instead of the hash removing the pgo_releasepg callback. art@'s: putting pmap_page_protect(VM_PROT_NONE) in uvm_pagedeactivate() since all callers called that just prior anyway. ok beck@, ariane@. prompted by deraadt@.
2009-06-15No you cannot remove a sysctl mib once you add it. It becomes ABI. ThatTheo de Raadt
is how sysctl finds them, so it can *never* be renumbered again, and must stay
2009-06-15syncTheo de Raadt
2009-06-15Back out all the buffer cache changes I committed during c2k9. This reverts ↵Bob Beck
three commits: 1) The sysctl allowing bufcachepercent to be changed at boot time. 2) The change moving the buffer cache hash chains to a red-black tree 3) The dynamic buffer cache (Which depended on the earlier too). ok on the backout from marco and todd