From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757514AbbBFWWu (ORCPT ); Fri, 6 Feb 2015 17:22:50 -0500 Received: from mga02.intel.com ([134.134.136.20]:23637 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755807AbbBFWWt (ORCPT ); Fri, 6 Feb 2015 17:22:49 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,530,1418112000"; d="scan'208";a="662789429" Message-Id: From: Tony Luck Date: Fri, 6 Feb 2015 13:54:24 -0800 Subject: [RFC 0/3] Mirrored memory support for boot time allocations To: Andrew Morton Cc: linux-kernel@vger.kernel.org, linux-mm@vger.kernel.org Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Platforms that support a mix of mirrored and regular memory are coming. We'd like to use the mirrored memory for kernel code, data and dynamically allocated data because our machine check recovery code cannot fix problems there. This series modifies the memblock allocator to comprehend mirrored memory and use it for all boot time allocations. Later I'll dig into page_alloc.c to put the leftover mirrored memory into a zone to be used for kernel allocation by slab/slob/slub and others. You'll see why this is just RFC when you get to part 3. Tony Luck (3): mm/memblock: Add extra "flag" to memblock to allow selection of memory based on attribute mm/memblock: Allocate boot time data structures from mirrored memory x86, mirror: x86 enabling - find mirrored memory ranges and tell memblock arch/s390/kernel/crash_dump.c | 4 +- arch/sparc/mm/init_64.c | 4 +- arch/x86/kernel/check.c | 2 +- arch/x86/kernel/e820.c | 2 +- arch/x86/mm/init_32.c | 2 +- arch/x86/mm/memtest.c | 2 +- include/linux/memblock.h | 43 ++++++++++------ mm/cma.c | 4 +- mm/memblock.c | 113 ++++++++++++++++++++++++++++++++---------- mm/nobootmem.c | 12 ++++- 10 files changed, 135 insertions(+), 53 deletions(-) -- 2.1.0