Hi Corinna, On Tue, 25 Nov 2025 15:50:56 +0100 Corinna Vinschen wrote: > On Nov 25 12:31, Corinna Vinschen wrote: > > A short addendum: > > > > On Nov 25 11:38, Corinna Vinschen wrote: > > > That means: > > > > > > - i_all_lf as array incures extra cost only at fork/execve time by > > > having to copy additional 64K over to the child process. > > > > If we count the cygheap copy here, we also have to count the > > mallocs in the other two cases... > > > > > > - i_all_lf as malloced pointer in inode_t incures extra cost once > > > per created inode (malloc), once per execve (malloc), once per > > > deleted inode (free). > > > > Plus an extra 64K user heap copy at fork(2) time. > > > > > - i_all_lf as local variable incures extra cost once per thread > > > (malloc), per process, under ideal conditions. > > > > Plus an extra 64K user heap copy at fork(2) time. > > I just had a bit of time so I prepared a v4. Can you please check if > this is ok?
Thanks! Looks good to me. I also confirmed the original test case from Nahor works fine with this patch. In addition, stress-ng --flock 20 -t 10 and stress-ng --lockf 20 -t 10 pass. -- Takashi Yano <[email protected]>
