• Ken Chen's avatar
    pretend cpuset has some form of hugetlb page reservation · 8a630112
    Ken Chen authored
    When cpuset is configured, it breaks the strict hugetlb page reservation as
    the accounting is done on a global variable.  Such reservation is
    completely rubbish in the presence of cpuset because the reservation is not
    checked against page availability for the current cpuset.  Application can
    still potentially OOM'ed by kernel with lack of free htlb page in cpuset
    that the task is in.  Attempt to enforce strict accounting with cpuset is
    almost impossible (or too ugly) because cpuset is too fluid that task or
    memory node can be dynamically moved between cpusets.
    The change of semantics for shared hugetlb mapping with cpuset is
    undesirable.  However, in order to preserve some of the semantics, we fall
    back to check against current free page availability as a best attempt and
    hopefully to minimize the impact of changing semantics that cpuset has on
    Signed-off-by: default avatarKen Chen <kenchen@google.com>
    Cc: Paul Jackson <pj@sgi.com>
    Cc: Christoph Lameter <clameter@engr.sgi.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>