Re: [PATCH v2 08/11] md/raid5: align bio to io_opt
Li Nan <[email protected]>
| Newsgroups | gmane.linux.raid |
|---|---|
| Message-ID | <[email protected]> |
在 2026/1/3 23:45, Yu Kuai 写道: > raid5 internal implementaion indicates that if write bio is aligned to > io_opt, then full stripe write will be used, which will be best for > bandwidth because there is no need to read extra data to build new > xor data. > > Simple test in my VM, 32 disks raid5 with 64kb chunksize: > dd if=/dev/zero of=/dev/md0 bs=100M oflag=direct > > Before this patch: 782 MB/s > With this patch: 1.1 GB/s > > BTW, there are still other bottleneck related to stripe handler, and > require further optimization. > > Signed-off-by: Yu Kuai <[email protected]> > --- > drivers/md/raid5.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c > index 005a2404de27..69a5eb02b891 100644 > --- a/drivers/md/raid5.c > +++ b/drivers/md/raid5.c > @@ -59,8 +59,7 @@ > #define UNSUPPORTED_MDDEV_FLAGS \ > ((1L << MD_FAILFAST_SUPPORTED) | \ > (1L << MD_FAILLAST_DEV) | \ > - (1L << MD_SERIALIZE_POLICY) | \ > - (1L << MD_BIO_ALIGN)) > + (1L << MD_SERIALIZE_POLICY)) > > > #define cpu_to_group(cpu) cpu_to_node(cpu) > @@ -7818,8 +7817,7 @@ static int raid5_set_limits(struct mddev *mddev) > * Limit the max sectors based on this. > */ > lim.max_hw_sectors = RAID5_MAX_REQ_STRIPES << RAID5_STRIPE_SHIFT(conf); > - if ((lim.max_hw_sectors << 9) < lim.io_opt) > - lim.max_hw_sectors = lim.io_opt >> 9; > + md_config_align_limits(mddev, &lim); > > /* No restrictions on the number of segments in the request */ > lim.max_segments = USHRT_MAX; LGTM Reviewed-by: Li Nan <[email protected]> -- Thanks, Nan