s390/mm: zero page cache synonyms for zEC12
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 28 Feb 2013 10:08:54 +0000 (11:08 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 17 Apr 2013 12:07:24 +0000 (14:07 +0200)
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 <schwidefsky@de.ibm.com>
arch/s390/mm/init.c

index 49ce6bb2c6416431a3f168134f78ea4b1c71a0b4..9f9c315b4c0780dcf1acfbb74017a156ec908a34 100644 (file)
@@ -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)