From: Martin Schwidefsky Date: Thu, 28 Feb 2013 10:08:54 +0000 (+0100) Subject: s390/mm: zero page cache synonyms for zEC12 X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=7919e91b34316ee30b14334389e005eb2e9b8e39;p=deliverable%2Flinux.git s390/mm: zero page cache synonyms for zEC12 To avoid cache synonyms on System zEC12 32 independent zero pages are required, one for each combination for bits 2**12 to 2**16 of the virtual address. To avoid wasting too much memory on small virtual systems the number of zero pages is limited to 4 if the memory size is less or equal to 64MB. Signed-off-by: Martin Schwidefsky --- diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c index 49ce6bb2c641..9f9c315b4c07 100644 --- a/arch/s390/mm/init.c +++ b/arch/s390/mm/init.c @@ -63,10 +63,18 @@ static unsigned long __init setup_zero_pages(void) break; case 0x2097: /* z10 */ case 0x2098: /* z10 */ - default: + case 0x2817: /* z196 */ + case 0x2818: /* z196 */ order = 2; break; + case 0x2827: /* zEC12 */ + default: + order = 5; + break; } + /* Limit number of empty zero pages for small memory sizes */ + if (order > 2 && totalram_pages <= 16384) + order = 2; empty_zero_page = __get_free_pages(GFP_KERNEL | __GFP_ZERO, order); if (!empty_zero_page)