Message ID | 20221109110621.1791999-1-punit.agrawal@bytedance.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | selftests: proc: Fix proc-empty-vm build error on non x86_64 | expand |
On Wed, Nov 09, 2022 at 11:06:21AM +0000, Punit Agrawal wrote: > The proc-empty-vm test is implemented for x86_64 and fails to build > for other architectures. Rather then emitting a compiler error it > would be preferable to only build the test on supported architectures. Ehh, can you just port it to whatever arch you're using? What's the address space on arm/arm64? #ifdef __amd64__ munmap(NULL, ((size_t)1 << 47) - 4096); #else #error "implement 'unmap everything'" #endif This program is almost arch-independent. > +TEST_GEN_PROGS_x86_64 += proc-empty-vm
Alexey Dobriyan <adobriyan@gmail.com> writes: > On Wed, Nov 09, 2022 at 11:06:21AM +0000, Punit Agrawal wrote: >> The proc-empty-vm test is implemented for x86_64 and fails to build >> for other architectures. Rather then emitting a compiler error it >> would be preferable to only build the test on supported architectures. > > Ehh, can you just port it to whatever arch you're using? > What's the address space on arm/arm64? On arm64, it is 0x0000ffffffffffff ((1 << 48) - 1) when using 48bit VA, but goes up when using 52-bit VA[0]. > #ifdef __amd64__ > munmap(NULL, ((size_t)1 << 47) - 4096); > #else > #error "implement 'unmap everything'" > #endif > > This program is almost arch-independent. I did try updating the #ifdef but then hit the asm block in vsyscall(). Also, the test would be still fail to build on other architectures. While support for architectures is added, it would be good to not have the compiler throw an error on unsuspecting kselftest users. >> +TEST_GEN_PROGS_x86_64 += proc-empty-vm [0] https://docs.kernel.org/arm64/memory.html
Punit Agrawal <punit.agrawal@bytedance.com> writes: > The proc-empty-vm test is implemented for x86_64 and fails to build > for other architectures. Rather then emitting a compiler error it > would be preferable to only build the test on supported architectures. > > Mark proc-empty-vm as a test for x86_64 and customise to the Makefile > to build it only when building for this target architecture. > > Fixes: 5bc73bb3451b ("proc: test how it holds up with mapping'less process") > Signed-off-by: Punit Agrawal <punit.agrawal@bytedance.com> > --- > tools/testing/selftests/proc/Makefile | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/tools/testing/selftests/proc/Makefile b/tools/testing/selftests/proc/Makefile > index cd95369254c0..6b31439902af 100644 > --- a/tools/testing/selftests/proc/Makefile > +++ b/tools/testing/selftests/proc/Makefile > @@ -1,14 +1,18 @@ > # SPDX-License-Identifier: GPL-2.0-only > + > +# When ARCH not overridden for crosscompiling, lookup machine > +ARCH ?= $(shell uname -m 2>/dev/null || echo not) > + > CFLAGS += -Wall -O2 -Wno-unused-function > CFLAGS += -D_GNU_SOURCE > LDFLAGS += -pthread > > -TEST_GEN_PROGS := > +TEST_GEN_PROGS_x86_64 += proc-empty-vm > + > TEST_GEN_PROGS += fd-001-lookup > TEST_GEN_PROGS += fd-002-posix-eq > TEST_GEN_PROGS += fd-003-kthread > TEST_GEN_PROGS += proc-loadavg-001 > -TEST_GEN_PROGS += proc-empty-vm > TEST_GEN_PROGS += proc-pid-vm > TEST_GEN_PROGS += proc-self-map-files-001 > TEST_GEN_PROGS += proc-self-map-files-002 I noticed that a hunk has gone missing from the patch. Please ignore this version - I'll post an updated one shortly.
diff --git a/tools/testing/selftests/proc/Makefile b/tools/testing/selftests/proc/Makefile index cd95369254c0..6b31439902af 100644 --- a/tools/testing/selftests/proc/Makefile +++ b/tools/testing/selftests/proc/Makefile @@ -1,14 +1,18 @@ # SPDX-License-Identifier: GPL-2.0-only + +# When ARCH not overridden for crosscompiling, lookup machine +ARCH ?= $(shell uname -m 2>/dev/null || echo not) + CFLAGS += -Wall -O2 -Wno-unused-function CFLAGS += -D_GNU_SOURCE LDFLAGS += -pthread -TEST_GEN_PROGS := +TEST_GEN_PROGS_x86_64 += proc-empty-vm + TEST_GEN_PROGS += fd-001-lookup TEST_GEN_PROGS += fd-002-posix-eq TEST_GEN_PROGS += fd-003-kthread TEST_GEN_PROGS += proc-loadavg-001 -TEST_GEN_PROGS += proc-empty-vm TEST_GEN_PROGS += proc-pid-vm TEST_GEN_PROGS += proc-self-map-files-001 TEST_GEN_PROGS += proc-self-map-files-002
The proc-empty-vm test is implemented for x86_64 and fails to build for other architectures. Rather then emitting a compiler error it would be preferable to only build the test on supported architectures. Mark proc-empty-vm as a test for x86_64 and customise to the Makefile to build it only when building for this target architecture. Fixes: 5bc73bb3451b ("proc: test how it holds up with mapping'less process") Signed-off-by: Punit Agrawal <punit.agrawal@bytedance.com> --- tools/testing/selftests/proc/Makefile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)