On Mon, Aug 10, 2020 at 10:48 AM David Howells <dhowells@xxxxxxxxxx> wrote: > > Steve French <smfrench@xxxxxxxxx> wrote: > > > cifs.ko also can set rsize quite small (even 1K for example, although > > that will be more than 10x slower than the default 4MB so hopefully no > > one is crazy enough to do that). > > You can set rsize < PAGE_SIZE? I have never seen anyone do it and it would be crazy to set it so small (would hurt performance a lot and cause extra work on client and server) but yes it can be set very small. Apparently NFS can also set rsize to 1K as well (see https://linux.die.net/man/5/nfs) I don't mind adding a minimum rsize check for cifs.ko (preventing a user from setting rsize below page size for example) if there is a precedent for this in other fs or bug that it would cause. In general my informal perf measurements showed slight advantages to all servers with larger rsizes up to 4MB (thus cifs client will negotiate 4MB by default even if server supports larger), but overriding rsize (larger) on mount by having the user setting rsize to 8MB on mount could help perf to some servers. I am hoping we can figure out a way to automatically determine when to negotiate rsize larger than 4MB but in the meantime rsize will almost always be 4MB (or 1MB on mounts to some older servers) for cifs but some users will benefit slightly from manually setting it to 8MB. > > I can't imagine an SMB3 server negotiating an rsize or wsize smaller than > > 64K in today's world (and typical is 1MB to 8MB) but the user can specify a > > much smaller rsize on mount. If 64K is an adequate minimum, we could change > > the cifs mount option parsing to require a certain minimum rsize if fscache > > is selected. > > I've borrowed the 256K granule size used by various AFS implementations for > the moment. A 512-byte xattr can thus hold a bitmap covering 1G of file > space. > > David > -- Thanks, Steve