From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2A908C28CBC for ; Wed, 6 May 2020 13:55:44 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id B3480206DB for ; Wed, 6 May 2020 13:55:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QBtT3US2" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B3480206DB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 2ACE48E0005; Wed, 6 May 2020 09:55:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2653A8E0003; Wed, 6 May 2020 09:55:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1259B8E0005; Wed, 6 May 2020 09:55:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0120.hostedemail.com [216.40.44.120]) by kanga.kvack.org (Postfix) with ESMTP id E90F38E0003 for ; Wed, 6 May 2020 09:55:42 -0400 (EDT) Received: from smtpin27.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 972D2AC00 for ; Wed, 6 May 2020 13:55:42 +0000 (UTC) X-FDA: 76786442124.27.jeans07_31cbd680f5e28 X-HE-Tag: jeans07_31cbd680f5e28 X-Filterd-Recvd-Size: 9241 Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by imf22.hostedemail.com (Postfix) with ESMTP for ; Wed, 6 May 2020 13:55:42 +0000 (UTC) Received: by mail-wm1-f67.google.com with SMTP id x25so2715242wmc.0 for ; Wed, 06 May 2020 06:55:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=+3oAtPFs43ESjLsbZr3Dpn642+6yy2HyqbhMQ/uWkgQ=; b=QBtT3US2wB0+P6qkUKEHcf+qSYLvrcyiOywAusoUhWPzr+yVeCq3cKgKK1janaInDI dfja6C/g2al0FlC939i/E6rMEXPK6b+QAxogY2/5mxCX8F8zNn0l+X7vS9+K+4Ul93Sx K9NBGbnft+iPVBlXY5Scy5cJ6o3XdgR2f2OYVh+Yj9vGvLm0CqyshvS9n7SSAsj71eLs wILnnLs1o3F5G1sqJwlCOjJTjcU2fcuP38XwFTRBf0inWlXKgCq/uICcR3YtO+vFNDtm O+Iq4NvrvxUoMyQufUEU6bYrHeMt46/YA8wSAVLZSBtZFdTe26OjpYFEmGnfWJdSlSQ9 uNVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=+3oAtPFs43ESjLsbZr3Dpn642+6yy2HyqbhMQ/uWkgQ=; b=TDHkEV1aHDLVt62oW52m1jziaH1UO7LEgHK1LG21ia4dUykVq0DM5/7TyYIZoZI4Fv nXBFmjsshHGUYabVLNzga68owCE/fsnoll2RtsiQ9C5EftsCO1NnbIUTfrpcbifGuyb8 9gYKwEmXSUuwpXpNgQlOzoVyKiSauZ4K7dqV81DQO0I5mxFT4M0w/wUY3oAjSzMAJx9E Wycvjv3VEub8Z2b5AfxwX1aHi17krzR2CT4u9l53hWi86Umw8OqASliftSJmdGS5WHbO Sbr+1hWyFuZo7leOH4EHSn+TQ1rmXVBYks3qF/A1nUWfZ7bHJe/XMdHeRiAItjtGkSaW Ei5g== X-Gm-Message-State: AGi0Pub3bbYe0qkG/Xl8eEe1Z4YVspCA2XGXwmwu1OUKOc85Y+IC1m6o CiQT2qyK8/8qHdM/IzbESccza7jWqbqosk/tLdg= X-Google-Smtp-Source: APiQypJOGE3rBsb/5sZNtnJekxBb8v8ckBwOqmMu2T2KcXkbgMCt9aqXpQAg4pdJ9tFju7ov96os4f3GqWLY0f4F8LQ= X-Received: by 2002:a1c:7f91:: with SMTP id a139mr4338753wmd.164.1588773340849; Wed, 06 May 2020 06:55:40 -0700 (PDT) MIME-Version: 1.0 References: <20200504190227.18269-1-david@redhat.com> <20200504190227.18269-4-david@redhat.com> In-Reply-To: <20200504190227.18269-4-david@redhat.com> From: Pankaj Gupta Date: Wed, 6 May 2020 15:55:29 +0200 Message-ID: Subject: Re: [PATCH v3 3/3] device-dax: Add memory via add_memory_driver_managed() To: David Hildenbrand Cc: LKML , Linux MM , linux-nvdimm@lists.01.org, kexec@lists.infradead.org, Vishal Verma , Dave Jiang , Pavel Tatashin , Andrew Morton , Michal Hocko , Wei Yang , Baoquan He , Dave Hansen , Eric Biederman , Dan Williams Content-Type: text/plain; charset="UTF-8" X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: > Currently, when adding memory, we create entries in /sys/firmware/memmap/ > as "System RAM". This will lead to kexec-tools to add that memory to the > fixed-up initial memmap for a kexec kernel (loaded via kexec_load()). The > memory will be considered initial System RAM by the kexec'd kernel and > can no longer be reconfigured. This is not what happens during a real > reboot. > > Let's add our memory via add_memory_driver_managed() now, so we won't > create entries in /sys/firmware/memmap/ and indicate the memory as > "System RAM (kmem)" in /proc/iomem. This allows everybody (especially > kexec-tools) to identify that this memory is special and has to be treated > differently than ordinary (hotplugged) System RAM. > > Before configuring the namespace: > [root@localhost ~]# cat /proc/iomem > ... > 140000000-33fffffff : Persistent Memory > 140000000-33fffffff : namespace0.0 > 3280000000-32ffffffff : PCI Bus 0000:00 > > After configuring the namespace: > [root@localhost ~]# cat /proc/iomem > ... > 140000000-33fffffff : Persistent Memory > 140000000-1481fffff : namespace0.0 > 148200000-33fffffff : dax0.0 > 3280000000-32ffffffff : PCI Bus 0000:00 > > After loading kmem before this change: > [root@localhost ~]# cat /proc/iomem > ... > 140000000-33fffffff : Persistent Memory > 140000000-1481fffff : namespace0.0 > 150000000-33fffffff : dax0.0 > 150000000-33fffffff : System RAM > 3280000000-32ffffffff : PCI Bus 0000:00 > > After loading kmem after this change: > [root@localhost ~]# cat /proc/iomem > ... > 140000000-33fffffff : Persistent Memory > 140000000-1481fffff : namespace0.0 > 150000000-33fffffff : dax0.0 > 150000000-33fffffff : System RAM (kmem) > 3280000000-32ffffffff : PCI Bus 0000:00 > > After a proper reboot: > [root@localhost ~]# cat /proc/iomem > ... > 140000000-33fffffff : Persistent Memory > 140000000-1481fffff : namespace0.0 > 148200000-33fffffff : dax0.0 > 3280000000-32ffffffff : PCI Bus 0000:00 > > Within the kexec kernel before this change: > [root@localhost ~]# cat /proc/iomem > ... > 140000000-33fffffff : Persistent Memory > 140000000-1481fffff : namespace0.0 > 150000000-33fffffff : System RAM > 3280000000-32ffffffff : PCI Bus 0000:00 > > Within the kexec kernel after this change: > [root@localhost ~]# cat /proc/iomem > ... > 140000000-33fffffff : Persistent Memory > 140000000-1481fffff : namespace0.0 > 148200000-33fffffff : dax0.0 > 3280000000-32ffffffff : PCI Bus 0000:00 > > /sys/firmware/memmap/ before this change: > 0000000000000000-000000000009fc00 (System RAM) > 000000000009fc00-00000000000a0000 (Reserved) > 00000000000f0000-0000000000100000 (Reserved) > 0000000000100000-00000000bffdf000 (System RAM) > 00000000bffdf000-00000000c0000000 (Reserved) > 00000000feffc000-00000000ff000000 (Reserved) > 00000000fffc0000-0000000100000000 (Reserved) > 0000000100000000-0000000140000000 (System RAM) > 0000000150000000-0000000340000000 (System RAM) > > /sys/firmware/memmap/ after a proper reboot: > 0000000000000000-000000000009fc00 (System RAM) > 000000000009fc00-00000000000a0000 (Reserved) > 00000000000f0000-0000000000100000 (Reserved) > 0000000000100000-00000000bffdf000 (System RAM) > 00000000bffdf000-00000000c0000000 (Reserved) > 00000000feffc000-00000000ff000000 (Reserved) > 00000000fffc0000-0000000100000000 (Reserved) > 0000000100000000-0000000140000000 (System RAM) > > /sys/firmware/memmap/ after this change: > 0000000000000000-000000000009fc00 (System RAM) > 000000000009fc00-00000000000a0000 (Reserved) > 00000000000f0000-0000000000100000 (Reserved) > 0000000000100000-00000000bffdf000 (System RAM) > 00000000bffdf000-00000000c0000000 (Reserved) > 00000000feffc000-00000000ff000000 (Reserved) > 00000000fffc0000-0000000100000000 (Reserved) > 0000000100000000-0000000140000000 (System RAM) > > kexec-tools already seem to basically ignore any System RAM that's not > on top level when searching for areas to place kexec images - but also > for determining crash areas to dump via kdump. Changing the resource name > won't have an impact. > > Cc: Andrew Morton > Cc: Michal Hocko > Cc: Pankaj Gupta > Cc: Wei Yang > Cc: Baoquan He > Cc: Dave Hansen > Cc: Eric Biederman > Cc: Pavel Tatashin > Cc: Dan Williams > Signed-off-by: David Hildenbrand > --- > drivers/dax/kmem.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/dax/kmem.c b/drivers/dax/kmem.c > index 3d0a7e702c94..5a645a24e359 100644 > --- a/drivers/dax/kmem.c > +++ b/drivers/dax/kmem.c > @@ -65,7 +65,13 @@ int dev_dax_kmem_probe(struct device *dev) > new_res->flags = IORESOURCE_SYSTEM_RAM; > new_res->name = dev_name(dev); > > - rc = add_memory(numa_node, new_res->start, resource_size(new_res)); > + /* > + * Ensure that future kexec'd kernels will not treat this as RAM > + * automatically. > + */ > + rc = add_memory_driver_managed(numa_node, new_res->start, > + resource_size(new_res), > + "System RAM (kmem)"); > if (rc) { > release_resource(new_res); > kfree(new_res); > -- Acked-by: Pankaj Gupta > 2.25.3 >