Re: [PATCH v3 01/11] md/raid5: add CONFIG_MD_RAID456_STRIPE_SHIFT to set STRIPE_SIZE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 2020/5/27 21:54, Guoqing Jiang wrote:
Hi,

On 5/27/20 3:19 PM, Yufen Yu wrote:
  +config MD_RAID456_STRIPE_SHIFT
+    int "RAID4/RAID5/RAID6 stripe size shift"
+    default "1"
+    depends on MD_RAID456
+    help
+      When set the value as 'N', stripe size will be set as 'N << 9',
+      which is a multiple of 4KB.

If 'N  << 9', then seems you are convert it to sector, do you actually mean 'N << 12'?

+
+      The default value is 1, that means the default stripe size is
+      4096(1 << 9). Just setting as a bigger value when PAGE_SIZE is
+      bigger than 4096. In that case, you can set it as 2(8KB),
+      4(16K), 16(64K).

So with the above description, the algorithm should be 2 << 12 = 8KB and so on.

+
+      When you try to set a big value, likely 16 on arm64 with 64KB
+      PAGE_SIZE, that means, you know size of each io that issued to
+      raid device is more than 4096. Otherwise just use default value.
+
+      Normally, using default value can get better performance.
+      Only change this value if you know what you are doing.
+
+
  config MD_MULTIPATH
      tristate "Multipath I/O support"
      depends on BLK_DEV_MD
diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h
index f90e0704bed9..b25f107dafc7 100644
--- a/drivers/md/raid5.h
+++ b/drivers/md/raid5.h
@@ -472,7 +472,9 @@ struct disk_info {
   */
  #define NR_STRIPES        256
-#define STRIPE_SIZE        PAGE_SIZE
+#define CONFIG_STRIPE_SIZE    (CONFIG_MD_RAID456_STRIPE_SHIFT << 9)
+#define STRIPE_SIZE        \
+    (CONFIG_STRIPE_SIZE > PAGE_SIZE ? PAGE_SIZE : CONFIG_STRIPE_SIZE)

If I am not misunderstand, you need to s/9/12/ above.

Oh yeah, thanks a lot for catching this. Sorry for this obvious error.
It show be 12, then STRIPE_SIZE can be multiple of 4KB, as Liu Song suggested.

Thanks,
Yufen,



[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux