Re: [PATCH] read-cache: make the index write buffer size 128K

3 messages, 3 authors, 2021-02-25 · open the first message on its own page

Re: [PATCH] read-cache: make the index write buffer size 128K

From: Junio C Hamano <hidden>
Date: 2021-02-25 07:18:10

Chris Torek [off-list ref] writes:
Linux/BSD/etc `stat` system calls report st_blksize values to tell
user code the optimal size for read and write calls.  Does Windows
have one?  (It's not POSIX but is XSI.)

(How *well* the OS reports `st_blksize` is another question
entirely, but at least if the report says, say, 128k, and that's
wrong, that's no longer Git's fault. :-) )
...
128K is correct for ZFS; 64K is typically correct for UFS2; 8K is
the old UFS1 size.  Anything under that has been too small for
a long time. :-)
That's rather tempting.  After opening a locked index to write
things out, the value is a single fstat() away...

Re: [PATCH] read-cache: make the index write buffer size 128K

From: Neeraj Singh <hidden>
Date: 2021-02-25 07:46:14

On Wed, Feb 24, 2021 at 11:16 PM Junio C Hamano [off-list ref] wrote:
Chris Torek [off-list ref] writes:
quoted
Linux/BSD/etc `stat` system calls report st_blksize values to tell
user code the optimal size for read and write calls.  Does Windows
have one?  (It's not POSIX but is XSI.)

(How *well* the OS reports `st_blksize` is another question
entirely, but at least if the report says, say, 128k, and that's
wrong, that's no longer Git's fault. :-) )
...
128K is correct for ZFS; 64K is typically correct for UFS2; 8K is
the old UFS1 size.  Anything under that has been too small for
a long time. :-)
That's rather tempting.  After opening a locked index to write
things out, the value is a single fstat() away...
From a quick perusal of freebsd, st_blksize seems to be the system
PAGE_SIZE by default (4k most of the time, I assume). The Windows
equivalent of this value is really tuned to what you want to send down
when bypassing the cache (to avoid partial cluster/stripe writes).

https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_stat.h.html
doesn't elicit much confidence. The units of st_blksize aren't even
defined.

Thanks,
Neeraj

Re: [PATCH] read-cache: make the index write buffer size 128K

From: Chris Torek <hidden>
Date: 2021-02-25 07:58:35

On Wed, Feb 24, 2021 at 11:36 PM Neeraj Singh [off-list ref] wrote:
From a quick perusal of freebsd, st_blksize seems to be the system
PAGE_SIZE by default (4k most of the time, I assume). The Windows
equivalent of this value is really tuned to what you want to send down
when bypassing the cache (to avoid partial cluster/stripe writes).
It's page-size for pipes, sockets, etc., but for real files, it's based on
a report from the underlying file system.  It's actually 8k on a typical
ancient UFS file system, 64K on UFS2, and 128K on ZFS, on FreeBSD.

https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_stat.h.html
doesn't elicit much confidence. The units of st_blksize aren't even
defined.
Despite POSIX's rather obstreperous definition of st_blksize, the
units are actually just bytes, in practice.

Chris
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help