linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
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 v3 1/6] selftests/mm: mseal, self_elf: fix missing __NR_mseal
Date: Tue, 18 Jun 2024 13:14:05 -0700	[thread overview]
Message-ID: <9d08f768-b9da-4a44-9d75-a16d6cde6b66@nvidia.com> (raw)
In-Reply-To: <0b152bea-ccb6-403e-9c57-08ed5e828135@redhat.com>

On 6/17/24 11:56 PM, David Hildenbrand wrote:
> On 18.06.24 04:24, John Hubbard wrote:
...
>> 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>
> 
> Still confused. Let's take a look at "microblaze".
> 
> arch/microblaze/include/asm/unistd.h
>   -> #include <uapi/asm/unistd.h>
> 
> arch/microblaze/include/uapi/asm/unistd.h
>   -> #include <asm/unistd_32.h>
>    -> Generated during "make headers"
> 
> usr/include/asm/unistd_32.h is generated via
> arch/microblaze/kernel/syscalls/Makefile with the syshdr command.
> 
> So we never end up including asm-generic/unistd.h directly on microblaze, but rather converts it (IIUC) to something else.
>

Yes.
  
> That will work as expected here?
> 

No. :)

The problem, and the source of confusion here, is that for most user
space programs, the header file inclusion behaves as you've mentioned
above. However, those programs are installed on a single computer that
has a single set of asm and kernel headers installed.

We are quite special here, because we are building a set of user space
programs that:

     a) Mostly avoids using the installed (distro) system header files.

     b) Must build (and run) on all supported CPU architectures

     c) Must occasionally use symbols that have so new that they have not
        yet been included in the distro's header files.

Doing (a) creates a new problem: how to get a set of cross-platform
headers that works in all cases.

Fortunately, asm-generic headers solve that one. Which is why we need to
use them here.

The reason this hasn't really come up yet, is that until now, the
kselftests requirement (which I'm trying to remove) was that "make
headers" must first be run. That allowed the selftests to get a snapshot
of sufficiently new header files that looked just like (and conflict
with) the installed system headers.

I can update the commit description with some of the above, if it helps.

thanks,
-- 
John Hubbard
NVIDIA



  reply	other threads:[~2024-06-18 20:14 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-18  2:24 [PATCH v3 0/6] cleanups, fixes, and progress towards avoiding "make headers" John Hubbard
2024-06-18  2:24 ` [PATCH v3 1/6] selftests/mm: mseal, self_elf: fix missing __NR_mseal John Hubbard
2024-06-18  6:56   ` David Hildenbrand
2024-06-18 20:14     ` John Hubbard [this message]
2024-06-18 20:54       ` David Hildenbrand
2024-06-18 21:29         ` John Hubbard
2024-06-18 21:53           ` Andrew Morton
2024-06-18 21:54             ` John Hubbard
2024-06-18 22:04           ` David Hildenbrand
2024-06-18  2:24 ` [PATCH v3 2/6] selftests/mm: mseal, self_elf: factor out test macros and other duplicated items John Hubbard
2024-06-18 20:17   ` John Hubbard
2024-06-18  2:24 ` [PATCH v3 3/6] selftests/mm: mseal, self_elf: rename TEST_END_CHECK to REPORT_TEST_PASS John Hubbard
2024-06-18  2:24 ` [PATCH v3 4/6] selftests/mm: fix vm_util.c build failures: add snapshot of fs.h John Hubbard
2024-06-18  2:24 ` [PATCH v3 5/6] selftests/mm: kvm, mdwe fixes to avoid requiring "make headers" John Hubbard
2024-06-18  7:31   ` David Hildenbrand
2024-06-18  2:24 ` [PATCH v3 6/6] selftests/mm: remove local __NR_* definitions John Hubbard

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=9d08f768-b9da-4a44-9d75-a16d6cde6b66@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