Age | Commit message (Collapse) | Author |
|
this reduces kernel size quite a bit. ok claudio
|
|
mbuf back.
for fixing PR5563 in a few, tested janjaap@stack.nl, ok claudio
|
|
Also remove the _MEXTREMOVE macro which was only used by MFREE.
This time with the uipc_mbuf.c change that I missed last time.
|
|
ok claudio@
|
|
in and out with the very low default.
ok dlg henning ryan
|
|
boring details:
pf used to use an mbuf tag to keep track of route-to etc, altq, tags,
routing table IDs, packets redirected to localhost etc. so each and every
packet going through pf got an mbuf tag. mbuf tags use malloc'd memory,
and that is knda slow.
instead, stuff the information into the mbuf header directly.
bridging soekris with just "pass" as ruleset went from 29 MBit/s to
58 MBit/s with that (before ryan's randomness fix, now it is even betterer)
thanks to chris for the test setup!
ok ryan ryan ckuethe reyk
|
|
functions. The world is no longer running on a PDP11 so function call overhead
is not an issue. Diff by tbert, tested by many, OK art@
|
|
OK beck@ deraadt@ pyr@
|
|
|
|
|
|
gmail.com.
Kill another unused variable in m_devget(). Pointed out by mcbride.
Rename all offset variables from off0 to off.
OK markus@, deraadt@
|
|
|
|
1. drain hooks and lists of allocators make the code complicated
2. the only hooks in the system are the mbuf reclaim routines
3. if reclaim is actually able to put a meaningful amount of memory back
in the system, i think something else is dicked up. ie, if reclaiming
your ip fragment buffers makes the difference thrashing swap and not,
your system is in a load of trouble.
4. it's a scary amount of code running with very weird spl requirements
and i'd say it's pretty much totally untested. raise your hand if your
router is running at the edge of swap.
5. the reclaim stuff goes back to when mbufs lived in a tiny vm_map and
you could run out of va. that's very unlikely (like impossible) now.
ok/tested pedro krw sturm
|
|
m_cat() - if it is safe, copy data portion into 1st mbuf even if 1st mbuf
is M_EXT mbuf.
rev 1.72
clarify comment on m_cat().
From itojun NetBSD
ok claudio@ mcbride@
|
|
|
|
|
|
whitespace. No binary diff on i386.
ok pedro@
|
|
change both the nointr and default pool allocators to using uvm_km_getpage.
change pools to default to a maxpages value of 8, so they hoard less memory.
change mbuf pools to use default pool allocator.
pools are now more efficient, use less of kmem_map, and a bit faster.
tested mcbride, deraadt, pedro, drahn, miod to work everywhere
|
|
|
|
from form@pdp-11.org.ru via mpech. ok millert
|
|
an interrupt safe thread.
use this as the new backend for mbpool and mclpool, eliminating the mb_map.
introduce a sysctl kern.maxclusters which controls the limit of clusters
allocated.
testing by many people, works everywhere but m68k. ok deraadt@
this essentially deprecates the NMBCLUSTERS option, don't use it.
this should reduce pressure on the kmem_map and the uvm reserve of static
map entries.
|
|
Fixes pr3740. Confirmed with pb@, ok markus@.
|
|
|
|
from KOZUKA Masahiro, fixes PR 3651
|
|
|
|
rescinded 22 July 1999. Proofed by myself and Theo.
|
|
uses it as a hint for where to steal space from the parent map. We've been
passing random stack garbage as that hint for ages. It's a wonder it didn't
break things until we started working on Hammer.
noone objected for at least a week.
|
|
|
|
|
|
declarations (extern int foo), and compensate in the appropriate locations.
|
|
|
|
the current size of the pool. ok art@
|
|
The patch allows you to change the value of NMBCLUSTERS, BUFCACHEPERCENT
and NKMEMPAGES using the config command, instead of recompiling the kernel.
This is the kernel part of the patch. I have compiled it on i386, sparc64,
alpha and macppc. -moj ok art@ maja@
|
|
|
|
|
|
|
|
|
|
void * arithmetic problem correctly in m_zero()
|
|
1. When a pool hit the hard limit. Just before bailing out/sleeping.
2. When an allocator fails to allocate memory (with PR_NOWAIT).
3. Just before trying to reclaim some page in pool_reclaim.
The function called form the hook should try to free some items to the
pool if possible.
Convert m_reclaim hooks that were embedded in MCLGET, MGET and MGETHDR
into a pool drain hook (making the code much cleaner).
|
|
|
|
|
|
well (not at all) with shortages of the vm_map where the pages are mapped
(usually kmem_map).
Try to deal with it:
- group all information the backend allocator for a pool in a separate
struct. The pool will only have a pointer to that struct.
- change the pool_init API to reflect that.
- link all pools allocating from the same allocator on a linked list.
- Since an allocator is responsible to wait for physical memory it will
only fail (waitok) when it runs out of its backing vm_map, carefully
drain pools using the same allocator so that va space is freed.
(see comments in code for caveats and details).
- change pool_reclaim to return if it actually succeeded to free some
memory, use that information to make draining easier and more efficient.
- get rid of PR_URGENT, noone uses it.
|
|
|
|
|
|
vm_map_t -> struct vm_map *
vm_map_entry_t -> struct vm_map_entry *
simple_lock_data_t -> struct simplelock
(uvm not done yet, coming in the next commit)
|
|
(Look ma, I might have broken the tree)
|
|
|
|
|
|
|
|
on how macros should be treated. Code by fgsch@, ok by me and itojun@
|