[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1ff24f1b-7ba2-4595-b3f6-3eb93ea5a40d@gmail.com>
Date: Thu, 14 Aug 2025 11:36:51 +0100
From: Usama Arif <usamaarif642@...il.com>
To: Lorenzo Stoakes <lorenzo.stoakes@...cle.com>,
David Hildenbrand <david@...hat.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>, linux-mm@...ck.org,
linux-fsdevel@...r.kernel.org, corbet@....net, rppt@...nel.org,
surenb@...gle.com, mhocko@...e.com, hannes@...xchg.org, baohua@...nel.org,
shakeel.butt@...ux.dev, riel@...riel.com, ziy@...dia.com,
laoar.shao@...il.com, dev.jain@....com, baolin.wang@...ux.alibaba.com,
npache@...hat.com, Liam.Howlett@...cle.com, ryan.roberts@....com,
vbabka@...e.cz, jannh@...gle.com, Arnd Bergmann <arnd@...db.de>,
sj@...nel.org, linux-kernel@...r.kernel.org, linux-doc@...r.kernel.org,
kernel-team@...a.com
Subject: Re: [PATCH v4 7/7] selftests: prctl: introduce tests for disabling
THPs except for madvise
On 13/08/2025 19:52, Lorenzo Stoakes wrote:
> On Wed, Aug 13, 2025 at 06:24:11PM +0200, David Hildenbrand wrote:
>>>> +
>>>> +FIXTURE_SETUP(prctl_thp_disable_except_madvise)
>>>> +{
>>>> + if (!thp_available())
>>>> + SKIP(return, "Transparent Hugepages not available\n");
>>>> +
>>>> + self->pmdsize = read_pmd_pagesize();
>>>> + if (!self->pmdsize)
>>>> + SKIP(return, "Unable to read PMD size\n");
>>>> +
>>>> + if (prctl(PR_SET_THP_DISABLE, 1, PR_THP_DISABLE_EXCEPT_ADVISED, NULL, NULL))
>>>> + SKIP(return, "Unable to set PR_THP_DISABLE_EXCEPT_ADVISED\n");
>>>
>>> This should be a test fail I think, as the only ways this could fail are
>>> invalid flags, or failure to obtain an mmap write lock.
>>
>> Running a kernel that does not support it?
>
> I can't see anything in the kernel to #ifdef it out so I suppose you mean
> running these tests on an older kernel?
>
It was a fail in my previous revision
(https://lore.kernel.org/all/9bcb1dee-314e-4366-9bad-88a47d516c79@redhat.com/)
I do believe people (including me :)) get the latest kernel selftest and run it on
older kernels.
It might not be the right way to run selftests, but I do think its done.
> But this is an unsupported way of running self-tests, they are tied to the
> kernel version in which they reside, and test that specific version.
>
> Unless I'm missing something here?
>
>>
>> We could check the errno to distinguish I guess.
>
> Which one? manpage says -EINVAL, but can also be due to incorrect invocation,
> which would mean a typo could mean tests pass but your tests do nothing :)
>
Yeah I dont think we can distinguish between the prctl not being available (i.e. older kernel)
and the prctl not working as it should.
We just need to decide whether to fail or skip.
If the right way is to always run selftests from the same kernel version as the host
on which its being run on, we can just fail? I can go back to the older version of
doing things and move the failure from FIXTURE_SETUP to TEST_F?
>>
>> --
>> Cheers,
>>
>> David / dhildenb
>>
Powered by blists - more mailing lists