Thread (17 messages) 17 messages, 4 authors, 2021-05-03

Re: [PATCH v2] block: Improve limiting the bio size

From: Changheun Lee <hidden>
Date: 2021-04-28 07:39:30

On 4/26/21 9:12 PM, Changheun Lee wrote:
quoted
Actually I checked "bio->bi_disk" at first as below. It works well.
Agreed that the bi_disk pointer needs to be checked.
quoted
I think "bi_bdev->bd_disk" checking might be needed too.
bio_max_size() occurs in the hot path. Since if-tests have a runtime
cost I'd like to keep the number of if-tests inside bio_max_size() to a
minimum.

I only found one bd_disk assignment in the kernel tree, namely inside
bdev_alloc(). The two bdev_alloc() calls I found inside the kernel tree
pass a valid disk pointer to bdev_alloc(). So I think it is not
necessary to check the disk pointer inside bio_max_size().

Thanks,

Bart.
I think bio->bi_bdev should be null in bio_copy_kern(), or bio_map_kern()
logically. Because it is simple buffer mapping in driver layer. Actually
bio->bi_bdev is null in my test environment. So bio->bi_bdev check only is
enough as Bart's patch.

Actually I don't know why NULL pointer dereference is occurred with Bart's
patch in blk_rq_map_kern(). And same problem have not occured yet in my
test environment with Bart's patch.
Maybe I missed something, or missunderstood?

Thanks,

Changheun Lee.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help