Re: [PATCH] read-cache: make the index write buffer size 128K
- From
- Neeraj Singh <nksingh85@gmail.com>
- Date
- Feb 25, 2021, 07:36 UTC
- Message-ID
- <CANQDOdd+keN3LyC4CHWDZ3JHYurEy_FLyw5GT5UKqg0RcTA+DA@mail.gmail.com>
- In-Reply-To
- <xmqqeeh4wrad.fsf@gitster.g>
On Wed, Feb 24, 2021 at 11:16 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 18 quoted lines
> > Chris Torek <chris.torek@gmail.com> 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... >
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