Revision tags: release/4.9.0_cvs, release/4.9.0 |
|
#
f2b1200d |
| 20-Oct-2003 |
Alan Cox <alc@FreeBSD.org> |
Initialize the buf's b_object in pbgetvp(). Clear it in pbrelvp(). (This facilitates synchronization of the vm page's valid field using the vm object's lock.)
Suggested by: tegge
|
#
9027d603 |
| 20-Oct-2003 |
Alan Cox <alc@FreeBSD.org> |
- Synchronize access to a vm page's valid field using the containing vm object's lock.
|
#
2c18019f |
| 18-Oct-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
DuH!
bp->b_iooffset (the spot on the disk), not bp->b_offset (the offset in the file)
|
#
855c6fcc |
| 18-Oct-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Initialize bp->b_offset before calling VOP_STRATEGY()
|
#
9dbfeb0a |
| 28-Aug-2003 |
Jeff Roberson <jeff@FreeBSD.org> |
- Move BX_BKGRDWAIT and BX_BKGRDINPROG to BV_ and the b_vflags field. - Surround all accesses of the BKGRD{WAIT,INPROG} flags with the vnode interlock. - Don't use the B_LOCKED flag and QUEUE_LO
- Move BX_BKGRDWAIT and BX_BKGRDINPROG to BV_ and the b_vflags field. - Surround all accesses of the BKGRD{WAIT,INPROG} flags with the vnode interlock. - Don't use the B_LOCKED flag and QUEUE_LOCKED for background write buffers. Check for the BKGRDINPROG flag before recycling or throwing away a buffer. We do this instead because it is not safe for us to move the original buffer to a new queue from the callback on the background write buffer. - Remove the B_LOCKED flag and the locked buffer queue. They are no longer used. - The vnode interlock is used around checks for BKGRDINPROG where it may not be strictly necessary. If we hold the buf lock the a back-ground write will not be started without our knowledge, one may only be completed while we're not looking. Rather than remove the code, Document two of the places where this extra locking is done. A pass should be done to verify and minimize the locking later.
show more ...
|
#
68f2d20b |
| 22-Jul-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Revert stuff which accidentally ended up in the previous commit.
|
#
55d1d703 |
| 22-Jul-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Don't attempt to inline large functions mb_alloc() and mb_free(), it more than doubles the text size of this file.
GCC has wisely ignored us on this previously
|
#
677b542e |
| 11-Jun-2003 |
David E. O'Brien <obrien@FreeBSD.org> |
Use __FBSDID().
|
Revision tags: release/5.1.0_cvs, release/5.1.0 |
|
#
17a13919 |
| 31-May-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
The IO_NOWDRAIN and B_NOWDRAIN hacks are no longer needed to prevent deadlocks with vnode backed md(4) devices because md now uses a kthread to run the bio requests instead of doing it directly from
The IO_NOWDRAIN and B_NOWDRAIN hacks are no longer needed to prevent deadlocks with vnode backed md(4) devices because md now uses a kthread to run the bio requests instead of doing it directly from the bio down path.
show more ...
|
#
ad6adb4f |
| 28-May-2003 |
Ian Dowse <iedowse@FreeBSD.org> |
In cluster_wbuild(), initialise b_iocmd to BIO_WRITE before calling buf_start() to avoid triggering a panic in softdep_disk_io_initiation() if b_iocmd happened to be BIO_READ. The later initialisatio
In cluster_wbuild(), initialise b_iocmd to BIO_WRITE before calling buf_start() to avoid triggering a panic in softdep_disk_io_initiation() if b_iocmd happened to be BIO_READ. The later initialisation of b_iocmd in cluster_wbuild() could probably be moved to before the buf_start() call, but this patch keeps the change as simple as possible.
This is reported to fix occasional "softdep_disk_io_initiation: read" panics, especially on NFS servers.
Reported by: Nick Hilliard <nick@netability.ie> Tested by: Nick Hilliard <nick@netability.ie> Approved by: re (rwatson)
show more ...
|
#
2b7e071e |
| 20-Apr-2003 |
Alan Cox <alc@FreeBSD.org> |
- Lock the vm_object when performing vm_object_pip_add().
|
Revision tags: release/4.8.0_cvs, release/4.8.0 |
|
#
abb0e6da |
| 30-Mar-2003 |
Jeff Roberson <jeff@FreeBSD.org> |
- We are not guaranteed that read ahead blocks are not in memory already. Check for B_DELWRI as well as B_CACHED before issuing io on a buffer. This is especially important since we are changi
- We are not guaranteed that read ahead blocks are not in memory already. Check for B_DELWRI as well as B_CACHED before issuing io on a buffer. This is especially important since we are changing the b_iocmd.
show more ...
|
#
b4b138c2 |
| 18-Mar-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Including <sys/stdint.h> is (almost?) universally only to be able to use %j in printfs, so put a newsted include in <sys/systm.h> where the printf prototype lives and save everybody else the trouble.
|
#
5d952c1b |
| 17-Mar-2003 |
Jeff Roberson <jeff@FreeBSD.org> |
- Unlock the target bp and not the pager buf bp in a failure case in cluster_wbuild(). This was causing strange panics that were widely reported on current@.
Big Pointy Hat to: jeff
|
#
de950c00 |
| 13-Mar-2003 |
Jeff Roberson <jeff@FreeBSD.org> |
- Tune down read_max. For single disks we get no gain out of reading more than a MAXPHYS size block ahead. Having this set too high just leaves other processes starved for IO and screws up in
- Tune down read_max. For single disks we get no gain out of reading more than a MAXPHYS size block ahead. Having this set too high just leaves other processes starved for IO and screws up interactive response. Let the users with RAID set it higher when they need it.
show more ...
|
#
9ec55955 |
| 11-Mar-2003 |
Jeff Roberson <jeff@FreeBSD.org> |
- Regularize variable usage in cluster_read(). - Issue the io that we will later block on prior to doing cluster read ahead so that it is more likely to be ready when we block. - Loop issuing cl
- Regularize variable usage in cluster_read(). - Issue the io that we will later block on prior to doing cluster read ahead so that it is more likely to be ready when we block. - Loop issuing clustered reads until we've exhausted the seq count supplied by the file system. - Use a sysctl tunable "vfs.read_max" to determine the maximum number of blocks that we'll read ahead.
show more ...
|
#
24deed1a |
| 04-Mar-2003 |
Jeff Roberson <jeff@FreeBSD.org> |
- Hold the buf lock while manipulating and inspecting its fields. - Use gbincore() and not incore() so that we can drop the vnode interlock as we acquire the buflock. - Use GB_LOCK_NOWAIT when g
- Hold the buf lock while manipulating and inspecting its fields. - Use gbincore() and not incore() so that we can drop the vnode interlock as we acquire the buflock. - Use GB_LOCK_NOWAIT when getting bufs for read ahead clusters so that we don't block on locked bufs. - Convert a while loop to a howmany() that will most likely be faster on modern processors. There is another while loop divide that was left near by because it is operating on a 64bit int and is most likely faster. - Cleanup the cluster_read() code a little to get rid of a goto and make the logic clearer.
Tested on: x86, alpha Tested by: Steve Kargl <sgk@troutmask.apl.washington.edu> Reviewd by: arch
show more ...
|
#
7261f5f6 |
| 04-Mar-2003 |
Jeff Roberson <jeff@FreeBSD.org> |
- Add a new 'flags' parameter to getblk(). - Define one flag GB_LOCK_NOWAIT that tells getblk() to pass the LK_NOWAIT flag to the initial BUF_LOCK(). This will eventually be used in cases wer
- Add a new 'flags' parameter to getblk(). - Define one flag GB_LOCK_NOWAIT that tells getblk() to pass the LK_NOWAIT flag to the initial BUF_LOCK(). This will eventually be used in cases were we want to use a buffer only if it is not currently in use. - Convert all consumers of the getblk() api to use this extra parameter.
Reviwed by: arch Not objected to by: mckusick
show more ...
|
#
17661e5a |
| 25-Feb-2003 |
Jeff Roberson <jeff@FreeBSD.org> |
- Add an interlock argument to BUF_LOCK and BUF_TIMELOCK. - Remove the buftimelock mutex and acquire the buf's interlock to protect these fields instead. - Hold the vnode interlock while locking
- Add an interlock argument to BUF_LOCK and BUF_TIMELOCK. - Remove the buftimelock mutex and acquire the buf's interlock to protect these fields instead. - Hold the vnode interlock while locking bufs on the clean/dirty queues. This reduces some cases from one BUF_LOCK with a LK_NOWAIT and another BUF_LOCK with a LK_TIMEFAIL to a single lock.
Reviewed by: arch, mckusick
show more ...
|
#
d6bf2378 |
| 20-Feb-2003 |
Olivier Houchard <cognet@FreeBSD.org> |
Remove duplicate includes.
Submitted by: Cyril Nguyen-Huu <cyril@ci0.org>
|
#
a163d034 |
| 19-Feb-2003 |
Warner Losh <imp@FreeBSD.org> |
Back out M_* changes, per decision of the TRB.
Approved by: trb
|
#
44956c98 |
| 21-Jan-2003 |
Alfred Perlstein <alfred@FreeBSD.org> |
Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
|
Revision tags: release/5.0.0_cvs, release/5.0.0 |
|
#
6274bdda |
| 07-Nov-2002 |
John Baldwin <jhb@FreeBSD.org> |
- Use %j to print intmax_t values. - Cast more daddr_t values to intmax_t when printing to quiet warnings.
|
Revision tags: release/4.7.0_cvs |
|
#
d64370cb |
| 25-Sep-2002 |
Jeff Roberson <jeff@FreeBSD.org> |
- Use incore() where no other interlock locking is necessary. - Lock access to numoutput.
|
#
93b0017f |
| 25-Aug-2002 |
Philippe Charnier <charnier@FreeBSD.org> |
Replace various spelling with FALLTHROUGH which is lint()able
|