On Mon, Jan 30, 2012 at 11:22:14AM -0600, Christoph Lameter wrote:
On Mon, 30 Jan 2012, Tejun Heo wrote:
Percpu pointers are in a different address space and using ZERO_SIZE_PTR directly will trigger sparse address space warning. Also, I'm not entirely sure whether 16 is guaranteed to be unused in percpu address space (maybe it is but I don't think we have anything enforcing that).
We are already checking for NULL on free. So there is a presumption that these numbers are unused.
Yes, we probably don't use 16 as valid dynamic address because static area would be larger than that. It's just fuzzier than NULL. And, as I wrote in another reply, ZERO_SIZE_PTR simply doesn't contribute anything. Maybe we can update the allocator to always not use the lowest 4k for either static or dynamic and add debug code to translation macros to check for percpu addresses < 4k, but without such changes ZERO_SIZE_PTR simply doesn't do anything.
Thanks.