On Tue, Mar 13, 2018 at 06:29:40AM -0700, Matthew Wilcox wrote:
On Mon, Mar 12, 2018 at 11:14:47PM -0700, John Hubbard wrote:
Yes, on NVIDIA GPUs, the Host/FIFO unit is limited to 40-bit addresses, so things such as the following need to be below (1 << 40), and also accessible to both CPU (user space) and GPU hardware. -- command buffers (CPU user space driver fills them, GPU consumes them), -- semaphores (here, a GPU-centric term, rather than OS-type: these are memory locations that, for example, the GPU hardware might write to, in order to indicate work completion; there are other uses as well), -- a few other things most likely (this is not a complete list).
Is that a 40-bit virtual address limit or physical address limit? I'm no longer sure who is addressing what memory through what mechanism ;-)
Virtual address limit, those object get mapped into GPU page table but the register/structure fields where you program those object's address only are 32bits (the virtual address is shifted by 8bits for alignment).
Cheers, Jérôme