| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Missed during the "Namecache revamp" in 2009.
Reported by Georg Bege <georg at bege dot email>, thanks.
OK visa jmc mpi jca
|
|
|
|
| |
OK mpi@
|
|
|
|
|
|
| |
unnecessary because curproc always does the locking.
OK mpi@
|
|
|
|
|
|
|
| |
curproc that does the locking or unlocking, so the proc parameter
is pointless and can be dropped.
OK mpi@, deraadt@
|
|
|
|
| |
No binary change.
|
|
|
|
|
|
| |
i had to shuffle the includes a bit. all the knowledge of the RB
tree is now inside vfs_cache.c, and all accesses are via cache_*
functions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the ioff argument to pool_init() is unused and has been for many
years, so this replaces it with an ipl argument. because the ipl
will be set on init we no longer need pool_setipl.
most of these changes have been done with coccinelle using the spatch
below. cocci sucks at formatting code though, so i fixed that by hand.
the manpage and subr_pool.c bits i did myself.
ok tedu@ jmatthew@
@ipl@
expression pp;
expression ipl;
expression s, a, o, f, m, p;
@@
-pool_init(pp, s, a, o, f, m, p);
-pool_setipl(pp, ipl);
+pool_init(pp, s, a, ipl, f, m, p);
|
|
|
|
| |
ok kettenis@
|
|
|
|
|
|
| |
torture tested on amd64, i386 and macppc
ok beck mpi stefan
"the change looks right" deraadt
|
|
|
|
| |
ok mpi@ millert@
|
|
|
|
|
|
|
| |
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
| |
|
|
|
|
| |
battle tested by krw
|
|
|
|
|
|
|
|
|
|
|
| |
"This makes the algorithm O(n^2), but do you think I care?"
a lot more meaningful, as discovered by krw.
fix the loop so it doesn't restart all the time, as it's not necessary.
(this was also tried years ago in rev 1.20 and reverted, but that change
also introduced pool_put before the namecache was ready to free things. we
have been freeing cache entries with pool_put for some time now, so that's
been made safe.)
ok deraadt krw
|
|
|
|
| |
reported and revert tested by krw
|
| |
|
|
|
|
|
| |
(accuracy of variable names, aside)
ok kettenis
|
|
|
|
| |
marker for which pools are not interrupt safe. ok dlg
|
|
|
|
|
|
| |
objective: vnode.h doesn't include uvm_extern.h anymore.
followup changes: include uvm_extern.h or lock.h where necessary.
ok and help from deraadt
|
| |
|
|
|
|
|
|
|
|
| |
CIRCLEQ_* is deprecated and not called in the tree. The other queue types
have *_END macros which were added for symmetry with CIRCLEQ_END. They are
defined as NULL. There's no reason to keep the other *_END macro calls.
ok millert@
|
|
|
|
| |
ok beck@
|
|
|
|
| |
ok beck deraadt after a style issue noticed by kettenis
|
|
|
|
|
|
|
|
|
|
| |
fix is to manipulate the name cache structures before
potentially sleeping on a vn_lock(). This avoids the race of
the ncp entry being recycled while we are asleep.
run in snaps and on ftp.openbsd.org for months
ok thib@
|
|
|
|
|
|
|
| |
sync a few comments to reality (or remove them), remove the cn_hash member
from struct componentname, spacing.
ok beck@
|
|
|
|
| |
size of cache hashtable that has now been removed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
add a new arg to the backend so it can tell pool to slow down. when we get
this flag, yield *after* putting the page in the pool's free list. whatever
we do, don't let the thread sleep.
this makes things better by still letting the thread run when a huge pf
request comes in, but without artificially increasing pressure on the backend
by eating pages without feeding them forward.
ok deraadt
|
|
|
|
|
|
|
|
| |
cache entries which are freed (and potentially reused), but which are
currently in use by another kernel thread which was sleeping in vput()
or vget(). This causes the crash in PR 5960, but potentially a
bunch of other side effects. figured out with pedro.
ok kettenis
|
|
|
|
|
|
|
| |
malloc flag, does the same thing.
use it in a few places.
OK tedu@, "then go ahead. and don't forget the manpage (-:" miod@
|
| |
|
|
|
|
| |
this can cause other problems.
|
| |
|
|
|
|
|
|
|
|
| |
actually allocate "desiredvnodes" - add a vdrop to un-hold a vnode held
with vhold, and change the name cache to make use of vhold/vdrop, while
keeping track of which vnodes are referred to by which cache entries to
correctly hold/drop vnodes when the cache uses them.
ok thib@, tedu@, art@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
painfully aware of what the comment:
"This makes the algorithm O(n^2), but do you think I care?"
actually means. I started to care.
Fix up the cache_purgevfs algorithm to not be O(n^2) since it's not
preemptible anyway and while I'm here, make this code actually return
the cache entries to the pool instead of hogging them and implement a
marginally faster free list. This way we return memory to the system
when some parameters change.
miod@ ok
|
|
|
|
| |
This function will be used in the future. Okay marius@.
|
| |
|
|
|
|
| |
ok pedro@
|
| |
|
|
|
|
|
|
| |
this will help speedup getcwd (coming soon).
ok pedro@
|
| |
|
|
|
|
| |
no change in compiler assembly output.
|
| |
|
|
|
|
| |
rescinded 22 July 1999. Proofed by myself and Theo.
|
|
|
|
| |
ok art@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- cache_lookup
move common code from various fs's here
always return with vnode and parent locked
adjust return codes
- PDIRUNLOCK - new flag set if lookup couldn't lock parent vnode
- kernfs and procfs
lock vnode in get_root
don't unlock (again) in kernfs_freevp
fix memory leak in procfs
From tedu@stanford.edu
deraadt@ and various other ok
|
|
|
|
| |
declarations (extern int foo), and compensate in the appropriate locations.
|