[LTP] [PATCH 2/2] mm: enlarge mmap HIGH_ADDR value for s390 arch
Li Wang
liwang@redhat.com
Fri Nov 10 04:18:46 CET 2017
On Wed, Nov 8, 2017 at 4:13 PM, Jan Stancek <jstancek@redhat.com> wrote:
>
>
> ----- Original Message -----
>> The kernel commit 1aea9b3f92 (s390/mm: implement 5 level pages tables)
>> enlarge the maximum address in the tasks address space from (1UL << 53)
>> to (-PAGE_SIZE) on s390 platform.
>>
>> We have to increase the HIGH_ADDR in ltp testcases accordingly otherwise
>> that would be failed with succeeded mmap into high region:
>>
>> mmap15.c:
>> mmap15 1 TFAIL : mmap15.c:77: mmap into high region succeeded
>> unexpectedly
>>
>> mmapstress03.c:
>> mmapstress03: errno = 25: really large mmap didn't fail
>> mmapstress03 0 TINFO : uname.machine=s390x kernel is 32bit
>
> Isn't this the problem? ^^
No, It is an misinformation (for s390 platform) from LTP
tst_kernel_bits() function.
====
# uname -r
3.10.0-514.el7.s390x
# readelf -h mmapstress03
ELF Header:
Magic: 7f 45 4c 46 02 02 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, big endian
Version: 1 (current)
...
# ./mmapstress03
mmapstress03 0 TINFO : uname.machine=s390x kernel is 32bit
mmapstress03 1 TPASS : Test passed
I'd suggest to fix this as:
$ git diff
diff --git a/lib/tst_kernel.c b/lib/tst_kernel.c
index fd648b1..6d6fd38 100644
--- a/lib/tst_kernel.c
+++ b/lib/tst_kernel.c
@@ -35,7 +35,8 @@ int tst_kernel_bits(void)
* ARM64 (aarch64) defines 32-bit compatibility modes as
* armv8l and armv8b (little and big endian).
*/
- if (!strcmp(buf.machine, "armv8l") || !strcmp(buf.machine, "armv8b"))
+ if (!strcmp(buf.machine, "armv8l") || !strcmp(buf.machine, "armv8b")
+ || !strcmp(buf.machine, "s390x"))
kernel_bits = 64;
tst_resm(TINFO, "uname.machine=%s kernel is %ibit",
--
Li Wang
liwang@redhat.com
More information about the ltp
mailing list