| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
to cheat and VOP_BWRITE a buffer, restart the vinvalbuf if we have to wait
for a busy buffer to complete
ok tedu@ guenther@
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the special provided when the mount was requested. This may be the same as
the special that was actually used for the mount (e.g. in the case of a
device node) or it may be different (e.g. in the case of a DUID).
Whilst here, change f_ctime to a 64 bit type and remove the pointless
f_spare members.
Compatibility goo courtesy of guenther@
ok krw@ millert@
|
|
|
|
|
|
| |
in MI code; gcc 2.95 does not accept such annotation for function pointer
declarations, only function prototypes.
To be uncommented once gcc 2.95 bites the dust.
|
|
|
|
|
|
| |
function pointer arguments which are {used as,} wrappers around the kernel
printf function.
No functional change.
|
|
|
|
|
|
|
|
|
|
| |
This fixes a problem where we could sleep for kva and then our pointers
would not be valid on the next pass through the loop. We do this
by adding buf_acquire_nomap() - which can be used to busy up the buffer
without changing its mapped or unmapped state. We do not need to have
the buffer mapped to invalidate it, so it is sufficient to acquire it
for that. In the case where we write the buffer, we do map the buffer, and
potentially sleep.
|
|
|
|
|
|
| |
consistent when the effective gid isn't also a supplementary group.
ok beck@
|
|
|
|
| |
ok beck@
|
| |
|
| |
|
| |
|
|
|
|
| |
prompted by tedu@
|
|
|
|
|
|
| |
unrelated, and his alpha is much happier now.
OK deraadt@
|
|
|
|
|
|
|
| |
no binary change
ok deraadt@
|
|
|
|
| |
have been resolved.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vector setup that has questionable features (that have, as far as I can
tell never been used in practice, atleast not in OpenBSD), remove all
the gunk and favor a simple struct full of function pointers that get
set directly by each of the filesystems.
Removes gobs of ugly code and makes things simpler by a magnitude.
The only downside of this is that we loose the vnoperate feature so
the spec/fifo operations of the filesystems need to be kept in sync
with specfs and fifofs, this is no big deal as the API it self is pretty
static.
Many thanks to armani@ who pulled an earlier version of this diff to
current after c2k10 and Gabriel Kihlman on tech@ for testing.
Liked by many. "come on, find your balls" deraadt@.
|
|
|
|
|
|
| |
commit.
"fix it -- free commit" beck@
|
|
|
|
|
|
|
|
|
| |
buffer cache - we grow them dynamically, but do not attempt to shrink
them if the buffer cache shrinks after growing.
Tested by very many for a long time.
ok oga@ todd@ phessler@ tedu@
|
|
|
|
| |
and remove the function. ok thib
|
|
|
|
|
|
|
| |
rt_if_remove_rtdelete() need to know the table id to be able to correctly
remove nodes.
Problem found by Andrea Parazzini and analyzed by Martin Pelikán.
OK henning@
|
|
|
|
|
| |
From mickey.
OK thib, otto.
|
|
|
|
|
|
|
| |
Written while trying to debug the nfs_inactive panics. Turns out it
never got hit, but it's a useful check to have.
ok beck@
|
|
|
|
| |
ok beck@ thib@
|
|
|
|
|
|
| |
this.
ok beck@, dlg@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
|
| |
after c2k9
allows buffer cache to be extended and grow/shrink dynamically
tested by many, ok oga@, "why not just commit it" deraadt@
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Just put it in the buf_acquire function.
oga@ ok
|
|
|
|
|
| |
off the vnode.
ok art@, oga@, miod@
|
| |
|
|
|
|
|
|
| |
it did not sleep. this is used to avoid checkdirs() to avoid having
to restart the allproc walk every time through
idea from tedu, ok thib pedro
|
|
|
|
| |
ok art@
|
|
|
|
|
|
|
| |
conversions that should shave a few bytes off the kernel.
ok henning, krw, jsing, oga, miod, and thib (``even though i usually prefer
FOO|BAR''; thanks for looking.
|
|
|
|
|
| |
with biomem and art has no idea how it got there.
ok art@ thib@
|
|
|
|
| |
ok thib beck art
|
|
|
|
|
|
|
|
| |
file copies to nfsv2 causes the system to eventually peg the console.
On the console ^T indicates that the load is increasing rapidly, ddb
indicates many calls to getbuf, there is some very slow nfs traffic
making none (or extremely slow) progress. Eventually some machines
seize up entirely.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) remove multiple size queues, introduced as a stopgap.
2) decouple pages containing data from their mappings
3) only keep buffers mapped when they actually have to be mapped
(right now, this is when buffers are B_BUSY)
4) New functions to make a buffer busy, and release the busy flag
(buf_acquire and buf_release)
5) Move high/low water marks and statistics counters into a structure
6) Add a sysctl to retrieve buffer cache statistics
Tested in several variants and beat upon by bob and art for a year. run
accidentally on henning's nfs server for a few months...
ok deraadt@, krw@, art@ - who promises to be around to deal with any fallout
|
|
|
|
|
|
| |
the superuser. access(2) will now only indicate success for X_OK on
non-directories if there is at least one execute bit set on the file.
OK deraadt@ thib@ otto@
|
|
|
|
|
|
| |
do appropriate cleanup;
OK deraadt@
|
|
|
|
|
|
|
|
|
| |
and the one route with the lowest number wins. This will be used by the
routing daemons to resolve the synchronisations issue in case of conflicts.
The nasty bits of this are in the multipath code. If no priority is specified
the kernel will choose an appropriate priority.
Looked at by a few people at n2k8 code is much older
|
|
|
|
|
|
|
|
|
| |
setroot() is now (and has been) responsible for setting
the mountroot function pointer "to the right thing", or
failing todo that, to ffs_mountroot;
based on a discussion/diff from deraadt@.
OK deraadt@
|
| |
|
|
|
|
|
| |
and add some to be able to support statvfs(2). Do the compat dance
to provide backward compatibility. ok thib@ miod@
|
|
|
|
|
|
| |
remove PNORELOCK flag, as PNORELOCK is used for msleep
ok art@ thib@
|
| |
|
| |
|
|
|
|
|
|
| |
replace an hard coded value with M_WAITOK
ok krw@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and a file is written onto the stick. Without these fixes the
machine panics or hangs.
The usb fix calls the callback when the stick is pulled out to free
the associated buffers. Otherwise we have busy buffers for ever
and the automatic unmount will panic.
The change in the scsi layer prevents passing down further dirty
buffers to usb after the stick has been deactivated.
In vfs the automatic unmount has moved from the function vgonel()
to vop_generic_revoke(). Both are called when the sd device's vnode
is removed. In vgonel() the VXLOCK is already held which can cause
a deadlock. So call dounmount() earlier.
ok krw@, I like this marco@, tested by ian@
|
|
|
|
| |
eyeballed and ok dlg@
|
|
|
|
|
|
|
|
|
|
|
|
| |
brings us back roughly to 4.1 level performance, although this is still
far from optimal as we have seen in a number of cases. This change
1) puts a lower bound on buffer cache queues to prevent starvation
2) fixes the code which looks for a buffer to recycle
3) reduces the number of vnodes back to 4.1 levels to avoid complex
performance issues better addressed after 4.2
ok art@ deraadt@, tested by many
|