Details
-
Improvement
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
3
-
9223372036854775807
Description
It would be useful to add a new "{osc,mdc}.*.max_mb_per_rpc" tunable parameter to dissociate the RPC size from the client page size as implied by "{osc,mdc}.*.max_pages_per_rpc". While it is already to specify "max_pages_per_rpc" with a unit like "4M" or "16M" to avoid issues with page sizes, this is still printed as a number of pages, and values without units are assumed to be pages. It would be better to have a dedicated parameter for specifying the RPC size, and (very) slowly deprecate max_pages_per_rpc in the future.
The max_mb_per_rpc parameter should internally convert the specified parameter to pages and still modify the same cl_max_pages_per_rpc variable, in addition to the existing max_pages_per_rpc parameter, but will provide a more consistent userspace interface for doing so.
The parameter should accept units and fractional parameters (e.g. 0.5M and 64k), which is already handled by sysfs_memparse(), so that it is possible to specify RPC sizes smaller than 1MiB in the rare case this is needed.
It looks like the default obdfilter.*.brw_size=1 for ZFS since patch https://review.whamcloud.com/30757 ("
LU-10463osd-zfs: use 1MB RPC size by default"), so this is "working as expected".It is probably sufficient to test this only with ldiskfs (which runs for every patch), and just skip the part that is setting max_mb_per_rpc > 20 if $(import_param $tgt max_brw_size) < 4194304.