[RFC PATCH v9 0/8] [PIDNS] Final

Dmitry V. Levin ldv at altlinux.org
Wed Aug 19 15:55:24 UTC 2020


On Wed, Aug 19, 2020 at 05:45:48PM +0200, Ákos Uzonyi wrote:
> On Wed, 19 Aug 2020 at 17:26, Dmitry V. Levin <ldv at altlinux.org> wrote:
> > On Wed, Aug 19, 2020 at 02:00:24AM +0300, Dmitry V. Levin wrote:
> > > On Wed, Aug 19, 2020 at 12:37:14AM +0200, Ákos Uzonyi wrote:
> > > > On Tue, 18 Aug 2020 at 01:38, Dmitry V. Levin <ldv at altlinux.org> wrote:
> > > > > On Mon, Aug 17, 2020 at 12:18:43AM +0200, Ákos Uzonyi wrote:
> > > > > > Also, pidns-cache fails on one arm build. I tried to increase the time
> > > > > > available for translation, but it didn't help.
> > > > >
> > > > > Could you add some diagnostics to the test, e.g. how much time did it take
> > > > > in the first and in the second case?  This way we could see what's going
> > > > > on.
> > > >
> > > > Here are the results:
> > > > (no translation | translation with cache | translation without cache)
> > > >
> > > > the 3 arm builds:
> > > > 17846us   76435us   3676880us
> > > > 141378us  496301us  3379754us
> > > > 8699us    134754us  2974909us
> > > >
> > > > on my system:
> > > > 948us     9358us    916094us
> > >
> > > I wonder why the cached translation takes that long on your system:
> > > 9358 / 948 ≈ 10
> 
> Note that cached translation still requires a few syscalls, as we have
> to check if cache is still valid.

What a pity! :)

> > > Would it make sense to increase SYSCALL_COUNT so that cache effect would
> > > become more visible compared to the translation without cache?
> 
> Using 1000 for SYSCALL_COUNT:
> arm:
> 113807us 613880us
> 66353us 274007us
> 71271us 146847us
> my system:
> 23076us 53473us
> s390x:
> 10762us 42090us
> 
> These numbers seem less chaotic now :).
> 
> Maybe we could try using 20 as the maximum ratio (it could be less,
> but I think it's better to have some false negatives, than false
> positives). What do you think?

Yes, I agree, let's try using 20.

> > Also, if the first syscall takes more time to complete because it's not
> > cached yet, would it help if it was excluded from the time measurement?
> 
> It's already done:
> 
> static long
> execute_syscalls(void)
> {
> /* Load our PID in the cache */
> syscall(__NR_getpid);

Indeed.


-- 
ldv


More information about the Strace-devel mailing list