[LU-14912] client picking other checksum type over T10PI Created: 05/Aug/21  Updated: 17/May/22  Resolved: 25/Aug/21

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: Lustre 2.15.0

Type: Improvement Priority: Minor
Reporter: Dongyang Li Assignee: Dongyang Li
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Related
is related to LU-14924 LustreError: 133-1: nbp17-OST0064-osc... Resolved
is related to LU-10472 Data Integrity(T10PI) support for Lustre Resolved
is related to LU-14895 dump T10 guard tags on checksum error... Open
is related to LU-11011 checksum type can not be selected per... Resolved
Rank (Obsolete): 9223372036854775807

 Description   

When server indicates it supports T10 checksums, the client could still pick other check types over T10PI as the other types getting better numbers during client benchmark.



 Comments   
Comment by Andreas Dilger [ 08/Aug/21 ]

T10-PI checksums were only added in 2.12, so I don't think it is reasonable for the server to return only a single t10crc4K checksum type, because this would break interoperability for 2.10.x clients.

One option for selecting the proper T10-PI checksum type automatically on the client, is to detect if only a single OBD_CKSUM_T10* type is returned to the client, then this indicates the server has T10-PI enabled (otherwise it would return multiple OBD_CKSUM_T10* types), and it should prefer this over other checksum types.

For example, on my test VM (no T10-PI support in the storage) it reports multiple t10* checksum types enabled:

# lctl get_param osc.*.checksum_type
osc.testfs-OST0000-osc-ffff9ac928b3d800.checksum_type=
crc32 adler crc32c t10ip512 [t10ip4K] t10crc512 t10crc4K 

while on a client where T10-PI hardware support is enabled on the server the client reports:

# lctl get_param osc.*.checksum_type
osc.testfs-OST0000-osc-ffff9ac928b3d800.checksum_type=
crc32 adler [crc32c] t10crc4K

In this case, the client should prefer the single t10crc4K checksum type (if no type was specified) that matches the server hardware checksum type, even though crc32c may be somewhat faster.

Comment by Gerrit Updater [ 13/Aug/21 ]

"Li Dongyang <dongyangli@ddn.com>" uploaded a new patch: https://review.whamcloud.com/44657
Subject: LU-14912 obdclass: prefer T10 checksum if the target supports it
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 0c6d2cf5b4cc449253965cbd527e6a2f6ef0ee3e

Comment by Gerrit Updater [ 25/Aug/21 ]

"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/44657/
Subject: LU-14912 obdclass: prefer T10 checksum if the target supports it
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 5e9059e08aec6fb36de6788465978de0e962b956

Comment by Peter Jones [ 25/Aug/21 ]

Landed for 2.15

Generated at Sat Feb 10 03:13:50 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.