On Wed, 23 Oct 2019 10:56:18 +0900 Masami Hiramatsu mhiramat@kernel.org wrote:
On Mon, 21 Oct 2019 20:30:53 +0300 Alexey Dobriyan adobriyan@gmail.com wrote:
On Mon, Oct 21, 2019 at 05:28:09PM +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 1GB on 32bit arch like i386 and arm.
+#if __BITS_PER_LONG == 32 +# define VA_MAX (1UL << 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;
No, just make it like 1MB unconditionally.
Ah, I sse. BTW, would you mean 1GB?
I understand that 1MB will be good enough, since vm.mmap_min_addr is 64KB by default (except for arm/arm64 which is 32KB). OK, I'll update and resend.
Thank you,
This is not intended to cover all address space, just large enough part (larger than reasonable vm.mmap_min_addr)
Then, should we better to check the /proc/sys/vm/mmap_min_addr?
Thank you,
-- Masami Hiramatsu mhiramat@kernel.org