lkml.org 
[lkml]   [2013]   [Jul]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectMAP_HUGETLB and MPOL_PREFERRED = SIGBUS
When I mmap anonymous hugepages with MAP_HUGETLB and there are
available (pre-reserved) hugepages available, but only on the wrong
node, things blow up. The mmap succeeds, as it should (the accounting
here is wrong -- known issue AFAIK, but that's only relevant to
MPOL_BIND or cpusets). But writing to the resulting page causes a
SIGBUS.

AFAICS the issue is that dequeue_huge_page_vma is calling
huge_zonelist, which returns a single-entry nodemask. The loop over
allowable zones* will never try other numa zones, and the function
fails.

I'm not sure whether it would be better to try other nodes first or to
try get get a page from the buddy allocator on the preferred node
first, but currently the other nodes' reserved lists are never
checked. The result is a crash.

Working around this in userspace is going to be a real PITA. Grr.

* Why is this iterating zones instead of nodes?

--Andy


\
 
 \ /
  Last update: 2013-07-19 03:21    [W:0.039 / U:0.228 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site