lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 22 Dec 2014 12:48:44 +0100
From:	Dongsu Park <>
Cc:	Jens Axboe <>, Kent Overstreet <>,
	Ming Lin <>,
	Dongsu Park <>,
	Jonathan Corbet <>,
Subject: [RFC PATCH 17/17] Documentation: update notes in biovecs about arbitrarily sized bios

Update block/biovecs.txt so that it includes a note on what kind of
effects arbitrarily sized bios would bring to the block layer.
Also fix a trivial typo, bio_iter_iovec.

Signed-off-by: Dongsu Park <>
Cc: Kent Overstreet <>
Cc: Jonathan Corbet <>
 Documentation/block/biovecs.txt | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/Documentation/block/biovecs.txt b/Documentation/block/biovecs.txt
index 74a32ad..339045d 100644
--- a/Documentation/block/biovecs.txt
+++ b/Documentation/block/biovecs.txt
@@ -24,7 +24,7 @@ particular, presenting the illusion of partially completed biovecs so that
 normal code doesn't have to deal with bi_bvec_done.
  * Driver code should no longer refer to biovecs directly; we now have
-   bio_iovec() and bio_iovec_iter() macros that return literal struct biovecs,
+   bio_iovec() and bio_iter_iovec() macros that return literal struct biovecs,
    constructed from the raw biovecs but taking into account bi_bvec_done and
@@ -109,3 +109,18 @@ Other implications:
    over all the biovecs in the new bio - which is silly as it's not needed.
    So, don't use bi_vcnt anymore.
+ * As of 3.18, block layer is written based on merging biovecs. Its goal is
+   to avoid having to split bios; upper layer code such as bio_add_page()
+   checks what the underlying device can handle, and tries to always create
+   bios that don't need to be split. However, this approach has been actually
+   cumbersome and error-prone. It eventually breaks down with stacked devices
+   and devices with dynamic limits, which then adds a lot of complexity.
+   So its new interface allows the block layer to split bios as needed, so we
+   could eliminate a lot of complexity elsewhere - particularly in stacked
+   drivers. Code that creates bios can then create whatever size bios are
+   convenient, and more importantly stacked drivers don't have to deal with
+   both their own bio size limitations and the limitations of the underlying
+   devices. Thus there's no need to define ->merge_bvec_fn() callbacks for
+   individual block drivers.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

Powered by blists - more mailing lists