Re: [BUG] seltests/iommu: runaway ./iommufd consuming 99% CPU after a failed assert()

From: Jason Gunthorpe
Date: Mon Mar 25 2024 - 12:10:13 EST


On Mon, Mar 25, 2024 at 12:17:28PM +0000, Joao Martins wrote:
> > However, I am not smart enough to figure out why ...
> >
> > Apparently, from the source, mmap() fails to allocate pages on the desired address:
> >
> >   1746         assert((uintptr_t)self->buffer % HUGEPAGE_SIZE == 0);
> >   1747         vrc = mmap(self->buffer, variant->buffer_size, PROT_READ |
> > PROT_WRITE,
> >   1748                    mmap_flags, -1, 0);
> > → 1749         assert(vrc == self->buffer);
> >   1750
> >
> > But I am not that deep into the source to figure our what was intended and what
> > went
> > wrong :-/
>
> I can SKIP() the test rather assert() in here if it helps. Though there are
> other tests that fail if no hugetlb pages are reserved.
>
> But I am not sure if this is problem here as the initial bug email had an
> enterily different set of failures? Maybe all you need is an assert() and it
> gets into this state?

I feel like there is something wrong with the kselftest framework,
there should be some way to fail the setup/teardown operations without
triggering an infinite loop :(

Jason