diff options
author | Jens Axboe <jens.axboe@oracle.com> | 2008-12-23 06:42:54 -0500 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2008-12-29 02:29:50 -0500 |
commit | 392ddc32982a5c661dd90dd49a3cb37f1c68b782 (patch) | |
tree | 614b8e857a70ce479bcbbf24af66a56b7723efc8 /include/linux/bio.h | |
parent | bb799ca0202a360fa74d5f17039b9100caebdde7 (diff) |
bio: add support for inlining a number of bio_vecs inside the bio
When we go and allocate a bio for IO, we actually do two allocations.
One for the bio itself, and one for the bi_io_vec that holds the
actual pages we are interested in.
This feature inlines a definable amount of io vecs inside the bio
itself, so we eliminate the bio_vec array allocation for IO's up
to a certain size. It defaults to 4 vecs, which is typically 16k
of IO.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'include/linux/bio.h')
-rw-r--r-- | include/linux/bio.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/bio.h b/include/linux/bio.h index 4b80d3537f97..18462c5b8fff 100644 --- a/include/linux/bio.h +++ b/include/linux/bio.h | |||
@@ -102,6 +102,13 @@ struct bio { | |||
102 | #endif | 102 | #endif |
103 | 103 | ||
104 | bio_destructor_t *bi_destructor; /* destructor */ | 104 | bio_destructor_t *bi_destructor; /* destructor */ |
105 | |||
106 | /* | ||
107 | * We can inline a number of vecs at the end of the bio, to avoid | ||
108 | * double allocations for a small number of bio_vecs. This member | ||
109 | * MUST obviously be kept at the very end of the bio. | ||
110 | */ | ||
111 | struct bio_vec bi_inline_vecs[0]; | ||
105 | }; | 112 | }; |
106 | 113 | ||
107 | /* | 114 | /* |
@@ -213,6 +220,11 @@ static inline void *bio_data(struct bio *bio) | |||
213 | return NULL; | 220 | return NULL; |
214 | } | 221 | } |
215 | 222 | ||
223 | static inline int bio_has_allocated_vec(struct bio *bio) | ||
224 | { | ||
225 | return bio->bi_io_vec && bio->bi_io_vec != bio->bi_inline_vecs; | ||
226 | } | ||
227 | |||
216 | /* | 228 | /* |
217 | * will die | 229 | * will die |
218 | */ | 230 | */ |