summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_bio.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* some buffers (containing metadata) can only be written during themickey2006-10-191-1/+12
| | | | | | | bdwrite call made on 'em due to otherwise pending softdeps and thus being deferred by the sybcer. promote bdwrite into bawrite for those cases. tested by many. pedro@ ok
* Use daddr64_t for logical blocks, okay krw@ thib@ mickey@pedro2006-10-161-7/+7
|
* Another grammar nit; "please go ahead" jmc@.tom2006-08-281-2/+2
|
* typos; from tbertjmc2006-08-281-5/+5
| | | | (one not taken)
* chose proper mountpoint in making decision on upgradingmickey2006-08-171-13/+12
| | | | | | | | bwrte() to async op. this fixes in particular panics w/ softdep ffs mounted at a dir in an async mounted (mfs) file system and also a few other evil scenarios. this also matches a netbsd change 1.76 . tested by many on many archs; pedro@ ok
* Propagate error on getnewbuf(), effectively allowing callers to bepedro2006-08-091-13/+26
| | | | | notified of posted signals for the current process, okay tedu@. Based on initial diagnosis by R. Tyler Ballance <tyler@bleepsoft.com>
* Use NULL where NULL is meant, from thib, no binary changepedro2006-04-241-5/+5
|
* Use ANSI-style function declarations, no binary change, okay jsg@pedro2005-11-061-2/+2
|
* Revert revision 1.39. Under heavy load, it could cause severe corruptionpedro2005-10-081-40/+16
| | | | | in the buffer lists by removing a buffer from the hash twice. Problem identified in discussion with Alexander Bluhm <Alexander_Bluhm@genua.de>.
* When releasing a buffer and disassociating it from its vnode, there'spedro2005-06-271-4/+3
| | | | | no point in placing the buffer in the vnode's clean list just to remove it afterwards. Talked over with art@, various testing for a while.
* Protect buf_countdeps() call in buf_daemon() with splbio(), okay art@pedro2005-06-171-2/+2
|
* Use list and queue macros where applicable to make the code easier to read;miod2004-12-261-5/+5
| | | | no change in compiler assembly output.
* match comments with reality and use 'null' for pointers in incore()pedro2004-12-111-7/+4
|
* less then -> less thanjsg2004-12-051-2/+2
|
* kill breada(), from Sven Dehmlow. ok tedu@ millert@pedro2004-11-301-14/+1
|
* englishpedro2004-11-011-2/+2
|
* spl dance to protect buffer flags in a sensitive contextpedro2004-09-201-3/+3
| | | | ok millert@ tedu@
* This moves access to wall and uptime variables in MI code,tholo2004-06-241-3/+6
| | | | | | | | | | | | | | encapsulating all such access into wall-defined functions that makes sure locking is done as needed. It also cleans up some uses of wall time vs. uptime some places, but there is sure to be more of these needed as well, particularily in MD code. Also, many current calls to microtime() should probably be changed to getmicrotime(), or to the {,get}microuptime() versions. ok art@ deraadt@ aaron@ matthieu@ beck@ sturm@ millert@ others "Oh, that is not your problem!" from miod@
* Remove the advertising clause in the UCB license which Berkeleymillert2003-06-021-6/+2
| | | | rescinded 22 July 1999. Proofed by myself and Theo.
* Fix the tree. Jason, you were such a rock star yesterday, but it obviouslyderaadt2003-05-131-2/+2
| | | | blinded you to the fact you were breaking ALL of our install media!
* Kill a bunch more commons (very few left =)jason2003-05-131-2/+2
|
* Use LIST_FOREACH.art2002-06-091-6/+3
|
* ANSIfy (started as some other change that just ran away).art2002-06-091-64/+28
|
* protect more of the bookkeeping variables with splbio.art2002-05-241-3/+3
|
* typoart2002-05-241-2/+2
|
* some b_iodone handlers and vwakeup require splbio.art2002-05-221-1/+3
| | | | Mark biodone with splassert(IPL_BIO).
* sprinkle some splassert(IPL_BIO) in some functions that are commented as "should be called at splbio()"art2002-05-161-1/+5
|
* Comment biodone as "must be called at splbio".art2002-04-271-1/+3
| | | | It calls vwakeup and vwakeup is marked as "must be at splbio".
* First round of __P removal in sysmillert2002-03-141-3/+3
|
* Move SET/CLR/ISSET macros to param.h. fgsch@ and millert@ oknordin2002-01-301-6/+1
|
* Pool deals fairly well with physical memory shortage, but it doesn't dealart2002-01-231-3/+2
| | | | | | | | | | | | | | | | | | 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.
* UBC was a disaster. It worked very good when it worked, but on someart2001-12-191-26/+48
| | | | | | | | | machines or some configurations or in some phase of the moon (we actually don't know when or why) files disappeared. Since we've not been able to track down the problem in two weeks intense debugging and we need -current to be stable, back out everything to a state it had before UBC. We apologise for the inconvenience.
* Call buf_cleanout, which handles wakeupscsapuntz2001-11-301-1/+14
|
* kill breadaart2001-11-271-18/+1
|
* Merge in the unified buffer cache code as found in NetBSD 2001/03/10. Theart2001-11-271-31/+13
| | | | | | | code is written mostly by Chuck Silvers <chuq@chuq.com>/<chs@netbsd.org>. Tested for the past few weeks by many developers, should be in a pretty stable state, but will require optimizations and additional cleanups.
* bio_doread doesn't need a cred anymoreart2001-11-151-9/+6
|
* Remove creds from struct buf, move the creds that nfs need into the nfs node.art2001-11-151-17/+1
| | | | | | While in the area, convert nfs node allocation from malloc to pool and do some cleanups. Based on the UBC changes in NetBSD. niklas@ ok.
* Create bufpool - a pool of struct bufs.art2001-11-091-1/+9
|
* Replace inclusion of <vm/foo.h> with the correct <uvm/bar.h> when necessary.miod2001-11-061-2/+2
| | | | (Look ma, I might have broken the tree)
* we try to test things before commit, artderaadt2001-10-281-68/+4
|
* Sprinkle some assertions in the buffer code.art2001-10-281-4/+68
| | | | Add a new DEBUG function "buf_print" that prints the contents of struct buf.
* Fix flawed logic when deciding if we should sleep whenart2001-10-111-3/+3
| | | | we are below the low watermark or if we should try to use up all buffers.
* Count pages not buffers. This fixes deadlock condition which mainlygluk2001-10-111-80/+80
| | | | | | | | | | | | | | | occurs on the fs with large block size. We can have situation where numcleanbufs < locleanbufs and numdirtybufs < hidirtybufs. So, buffer flushing daemon never wakeups and other processes asleep forever waiting for a clean buffers. We count pages only for the dirty buffers which are on freelist(BQ_DIRTY). niklas@ found this. Rename flasher to cleaner. Suggested by costa@. Discussed with niklas@, costa@, millert@, art@. Ok deraadt@.
* Get rid of B_VFLUSH. Tested by costa and me.gluk2001-09-201-27/+8
|
* No need for this complicated (and bug-prone) method for waking up the flusher.art2001-09-191-23/+5
|
* The first implementation of the buffer flushing daemon. It solves ourgluk2001-09-171-88/+156
| | | | | | | | | | | | | | | | | | | | problem when syncer can't do its work because of vnode locks (PR1983). This also solves our problem where bigger number of buffers results in a much worse perfomance. In my configuration (i386, 128mb, BUFCACHEPERCENT=35) this speedup tar -xzf ports.tar.gz in 2-4 times. In configuration with low number of buffers and softupdates this may slowdown some operations up to 15%. The major difference with current buffer cache is that new implementation uses separate queues for dirty and clean buffers. I.e. BQ_LRU and BQ_AGE replaced by BQ_CLEAN and BQ_DIRTY. This simplifies things a lot and doesn't affect perfomance in a bad manner. Thanks to art and costa for pointing on errors. Tested by brad, millert, naddy, art, jj, camield art, millert ok.
* remove useless debug function.gluk2001-09-101-22/+1
|
* Change getnewbuf interface so that getnewbuf always returngluk2001-08-301-18/+39
| | | | | | | a new buffer and indicate if it sleep while getting that buffer. This isn't make a much sense, but farther modifications will use it. Work by art@
* Get rid of CLSIZE and all related stuff.art2001-05-051-9/+9
| | | | | | | | | CLSIZE -> 1 CLBYTES -> PAGE_SIZE OLOFSET -> PAGE_MASK etc. At the same time some archs needed some cleaning in vmparam.h so that goes in at the same time.
* Avoid a livelock problem where the buffer cache code would begluk2001-04-061-2/+7
| | | | | | recycling B_AGE buffers with dependencies. >From NetBSD. costa@ ok.