From: John Hubbard <jhubbard@nvidia.com>
To: David Hildenbrand <david@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
Jeff Xu <jeffxu@chromium.org>, Shuah Khan <shuah@kernel.org>
Cc: Andrei Vagin <avagin@google.com>,
Axel Rasmussen <axelrasmussen@google.com>,
Christian Brauner <brauner@kernel.org>,
Kees Cook <kees@kernel.org>,
Kent Overstreet <kent.overstreet@linux.dev>,
"Liam R . Howlett" <Liam.Howlett@oracle.com>,
Muhammad Usama Anjum <usama.anjum@collabora.com>,
Peter Xu <peterx@redhat.com>, Rich Felker <dalias@libc.org>,
<linux-mm@kvack.org>, <linux-kselftest@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 1/6] selftests/mm: mseal, self_elf: fix missing __NR_mseal
Date: Mon, 17 Jun 2024 18:52:15 -0700 [thread overview]
Message-ID: <766a0820-b62e-4b2d-be56-44ff479f962d@nvidia.com> (raw)
In-Reply-To: <984d4e18-5e85-4751-b101-8bc7c559f440@redhat.com>
On 6/17/24 11:11 AM, David Hildenbrand wrote:
> On 14.06.24 20:02, John Hubbard wrote:
>> On 6/14/24 5:41 AM, David Hildenbrand wrote:
>>> On 14.06.24 14:28, David Hildenbrand wrote:
>>>> On 14.06.24 04:30, John Hubbard wrote:
...
>>> ... thinking again, are some of these headers arch-specific (IOW,
>>> generating them per-arch would result in something slightly different)?
>>
>> Oh wow, yes they are. I'm guilty of x86-centric thinking (again).
>>
>> hmm, this is going to make it really a lot of trouble to do this
>> approach. But there's no point in turning back now, so I guess I'd
>> better fire up the cross-compilers and generate for all the arches.
>>
>
> Cross compilers might not be required.
>
> At least for me, at simple
>
> rm -rf usr/include
> export ARCH=s390
> make headers
> make headers_install
>
> Installed the proper s390 headers, and "usr/include/asm" would contain the s390 specifics.
Yes.
>
> Some scripting would be required to make this much easier to generate+wire up for all archs semi-automatically.
After exploring this, and eventually re-inventing the concept of asm-generic,
I now understand What To Do.
>>>
>>> In tools/include/uapi/asm-generic/unistd.h, we already do have
>>> __NR_mseal ...
>>
>> Yes, but it doesn't get used in selftests/mm, with the way headers are
>> set up right now.
>
> Right
>
...it turns out that the right answer is to simply include asm-generic/unistd.h.
That is the only way to safely use system call numbers across CPU architectures,
and we already have it. So the entire patch simplifies back down to two lines
of diff:
diff --git a/tools/testing/selftests/mm/mseal_test.c b/tools/testing/selftests/mm/mseal_test.c
index 41998cf1dcf5..58c888529f42 100644
--- a/tools/testing/selftests/mm/mseal_test.c
+++ b/tools/testing/selftests/mm/mseal_test.c
@@ -3,7 +3,7 @@
#include <linux/mman.h>
#include <sys/mman.h>
#include <stdint.h>
-#include <unistd.h>
+#include <asm-generic/unistd.h>
#include <string.h>
#include <sys/time.h>
#include <sys/resource.h>
diff --git a/tools/testing/selftests/mm/seal_elf.c b/tools/testing/selftests/mm/seal_elf.c
index f2babec79bb6..27bf2f84231d 100644
--- a/tools/testing/selftests/mm/seal_elf.c
+++ b/tools/testing/selftests/mm/seal_elf.c
@@ -2,7 +2,7 @@
#define _GNU_SOURCE
#include <sys/mman.h>
#include <stdint.h>
-#include <unistd.h>
+#include <asm-generic/unistd.h>
#include <string.h>
#include <sys/time.h>
#include <sys/resource.h>
Which is a little embarrassing, after all this churn, but it's not always
clear how these headers are meant to be used, at first. Now it's clear.
I think. :)
I'll post a v3 shortly
thanks,
--
John Hubbard
NVIDIA
next prev parent reply other threads:[~2024-06-18 1:52 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-14 2:30 [PATCH v2 0/6] cleanups, fixes, and progress towards avoiding "make headers" John Hubbard
2024-06-14 2:30 ` [PATCH v2 1/6] selftests/mm: mseal, self_elf: fix missing __NR_mseal John Hubbard
2024-06-14 12:28 ` David Hildenbrand
2024-06-14 12:41 ` David Hildenbrand
2024-06-14 18:02 ` John Hubbard
2024-06-17 18:11 ` David Hildenbrand
2024-06-18 1:52 ` John Hubbard [this message]
2024-06-14 2:30 ` [PATCH v2 2/6] selftests/mm: mseal, self_elf: factor out test macros and other duplicated items John Hubbard
2024-06-14 12:28 ` David Hildenbrand
2024-06-14 14:56 ` Jeff Xu
2024-06-14 2:30 ` [PATCH v2 3/6] selftests/mm: mseal, self_elf: rename TEST_END_CHECK to REPORT_TEST_PASS John Hubbard
2024-06-14 12:29 ` David Hildenbrand
2024-06-14 2:30 ` [PATCH v2 4/6] selftests/mm: fix vm_util.c build failures: add snapshot of fs.h John Hubbard
2024-06-14 12:29 ` David Hildenbrand
2024-06-14 2:30 ` [PATCH v2 5/6] selftests/mm: kvm, mdwe fixes to avoid requiring "make headers" John Hubbard
2024-06-14 12:31 ` David Hildenbrand
2024-06-15 0:09 ` John Hubbard
2024-06-14 2:30 ` [PATCH v2 6/6] selftests/mm: remove local __NR_* definitions John Hubbard
2024-06-14 12:32 ` David Hildenbrand
2025-02-12 20:34 ` Dave Hansen
2025-02-12 22:31 ` John Hubbard
2025-02-13 11:32 ` Li Wang
2025-02-13 20:47 ` John Hubbard
2025-02-13 8:04 ` John Hubbard
2025-02-13 15:00 ` Dave Hansen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=766a0820-b62e-4b2d-be56-44ff479f962d@nvidia.com \
--to=jhubbard@nvidia.com \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=avagin@google.com \
--cc=axelrasmussen@google.com \
--cc=brauner@kernel.org \
--cc=dalias@libc.org \
--cc=david@redhat.com \
--cc=jeffxu@chromium.org \
--cc=kees@kernel.org \
--cc=kent.overstreet@linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=peterx@redhat.com \
--cc=shuah@kernel.org \
--cc=usama.anjum@collabora.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox