#
3febdd8f |
| 12-Sep-1999 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Use a different tactic when creating the devsw so that disk_create() doesn't need to malloc.
|
#
85a219d2 |
| 09-Sep-1999 |
Julian Elischer <julian@FreeBSD.org> |
Changes to centralise the default blocksize behaviour. More likely to follow.
Submitted by: phk@freebsd.org
|
#
8684f73a |
| 01-Sep-1999 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Improve the micro "disk" layer after gaining more experience with it.
|
#
da9e4f55 |
| 29-Aug-1999 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Add micro "disk" layer which should enable us to pull all the slice/label stuff out of the device drivers.
|
Revision tags: release/7.2.0_cvs, release/7.2.0 |
|
#
1829d5da |
| 12-Mar-2009 |
Warner Losh <imp@FreeBSD.org> |
Update the projects tree to a newer FreeBSD current.
|
#
d4619572 |
| 13-Feb-2009 |
Luigi Rizzo <luigi@FreeBSD.org> |
Clarify and reimplement the bioq API so that bioq_disksort() has the correct behaviour (sorting by distance from the current head position in the scan direction) and bioq_insert_head() and bioq_inser
Clarify and reimplement the bioq API so that bioq_disksort() has the correct behaviour (sorting by distance from the current head position in the scan direction) and bioq_insert_head() and bioq_insert_tail() have a well defined (and useful) behaviour, especially when intermixed with calls to bioq_disksort().
In particular: - fix a bug in the existing bioq_disksort() that did not use the current head position correctly; - redefine semantics of bioq_insert_head() and bioq_insert_tail(). bioq_insert_tail() can now be used as a barrier between previous and subsequent calls to bioq_disksort().
The code is heavily documented in the source code so please refer to that for the details.
Much of this code comes from Fabio Checconi. Also thanks to Kirk for feedback on the (re)definition of bioq_insert_tail().
NOTE: in the current tree there is only a handful of files which intermix calls to bioq_disksort() with bioq_insert_head() and bioq_insert_tail(). The ordering of the queue in these situation was not specified (nor easy to figure out) before, so I doubt any of that code could be affected by the specification of the API.
Also note that the current implementation is significantly simpler than the previous one (also used in ata_sort_queue()). It would be useful to reimplement ata_sort_queue() using the same code used in bioq_disksort().
MFC after: 1 week
show more ...
|
#
13b4c4c3 |
| 03-Feb-2009 |
Warner Losh <imp@FreeBSD.org> |
Make bioq_disksort have a ANSI-C definition rather than a K&R definition.
|
Revision tags: release/7.1.0_cvs, release/7.1.0, release/6.4.0_cvs, release/6.4.0, release/7.0.0_cvs, release/7.0.0, release/6.3.0_cvs, release/6.3.0, release/6.2.0_cvs, release/6.2.0 |
|
#
c3618c65 |
| 31-Oct-2006 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Add a new I/O request - BIO_FLUSH, which basically tells providers below to flush their caches. For now will mostly be used by disks to flush their write cache.
Sponsored by: home.pl
|
#
56e26c3e |
| 29-May-2006 |
Xin LI <delphij@FreeBSD.org> |
Unexpand TAILQ_FIRST(foo) == NULL to TAILQ_EMPTY(foo).
|
Revision tags: release/5.5.0_cvs, release/5.5.0, release/6.1.0_cvs, release/6.1.0 |
|
#
bc03ea7f |
| 14-Jan-2006 |
Robert Watson <rwatson@FreeBSD.org> |
When calling bioq_first() to see if a queue is empty in bioq_disksort(), don't save the return value as we won't use it.
Noticed by: Coverity Prevent analysis tool MFC after: 3 days
|
Revision tags: release/6.0.0_cvs, release/6.0.0 |
|
#
bdcd9f26 |
| 16-Jun-2005 |
Jeff Roberson <jeff@FreeBSD.org> |
- Fix insertions of bios which represent data earlier than anything else in the queue. The insertion sort assumed this had already been taken care of.
Spotted by: Antoine Brodin Approved by:
- Fix insertions of bios which represent data earlier than anything else in the queue. The insertion sort assumed this had already been taken care of.
Spotted by: Antoine Brodin Approved by: re (scottl)
show more ...
|
#
f19f6869 |
| 13-Jun-2005 |
Jeff Roberson <jeff@FreeBSD.org> |
- Dramatically simplify bioqdisksort(). We no longer do ordered bios so most of the code to deal with them has been dead for sometime. Simplify the code by doing an insert sort hinted by the
- Dramatically simplify bioqdisksort(). We no longer do ordered bios so most of the code to deal with them has been dead for sometime. Simplify the code by doing an insert sort hinted by the current head position.
Met with apathy by: arch@
show more ...
|
Revision tags: release/5.4.0_cvs, release/5.4.0, release/4.11.0_cvs, release/4.11.0 |
|
#
9454b2d8 |
| 07-Jan-2005 |
Warner Losh <imp@FreeBSD.org> |
/* -> /*- for copyright notices, minor format tweaks as necessary
|
#
bf484316 |
| 13-Dec-2004 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Add bioq_insert_head() function.
OK'd by: phk
|
Revision tags: release/5.3.0_cvs, release/5.3.0 |
|
#
d298f919 |
| 19-Aug-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Add bioq_takefirst().
If the bioq is empty, NULL is returned. Otherwise the front element is removed and returned.
This can simplify locking in many drivers from:
lock() bp = bioq_first(bq); i
Add bioq_takefirst().
If the bioq is empty, NULL is returned. Otherwise the front element is removed and returned.
This can simplify locking in many drivers from:
lock() bp = bioq_first(bq); if (bp == NULL) { unlock() return } bioq_remove(bp, bq) unlock to: lock() bp = bioq_takefirst(bq); unlock() if (bp == NULL) return;
show more ...
|
Revision tags: release/4.10.0_cvs, release/4.10.0, release/5.2.1_cvs, release/5.2.1, release/5.2.0_cvs, release/5.2.0, release/4.9.0_cvs, release/4.9.0 |
|
#
1ad9172f |
| 18-Oct-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Report bio_pblkbo instead of bio_blkno.
|
#
4cb4df48 |
| 18-Oct-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Make bioq_disksort() sort on the bio_offset field instead of bio_pblkno.
|
#
b8404473 |
| 14-Oct-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Made use of 'error' argument, which was unused (by mistake) before.
Submitted by: Pawel Jakub Dawidek <nick@garage.freebsd.pl>
|
#
677b542e |
| 11-Jun-2003 |
David E. O'Brien <obrien@FreeBSD.org> |
Use __FBSDID().
|
Revision tags: release/5.1.0_cvs, release/5.1.0 |
|
#
a3007012 |
| 16-Apr-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Don't include <sys/disklabel.h>
|
#
b0fc6220 |
| 03-Apr-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove BIO_SETATTR from non-GEOM part of kernel as well.
|
Revision tags: release/4.8.0_cvs, release/4.8.0 |
|
#
81750927 |
| 01-Apr-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
#include <geom/geom_disk.h>
|
#
af6ca7f4 |
| 01-Apr-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Introduce bioq_flush() function.
|
#
d2a0822e |
| 30-Mar-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
retire the "busy" field in bioqueues, it's served it's purpose.
|
#
d086f85a |
| 30-Mar-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Preparation commit before I start on the bioqueue lockdown:
Collect all the bits of bioqueue handing in subr_disk.c, vfs_bio.c is big enough as it is and disksort already lives in subr_disk.c.
|