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]>

Reply via email to