Lines Matching refs:bio
15 context of the bio rewrite. The idea is to bring out some of the key
23 2.5 bio rewrite:
37 The following people helped with fixes/contributions to the bio patches
58 2.2 The bio struct in detail (multi-page io unit)
62 3.2 Generic bio helper routines
194 cases, a bounce bio representing a buffer from the supported memory range
256 The flags and rw fields in the bio structure can be used for some tuning
272 requests. Some bits in the bi_rw flags field in the bio structure are
303 For passing request data, the caller must build up a bio descriptor
305 bio segments or uses the block layer end*request* functions for i/o
308 addresses passed in this way and ignores bio entries for the request type
319 expect bios, a helper function could be provided for setting up a bio
324 <SUP: What I meant here was that if the request doesn't have a bio, then
329 This is because end_that_request_first only iterates over the bio list,
405 The solution was to define a new structure (bio) for the block layer,
407 avoidance of some associated baggage and limitations. The bio structure
410 mapped to bio structures.
412 2.2 The bio struct
414 The bio structure uses a vector representation pointing to an array of tuples
419 Notice that this representation means that a bio has no virtual address
431 struct bio {
432 struct bio *bi_next; /* request queue link */
446 bio_end_io_t *bi_end_io; /* bi_end_io (bio) */
451 With this multipage bio design:
457 lvm or raid) is achieved by cloning the bio (where the clone points to
461 - Code that traverses the req list can find all the segments of a bio
464 - Drivers which can't process a large bio in one shot can use the bi_iter
473 bi_end_io() i/o callback gets called on i/o completion of the entire bio.
489 The same is true of Andrew Morton's work-in-progress multipage bio writeout
552 struct bio *bio, *biotail; /* bio list instead of bh */
562 be one of the many segments in the current bio (i.e i/o completion unit).
573 buffer, bio, bio->bi_iter fields too.
591 subsystems like bio to maintain their own reserve memory pools for guaranteed
607 case of bio, these routines make use of the standard slab allocator.
613 in the bounce bio allocation that happens in the current code, since
614 it ends up allocating a second bio from the same pool while
615 holding the original bio ]
618 amount of time (in the case of bio, that would be after the i/o is completed).
626 for a non-clone bio. There are the 6 pools setup for different size biovecs,
630 The bio_get() routine may be used to hold an extra reference on a bio prior
631 to i/o submission, if the bio fields are likely to be accessed after the
632 i/o is issued (since the bio may otherwise get freed in case i/o completion
635 The bio_clone() routine may be used to duplicate a bio, where the clone
636 shares the bio_vec_list with the original bio (i.e. both point to the
640 3.2 Generic bio helper Routines
653 I/O completion callbacks are per-bio rather than per-segment, so drivers
654 that traverse bio chains on completion need to keep that in mind. Drivers
694 bio support, end_that_request_first requires an additional argument indicating
707 and transparent mapping of the next bio segment when a segment boundary
709 be used if only if the request has come down from block/bio path, not for
710 direct access requests which only specify rq->buffer without a valid rq->bio)
818 The routine submit_bh() invokes submit_bio() on a bio corresponding to the
819 bh, allocating the bio if required. ll_rw_block() uses submit_bh() as before.
840 bio and kvec.
846 Andrew Morton's multi-page bio patches attempt to issue multi-page
852 bh). This isn't included in bio as yet. Christoph was also working on a
872 Now it should be possible to directly map these kvecs to a bio. Just as while
910 elevator_merge_fn called to query requests for merge with a bio
923 that a bio can be merged into an existing
1071 The sector number used in the bio structure has been changed to sector_t,
1100 to bio.
1108 it will loop and handle as many sectors (on a bio-segment granularity)
1111 Now bh->b_end_io is replaced by bio->bi_end_io, but most of the time the
1112 right thing to use is bio_endio(bio, uptodate) instead.
1134 As mentioned, there is no virtual mapping of a bio. For DMA, this is
1142 temporarily map a bio into the virtual address space.
1155 8.4. Multi-page pioent patch for bio (Christoph Hellwig)
1170 8.16 Direct i/o patches for 2.5 using kvec and bio (Badari Pulavarthy)
1177 et al - Feb-March 2001 (many of the initial thoughts that led to bio were