On 11/20/24 2:57 AM, Cedric Blancher wrote:
On Tue, 19 Nov 2024 at 18:07, Steve Dickson <steved@xxxxxxxxxx> wrote:
From: Seiichi Ikarashi <s.ikarashi@xxxxxxxxxxx>
The rsize/wsize values are not multiples of 1024 but multiples of the
system's page size or powers of 2 if < system's page size as defined
in fs/nfs/internal.h:nfs_io_size().
Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
REJECT.
You mean NACK! :-)
As discussed, this is the WRONG approach. The pagesize is not
not easily determinable (/bin/pagesize not even being part of the
default install), and the page size is flexible on many architectures.
Yes... /bin/pagesize is not needed only getconf PAGESIZE is which
is in all default installs.
rsize/wsize depending on the page size makes this option non portable
across platforms, or even same platforms with different default
pagesize settings.
"rsize/wsize depending on the page size" is a kernel thing...
Nothing nfs-utils can do about it but accurately document
what is happening.
In real life, this can prevent puppet from working for NFS root, if
NFS root needs rsize/wsize, and someone switches the default page
size.
Why is puppet evening messing with rsize/wsize? Just let the
kernel do the right thing...
I thought the correct fix would be to fix the NFS client to count in
kbytes as documented, and round up/down to the pagesize.
Again this is a kernel thing... Patches are welcomed!
steved.
Ced
---
utils/mount/nfs.man | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
V2: Replaced PAGE_SIZE with "system's page size"
diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man
index 233a7177..eab4692a 100644
--- a/utils/mount/nfs.man
+++ b/utils/mount/nfs.man
@@ -215,15 +215,18 @@ or smaller than the
setting. The largest read payload supported by the Linux NFS client
is 1,048,576 bytes (one megabyte).
.IP
-The
+The allowed
.B rsize
-value is a positive integral multiple of 1024.
+value is a positive integral multiple of
+system's page size
+or a power of two if it is less than
+system's page size.
Specified
.B rsize
values lower than 1024 are replaced with 4096; values larger than
1048576 are replaced with 1048576. If a specified value is within the supported
-range but not a multiple of 1024, it is rounded down to the nearest
-multiple of 1024.
+range but not such an allowed value, it is rounded down to the nearest
+allowed value.
.IP
If an
.B rsize
@@ -257,16 +260,19 @@ setting. The largest write payload supported by the Linux NFS client
is 1,048,576 bytes (one megabyte).
.IP
Similar to
-.B rsize
-, the
+.BR rsize ,
+the allowed
.B wsize
-value is a positive integral multiple of 1024.
+value is a positive integral multiple of
+system's page size
+or a power of two if it is less than
+system's page size.
Specified
.B wsize
values lower than 1024 are replaced with 4096; values larger than
1048576 are replaced with 1048576. If a specified value is within the supported
-range but not a multiple of 1024, it is rounded down to the nearest
-multiple of 1024.
+range but not such an allowed value, it is rounded down to the nearest
+allowed value.
.IP
If a
.B wsize
--
2.47.0