Age | Commit message (Collapse) | Author |
|
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
|
|
with eopnotsupp() instead;
ok blambert@
|
|
so ratelimit the messages to about once every 2secs.
ok dlg@ (who also pointed out me missing 'static' in the timeval decls.)
"sounds good to me" deraadt@
|
|
and add some to be able to support statvfs(2). Do the compat dance
to provide backward compatibility. ok thib@ miod@
|
|
groups, it is possible that fpg * ncg overflows an int. Problem
seen by jared rr spiegel while playing with very small fragments
on a large disk. ok krw@ millert@
|
|
from Pedro Martelleto. Two things remain: the on-disk quota
structures are still 32-bit and statfs does not do 64-bit numbers
yet. ok deraadt@
|
|
sys/dev/pci/pciide.c from naddy@
|
|
factor it into a new function, ffs_cgread(); and use that.
From mickey;
OK art@, toby@
|
|
ok krw@
|
|
Fixes a couple cases where atime was being updated even when the
filesystem was mounted with the noatime option.
Adapted from similar placement in FreeBSD and NetBSD.
Tested by myself and naddy@
|
|
make sure that theres a minimum amount of free blocks in that cylinder
group by tweaking the minbfree calculation. Without this, cylinder groups
with no free blocks could be chosen which resaults in expensive searches
for free blocks each time a new file is created in the directory.
Tweak the calculation of minifree (minimum free inodes) in the same
way. Also decrease the maxcontigdirs as the file system fills up to
lessen the chance of directory clusters overflowing the available
space in the cylinder group.
From FreeBSD (Rev 1.116 of sys/ufs/ffs/ffs_alloc.c);
ok miod@
|
|
and VOP_CLOSE() since both of them expected it too be locked.
ok art@
|
|
eyeballed and ok dlg@
|
|
we'll just randomly brelse a random block that might or might no have
been the block that failed. Which wouldn't be necessary anyway since
bwrite releases the block wether the write succeeded or not. And if
someone won the race for that block (perfectly possible since we're
sleeping in this function) we'll just release a live block under his
feet.
beck@ ok
|
|
Propagate the wait flag from fsync down to softdep_fsync_mountdev()
and do not perform synchronous sync there is no wait requested by
skipping the drain_output() call. This fixes a problem where
update kthread would sleep forever on some vnode since work is created
faster than it can be flushed.
OK deraadt@
|
|
clusteralloc();
From mickey; ok pedro@
|
|
mounted softdep file system, okay mickey@ beck@ art@
|
|
"ap = v" comments in under 8 seconds, so it must be ok. and it compiles
too.
|
|
|
|
|
|
|
|
|
|
|
|
the fs remains dirty. ok pedro@
|
|
Okay otto@ millert@ krw@ beck@ thib@
|
|
|
|
deraadt@ dlg@.
|
|
This was part of the ffs2 changes but was not committed earlier in
order to make the userland and kernel changes independent.
NOTE: the change to newfs require an updated fs.h; building an
updated newfs with the old fs.h may result in a broken filesystem.
OK otto@
|
|
|
|
and should not have its own MOUNT_XXX define.
|
|
architectures, CGSIZE() was returning something sligthly over one block.
The 'new' fsck would round this value up to a fragment boundary, and end
up trying to access memory beyond allocated space. From mickey@, okay
pedro@, millert@ and otto@.
|
|
since time_t will have to be crank to 64 bits at some point in the
future. OK pedro@
|
|
messages are consistent, from mickey@, okay pedro@
|
|
multiple defines all over;
ok tedu@
|
|
superblock is OK; Makes it work for FFS2.
ok tedu@
|
|
upon unmount, we were generating rollbacks that wouldn't be taken care
of, as well as leaving dangling items in softdep's worklist.
|
|
|
|
|
|
Zap all calls to simple_lock/unlock() on it (those calls are
#defined away though). Remove the LK_INTERLOCK from the calls
to vn_lock() and cleanup the filesystems wich implement VOP_LOCK().
(by remvoing the v_interlock from there calls to lockmgr()).
ok pedro@, art@, tedu@
|
|
|
|
accessing FFS1 fields, okay art@, quite some testing by ckuethe@, simon@
and thib@, thanks.
|
|
it's a good idea to use atomic.h operations on it. This mechanic
change updates all bit operations on p_flag to atomic_{set,clear}bits_int.
Only exception is that P_OWEUPC is set by MI code before calling
need_proftick and it's automatically cleared by ADDUPC. There's
no reason for MD handling of that flag since everyone handles it the
same way.
kettenis@ ok
|
|
|
|
|
|
Okay millert@
|
|
okay toby@ millert@
|
|
and failing to acquire a data block, from freebsd"
fix this in ffs2_balloc() as well
requested by and ok pedro
|
|
|