• Paul Mundt's avatar
    [PATCH] Sanely size hash tables when using large base pages · 9ab37b8f
    Paul Mundt authored
    At the moment the inode/dentry cache hash tables (common by way of
    alloc_large_system_hash()) are incorrectly sized by their respective
    detection logic when we attempt to use large base pages on systems with
    little memory.
    
    This results in odd behaviour when using a 64kB PAGE_SIZE, such as:
    
    Dentry cache hash table entries: 8192 (order: -1, 32768 bytes)
    Inode-cache hash table entries: 4096 (order: -2, 16384 bytes)
    
    The mount cache hash table is seemingly the only one that gets this right
    by directly taking PAGE_SIZE in to account.
    
    The following patch attempts to catch the bogus values and round it up to
    at least 0-order.
    Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    9ab37b8f
page_alloc.c 90.9 KB