public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc/ibm/2.32/master] linux: Remove shmmax check from tst-sysvshm-linux
@ 2022-01-14 22:01 Raoni Fassina Firmino
0 siblings, 0 replies; only message in thread
From: Raoni Fassina Firmino @ 2022-01-14 22:01 UTC (permalink / raw)
To: glibc-cvs
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=182ffd8e757aa44e2b8136cfc0995b04c2a4b654
commit 182ffd8e757aa44e2b8136cfc0995b04c2a4b654
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue Feb 2 09:55:50 2021 -0300
linux: Remove shmmax check from tst-sysvshm-linux
The shmmax expected value is tricky to check because kernel clamps it
to INT_MAX in two cases:
1. Compat symbols with IPC_64, i.e, 32-bit binaries running on 64-bit
kernels.
2. Default symbol without IPC_64 (defined as IPC_OLD within Linux) and
glibc always use IPC_64 for 32-bit ABIs (to support 64-bit time_t).
It means that 32-bit binaries running on 32-bit kernels will not see
shmmax being clamped.
And finding out whether the compat symbol is used would require checking
the underlying kernel against the current ABI. The shmall and shmmni
already provided enough coverage.
Checked on x86_64-linux-gnu and i686-linux-gnu. It should fix the
tst-sysvshm-linux failures on 32-bit kernels.
(cherry picked from commit 913201078502ad3f10043db02a8efce5d75387c2)
Diff:
---
sysdeps/unix/sysv/linux/tst-sysvshm-linux.c | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/sysdeps/unix/sysv/linux/tst-sysvshm-linux.c b/sysdeps/unix/sysv/linux/tst-sysvshm-linux.c
index cb32bd522e..bb154592a6 100644
--- a/sysdeps/unix/sysv/linux/tst-sysvshm-linux.c
+++ b/sysdeps/unix/sysv/linux/tst-sysvshm-linux.c
@@ -122,18 +122,21 @@ do_test (void)
if (shmid == -1)
FAIL_EXIT1 ("shmget failed: %m");
+ /* It does not check shmmax because kernel clamp its value to INT_MAX for:
+
+ 1. Compat symbols with IPC_64, i.e, 32-bit binaries running on 64-bit
+ kernels.
+
+ 2. Default symbol without IPC_64 (defined as IPC_OLD within Linux) and
+ glibc always use IPC_64 for 32-bit ABIs (to support 64-bit time_t).
+ It means that 32-bit binaries running on 32-bit kernels will not see
+ shmmax being clamped.
+
+ And finding out whether the compat symbol is used would require checking
+ the underlying kernel against the current ABI. The shmall and shmmni
+ already provided enough coverage. */
+
struct test_shminfo tipcinfo;
- {
- uint64_t v = read_proc_file ("/proc/sys/kernel/shmmax");
-#if LONG_MAX == INT_MAX
- /* Kernel explicit clamp the value for shmmax on compat symbol (32-bit
- binaries running on 64-bit kernels). */
- if (sizeof (__syscall_ulong_t) == sizeof (unsigned long int)
- && v > INT_MAX)
- v = INT_MAX;
-#endif
- tipcinfo.shmmax = v;
- }
tipcinfo.shmall = read_proc_file ("/proc/sys/kernel/shmall");
tipcinfo.shmmni = read_proc_file ("/proc/sys/kernel/shmmni");
@@ -152,7 +155,6 @@ do_test (void)
FAIL_EXIT1 ("shmctl with IPC_INFO failed: %m");
TEST_COMPARE (ipcinfo.shmall, tipcinfo.shmall);
- TEST_COMPARE (ipcinfo.shmmax, tipcinfo.shmmax);
TEST_COMPARE (ipcinfo.shmmni, tipcinfo.shmmni);
}
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-01-14 22:01 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-14 22:01 [glibc/ibm/2.32/master] linux: Remove shmmax check from tst-sysvshm-linux Raoni Fassina Firmino
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).