I'm using Linux 32bit v4.1.8 on PowerPC p4080DS CPU and external GPU.
Until now with "regular" (some pre-defined settings and device tree) I managed to create a shared memory region between the CPU and GPU. For some reasons I changed the Linux kernel start address from 0xc0000000
to 0x80000000
and increased lowmemsize from 0x30000000
to 0x60000000 (page_offset = 0x80000000 , user task_size = 0x80000000 , lowmemsize = 0x60000000)
and now the mmap failes returning MAP_FAILED
.
The device tree contains the same information (physical address and length) of the GPU and shared memory areas as before - I didn't change it.
Is there any reason for the mmap to fail following the kernel virtual address relocation?
The answer is that I didn't leave enough virtual space as the process require. The mmap failed because the process run out of virtual memory regardless the kernel's relocation.
User contributions licensed under CC BY-SA 3.0