From patchwork Thu Nov 22 10:06:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Hildenbrand X-Patchwork-Id: 10693809 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 561065A4 for ; Thu, 22 Nov 2018 10:07:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 461A62BA1E for ; Thu, 22 Nov 2018 10:07:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3983F2BAB3; Thu, 22 Nov 2018 10:07:05 +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=ham 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 B56A82BA1E for ; Thu, 22 Nov 2018 10:07:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9D9326B2AF8; Thu, 22 Nov 2018 05:07:02 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 95F0B6B2AF9; Thu, 22 Nov 2018 05:07:02 -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 7FFB66B2AFA; Thu, 22 Nov 2018 05:07:02 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by kanga.kvack.org (Postfix) with ESMTP id 521366B2AF8 for ; Thu, 22 Nov 2018 05:07:02 -0500 (EST) Received: by mail-qt1-f199.google.com with SMTP id n45so5836990qta.5 for ; Thu, 22 Nov 2018 02:07:02 -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=7DE3NTyk2KqSazwc3TnGw+eY02xeO39mwh3PA4exfno=; b=Z24AT1QVhRcSaatbPkZXvBSUDACoe0uYGJgIcTa688CsAyNAuZ1sTWTVurIJ3jxiLB JfIibmkUsvCYlTxJZulYCujMSURll2e5q9jYBATaU8cGZ5OgcI9l7h9fzg+zJRfmHIWr aJS8KKuxw2pOEdBhdQYm8FdlzmBgmtWUxvQ/7NiClDg6YtHyXEA4cp5QXvC16DH6ZYqV wZTKXSV00nHOEcwOZcmB/ncgnp+2VufaK9Vf8auJQhbcMZ76jUbVklbajUDV7Y8fhX+Z 2MOJMpzX4bzKR18xcalG9Ls3wC0DTkuu4Sabxp7KrtK+3TgocBS9riowdZWnbCHelBzY SewQ== 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: AA+aEWZM3cCHe/ALJwmrjwedqGBij5OF8HOApxbEmBwY1kpuxHIcP/yf MrNITfE4T+3Vz00pdXp7xzRaJfXsn3kETgEwnLO52gm17+EFDoPWAoW6YTLKm+LsBX3Trowymdy 2zRveqBgPkRTRL8ZHqJC1s4c/gj5AYjhwmSgaeSxaOXPl2mHMdlCRUFcddkT4MrOqHg== X-Received: by 2002:a0c:b48d:: with SMTP id c13mr9366441qve.91.1542881222076; Thu, 22 Nov 2018 02:07:02 -0800 (PST) X-Google-Smtp-Source: AFSGD/UD0zXGbvOiUUIV7ilokMZJD2E7RyrDj+SsqVP88SC1GvpwIcobixJuiXplIdu85X18Dp45 X-Received: by 2002:a0c:b48d:: with SMTP id c13mr9366387qve.91.1542881220939; Thu, 22 Nov 2018 02:07:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542881220; cv=none; d=google.com; s=arc-20160816; b=RnZbJyW5OJv5d1IkvFpJbtfYnmKL/yB29+oNKC9sHO3pPnrteL9opWHbxQE5l+6bFJ Wa8KgZGzXURP7dklQWkXyYathnWdIXiLvT0/2nlTXpnvYvifdXNMz4UjVBRU2KQrwYBv PSKMwV04EO8ZBy3R253hcCO3KFKUMOhGvA2xwdjUzIdP9/GAz94fG5gKU7pLOmk1Zsa0 vCNIZtfODhdm7rQLQR4WVbwofhjeKWh40t5T+jk0glfcZ/MLnRjiqFiAe5eRRhf6FiJE tLc2t66RWg5rhKFemVS4W5Z8O7qR5QmRzOfkE6pbWSiHdeRe2JHKeCdLA6WKh3fkYUTg RCPQ== 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=7DE3NTyk2KqSazwc3TnGw+eY02xeO39mwh3PA4exfno=; b=N4XYrCGtboUk8puoOQITTc0XJeUf4sG8aJDMk6veI1Y2sP8MHjnSFXpQnliDNcynw9 f58ZGoO9raU+FlX17jXasuQq5jlcVBa75/So7nAEYi6vmxoNZwB5o6ZhJsEl55h2o9fH Mov7DhBE/AvGaydKvAI322x22R6RLx6PTayYm+TXs/r1gCJmCf7g34Pb5F4KUccwJ15G CjxiK2ycyhUxfXHlTmUOLHWYBFgzBZYo9i8+9bb+9R11aPyUDP26zfpS/iNmG/vtKbUz 0c2NtzRuVNGUAI/tWTWuEwD8QwxQCoAZYBU4md6o5aLsELjmivHQnQ9UaWHXcAWpwVcz Srfw== 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 s74si2174243qks.195.2018.11.22.02.07.00 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Nov 2018 02:07:00 -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-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E2CB0315487B; Thu, 22 Nov 2018 10:06:59 +0000 (UTC) Received: from t460s.redhat.com (ovpn-116-206.ams2.redhat.com [10.36.116.206]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1627C16BE8; Thu, 22 Nov 2018 10:06:46 +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 v2 3/8] kexec: export PG_offline to VMCOREINFO Date: Thu, 22 Nov 2018 11:06:22 +0100 Message-Id: <20181122100627.5189-4-david@redhat.com> In-Reply-To: <20181122100627.5189-1-david@redhat.com> References: <20181122100627.5189-1-david@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.41]); Thu, 22 Nov 2018 10:07:00 +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. (we export is as a macro to match how it is done for PG_buddy. This way it is clearer that this is not actually a flag but only a very specific mapcount value to represent page types). 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 Acked-by: Michael S. Tsirkin Acked-by: Dave Young Signed-off-by: David Hildenbrand --- 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();