On Thu, Aug 22, 2019 at 5:45 PM Ryota Ozaki <ozak...@netbsd.org> wrote: > > On Tue, Aug 20, 2019 at 7:06 PM Ryota Ozaki <ozak...@netbsd.org> wrote: > > > > On Tue, Aug 20, 2019 at 6:58 PM Martin Husemann <mar...@duskware.de> wrote: > > > > > > On Tue, Aug 20, 2019 at 06:50:31PM +0900, Ryota Ozaki wrote: > > > > Hmm, okay, I'm going to disable the feature until the issue is > > > > addressed. > > > > > > Could it be page size related? > > > > I'm not sure. > > > > My fresh chroot environment for ATF tests on amd64 also fails so > > I guess I'm missing something important :-/ > > It seems that the official AFT tests work expectedly except for > evbarm-aarch64. The leak checker uses vmstat -m with rumphijack > to get pool statistics from a rump kernel, however, for failed > cases, rumphijack doesn't work correctly and it gets pool statistics > of the host kernel, resulting in test failures.
I understood why vmstat with rumphijack doesn't work. Because vmstat has the sgid bit and it prevents rumphijack, i.e., LD_PRELOAD from working. (Thanks hikaru@ for the suggestion!) A workaround for the issue is: cp /usr/bin/vmstat ./vmstat $HIJACKING ./vmstat rm -f ./vmstat It's awkward but it's reasonable for now. A proper fix would be to stop using kvm(3) for vmstat and drop the sgid bit from the binary. > > I don't understand yet why rumphijack doesn't work for vmstat -m > in some cases and does work in other cases. I guess on most anita environments leak checks pass just in luck because the environment normally doesn't communicate with outside and there are no L2 caches. OTOH on baremetal environments there can be active L2 caches, which makes the leak checks fail. ozaki-r