On Tue, 8 Oct 2019 20:59:16 +0300 Alexey Dobriyan adobriyan@gmail.com wrote:
On Tue, Oct 08, 2019 at 12:10:26AM +0900, Masami Hiramatsu wrote:
Currently proc-self-map-files-002.c sets va_max (max test address of user virtual address) to 4GB, but it is too big for 32bit arch and 1UL << 32 is overflow on 32bit long.
Make va_max 3GB on 32bit arch like i386 and arm.
IIRC i386 had 1G/3G split, so 3GB would be too much still.
Hmm, would you know what is the best value for that? i386 can also be configured 3G/1G, 2G/2G and 1G/3G, so it depends on the build configuration. Would 1G is enough for test?
Thank you,
--- a/tools/testing/selftests/proc/proc-self-map-files-002.c +++ b/tools/testing/selftests/proc/proc-self-map-files-002.c
+#if __BITS_PER_LONG == 32 +# define VA_MAX (3UL << 30) +#elif __BITS_PER_LONG == 64 +# define VA_MAX (1UL << 32) +#else +# define VA_MAX 0 +#endif
int main(void) { const int PAGE_SIZE = sysconf(_SC_PAGESIZE);
- const unsigned long va_max = 1UL << 32;
- const unsigned long va_max = VA_MAX;
This limit doesn't need to be precise, 1GB is "big enough".