From patchwork Mon Nov 19 10:16:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Hildenbrand X-Patchwork-Id: 10688377 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D605414D6 for ; Mon, 19 Nov 2018 10:16:57 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C767A29C24 for ; Mon, 19 Nov 2018 10:16:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B889829C27; Mon, 19 Nov 2018 10:16:57 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=unavailable version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4830729C24 for ; Mon, 19 Nov 2018 10:16:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 63F0A6B1A31; Mon, 19 Nov 2018 05:16:56 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 5C8846B1A32; Mon, 19 Nov 2018 05:16:56 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 490DA6B1A33; Mon, 19 Nov 2018 05:16:56 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by kanga.kvack.org (Postfix) with ESMTP id 17FBD6B1A31 for ; Mon, 19 Nov 2018 05:16:56 -0500 (EST) Received: by mail-qk1-f200.google.com with SMTP id h68so68568972qke.3 for ; Mon, 19 Nov 2018 02:16:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references; bh=3I1se/jK/CTgMH6a2fAsH9htJFjy8imJvpRMBm2JhTk=; b=CPSgcHwaR6C0DSB2SZa/m5NRRQyOBZjPlHUrNU2Mi8p9iaj/Y0qZ54O/bE0Iz6P71P QiegV99CB1BI0KxQEytpODdOTIEjc/7rONqtW5AdN6RJELeK1DjfzEAHjFx63Ot8q4L3 Z88ZDCvOfBauCTH4gxBsBEDrVxp1Nj1HdOBSZ5Mqs2ow5II/hk7+2uX9Rw8w5ACdkDBw hNnUbQHC7AeViygYfl4H1UjxhUCNjn+c2kqHF2F/PmxieCrB22eyqHhXgHpotFkVzD28 7kLUwXA9awhCRNM2UYObPRnvzayiAmEDLkGHhz1tGjUGzu+o4h9J67j1syWXL99O3Sey bDsQ== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of david@redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com X-Gm-Message-State: AGRZ1gIeZTABK6WdBIaVyexXwNvd7dITyooTY9535/7xOkU2vjTxww9h 0o33jVO/z7LC2UGu/ePPuhmnsbYPOq9i3FN6W/6LLInYNWcyC/b1VdVmLsiJ8sn6kro8Pqj19lq 24v1MssQGfMMuNN/5Kuv4bp1UtngPDn6QHyV3CbKXLo5T1RR92UiUcjQbDm7pCXZ2LA== X-Received: by 2002:a0c:fccf:: with SMTP id i15mr20497219qvq.69.1542622615846; Mon, 19 Nov 2018 02:16:55 -0800 (PST) X-Google-Smtp-Source: AJdET5cww0s26lmCKPBkV/iW8DrTVH9MtmywiJiWofLFL4Lb3TqiZX+RPKnyBjX8uNgHEO/zY1k2 X-Received: by 2002:a0c:fccf:: with SMTP id i15mr20497179qvq.69.1542622614803; Mon, 19 Nov 2018 02:16:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542622614; cv=none; d=google.com; s=arc-20160816; b=EdrLA0lwD/tiD03lf6yh3WbVeMe5ZHCYvzMLNgXQDxYaD//bKGjhGpXUUdAeGrK7zU qcYEs4+oDRoI6SwiIUM71n29GjUI9zpT883ym82gDEIU/Dt1V1D6BUHPoeQ1Vsk5pif8 REC0PDO8QCKZ6UYDhnOA6vAs3UlMcEx2Owog7Qx86HABtaR0sr7cXr2rwb203QqC/7uF Srk/dYbIiOPigYny0dmhJpHptz3EZgJIQqS0A0lwnQ49QYIAgxfdXbg2FF7Vdrkv5Epz Y1VKaG1kP8IQQ2IfITgDJef7kAl6HY+L8vaJPmn4KeoAk1ZZ5MSHHJEOgQvxmNuuFa6A kmbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from; bh=3I1se/jK/CTgMH6a2fAsH9htJFjy8imJvpRMBm2JhTk=; b=LRrgp1UTOf4hbpBv6Huis40rS/tl8W5kW57fHJIropxxc6pCfdGRQIG9Bcms+6Vtfr MQcnxUReCgLuZnnAz917SouRMnL4b3KwcRonVDwDfyMPBvIrXFnvFhu/zsFhO1OkxLp3 f18JhOGJMdRuasYy8n0d7y8jV+SoH81GzmwAGepy/IZHUb4mV825+7S81MiBGhI8nKGX R8eie3j8cVf01CBbYDDz6bxHB/USRC/hw3E4nbHKfOYfNySNi0qcwBU199tNUr6to8BZ suUp/h8AsOZMFrPXiO8nGk+njiHS0gjgvICaDIsvDhCNuDvbH0p3dJSGnvXmsQsRzRxy T7uA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of david@redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from mx1.redhat.com (mx1.redhat.com. [209.132.183.28]) by mx.google.com with ESMTPS id g5si7016743qka.50.2018.11.19.02.16.54 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Nov 2018 02:16:54 -0800 (PST) Received-SPF: pass (google.com: domain of david@redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; Authentication-Results: mx.google.com; spf=pass (google.com: domain of david@redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 3A486C05E773; Mon, 19 Nov 2018 10:16:53 +0000 (UTC) Received: from t460s.redhat.com (ovpn-117-77.ams2.redhat.com [10.36.117.77]) by smtp.corp.redhat.com (Postfix) with ESMTP id 44F9710640FE; Mon, 19 Nov 2018 10:16:45 +0000 (UTC) From: David Hildenbrand To: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, devel@linuxdriverproject.org, linux-fsdevel@vger.kernel.org, linux-pm@vger.kernel.org, xen-devel@lists.xenproject.org, kexec-ml , pv-drivers@vmware.com, David Hildenbrand , Andrew Morton , Dave Young , "Kirill A. Shutemov" , Baoquan He , Omar Sandoval , Arnd Bergmann , Matthew Wilcox , Michal Hocko , "Michael S. Tsirkin" , Lianbo Jiang , Borislav Petkov , Kazuhito Hagio Subject: [PATCH v1 3/8] kexec: export PG_offline to VMCOREINFO Date: Mon, 19 Nov 2018 11:16:11 +0100 Message-Id: <20181119101616.8901-4-david@redhat.com> In-Reply-To: <20181119101616.8901-1-david@redhat.com> References: <20181119101616.8901-1-david@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Mon, 19 Nov 2018 10:16:53 +0000 (UTC) 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: X-Virus-Scanned: ClamAV using ClamSMTP Right now, pages inflated as part of a balloon driver will be dumped by dump tools like makedumpfile. While XEN is able to check in the crash kernel whether a certain pfn is actuall backed by memory in the hypervisor (see xen_oldmem_pfn_is_ram) and optimize this case, dumps of other balloon inflated memory will essentially result in zero pages getting allocated by the hypervisor and the dump getting filled with this data. The allocation and reading of zero pages can directly be avoided if a dumping tool could know which pages only contain stale information not to be dumped. We now have PG_offline which can be (and already is by virtio-balloon) used for marking pages as logically offline. Follow up patches will make use of this flag also in other balloon implementations. Let's export PG_offline via PAGE_OFFLINE_MAPCOUNT_VALUE, so makedumpfile can directly skip pages that are logically offline and the content therefore stale. Please note that this is also helpful for a problem we were seeing under Hyper-V: Dumping logically offline memory (pages kept fake offline while onlining a section via online_page_callback) would under some condicions result in a kernel panic when dumping them. Cc: Andrew Morton Cc: Dave Young Cc: "Kirill A. Shutemov" Cc: Baoquan He Cc: Omar Sandoval Cc: Arnd Bergmann Cc: Matthew Wilcox Cc: Michal Hocko Cc: "Michael S. Tsirkin" Cc: Lianbo Jiang Cc: Borislav Petkov Cc: Kazuhito Hagio Signed-off-by: David Hildenbrand Acked-by: Michael S. Tsirkin Acked-by: Dave Young --- kernel/crash_core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/crash_core.c b/kernel/crash_core.c index 933cb3e45b98..093c9f917ed0 100644 --- a/kernel/crash_core.c +++ b/kernel/crash_core.c @@ -464,6 +464,8 @@ static int __init crash_save_vmcoreinfo_init(void) VMCOREINFO_NUMBER(PAGE_BUDDY_MAPCOUNT_VALUE); #ifdef CONFIG_HUGETLB_PAGE VMCOREINFO_NUMBER(HUGETLB_PAGE_DTOR); +#define PAGE_OFFLINE_MAPCOUNT_VALUE (~PG_offline) + VMCOREINFO_NUMBER(PAGE_OFFLINE_MAPCOUNT_VALUE); #endif arch_crash_save_vmcoreinfo();