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=-9.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 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 98310C433E0 for ; Tue, 22 Dec 2020 08:09:30 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 41C1B23127 for ; Tue, 22 Dec 2020 08:09:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 41C1B23127 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 8D0F36B0096; Tue, 22 Dec 2020 03:09:29 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 882CC6B0098; Tue, 22 Dec 2020 03:09:29 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 770E86B0099; Tue, 22 Dec 2020 03:09:29 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0060.hostedemail.com [216.40.44.60]) by kanga.kvack.org (Postfix) with ESMTP id 626BB6B0096 for ; Tue, 22 Dec 2020 03:09:29 -0500 (EST) Received: from smtpin28.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 251A5364A for ; Tue, 22 Dec 2020 08:09:29 +0000 (UTC) X-FDA: 77620193658.28.limit69_310a9782745e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin28.hostedemail.com (Postfix) with ESMTP id 017726C2F for ; Tue, 22 Dec 2020 08:09:28 +0000 (UTC) X-HE-Tag: limit69_310a9782745e X-Filterd-Recvd-Size: 6787 Received: from mail-pg1-f182.google.com (mail-pg1-f182.google.com [209.85.215.182]) by imf38.hostedemail.com (Postfix) with ESMTP for ; Tue, 22 Dec 2020 08:09:28 +0000 (UTC) Received: by mail-pg1-f182.google.com with SMTP id n25so2388121pgb.0 for ; Tue, 22 Dec 2020 00:09:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:date:to:cc:subject:message-id:mail-followup-to:mime-version :content-disposition:user-agent; bh=vZw5nI+kCEEx1ompDMl4HBZSoNTPvUzGrnmedcFZpg8=; b=vLBLjFXhc52zVGGaPxpIaxjR0vZSpL4RJWvs/u4ZFgQIPhGnSO8vUxUyOcQJDcwroz C+CTv3VfTYEwuZT78zrciQhiqjjm9XFc64y7aLEnzHkfKaU6BF6++zXrtUq+Z46GXtOB 83tycbWqXdmhMnIMeVoOtsIEzFSxkjVYZx5+qQyKUWt2KfgiAQ5bcxBoqDXLrfG4/5qR yDH+Z6StmiHIPJOs9WVqVp6OjWoM0TD8ZuWL6g8zF2FM8B2otSpqjFND+l1OZECDxkc/ p4UBrcQV0WZZuJuQJ/ENRZJpMKr2E2AH94CsEQKR0vjN4J3Oc2XTyrm7eO0i9y+gwghf 1eCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:date:to:cc:subject:message-id :mail-followup-to:mime-version:content-disposition:user-agent; bh=vZw5nI+kCEEx1ompDMl4HBZSoNTPvUzGrnmedcFZpg8=; b=RvcU/6FRoZWv9zWIU6QVSRup5MnVPqOL+Kw+f2MhwC16emVKbsghufa/zLrdWn9X1e yGYduzs8pAFFlSpkNHGzbWIT7pHO5zIHX3LMdPyxP0S9Yob5EaRGIGEcmXH+OuBck8bD gXEemVmsls+r67ZYI7DyTBMAmWqPWA5Y10LKlO4ZeGyW5baZNRG+4ZrwFsz020KQALln zWpS7ZkjPLM8SJj+bAmAP32uhb/pQiJnWTSW/IWqGhI4UaxMS24Hfk1qlKmS53/d7PVj rWLits8F7tnDqyVhIGe7HRUOIDXz59gK1dFKnHFaBZni5Hn1DnwSaXa3baEP3UUIlEQk tuhg== X-Gm-Message-State: AOAM533oWXzvvCyU0Ju3+XzvSkpaL2JdFfwUgabbM+RjLppx12kYWG9l MlA5JSbKYrNdTd8htAN1DAs= X-Google-Smtp-Source: ABdhPJyU6Wz5lVMCuCgUGh0+zuFDW8nZczDSmN1Y/AkdDSy8vvTKk3wCl/eNGH6+B3nfb09my9dzuQ== X-Received: by 2002:a63:1e1a:: with SMTP id e26mr4591379pge.66.1608624567657; Tue, 22 Dec 2020 00:09:27 -0800 (PST) Received: from open-light-1.localdomain (66.98.113.28.16clouds.com. [66.98.113.28]) by smtp.gmail.com with ESMTPSA id r14sm13345752pgi.27.2020.12.22.00.09.26 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Dec 2020 00:09:27 -0800 (PST) From: Liang Li X-Google-Original-From: Liang Li Date: Tue, 22 Dec 2020 03:09:24 -0500 To: Alexander Duyck , Mel Gorman , Andrew Morton , Andrea Arcangeli , Dan Williams , "Michael S. Tsirkin" , David Hildenbrand , Jason Wang , Dave Hansen , Michal Hocko , Liang Li , Mike Kravetz , Liang Li Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, qemu-devel@nongnu.org Subject: [RFC PATCH 0/3 updated] add support for free hugepage reporting Message-ID: <20201222080921.GA30259@open-light-1.localdomain> Mail-Followup-To: Alexander Duyck , Mel Gorman , Andrew Morton , Andrea Arcangeli , Dan Williams , "Michael S. Tsirkin" , David Hildenbrand , Jason Wang , Dave Hansen , Michal Hocko , Liang Li , Mike Kravetz , Liang Li , linux-mm@kvack.org, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, qemu-devel@nongnu.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) 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: A typical usage of hugetlbfs it's to reserve amount of memory during kernel booting, and the reserved pages are unlikely to return to the buddy system. When application need hugepages, kernel will allocate them from the reserved pool. when application terminates, huge pages will return to the reserved pool and are kept in the free list for hugetlb, these free pages will not return to buddy freelist unless the size fo reserved pool is changed. Free page reporting only supports buddy pages, it can't report the free pages reserved for hugetlbfs. On the other hand, hugetlbfs is a good choice for system with a huge amount of RAM, because it can help to reduce the memory management overhead and improve system performance. This patch add the support for reporting hugepages in the free list of hugetlb, it can be used by virtio_balloon driver for memory overcommit and pre zero out free pages for speeding up memory population and page fault handling. Most of the code are 'copied' from free page reporting because they are working in the same way. So the code can be refined to remove the duplicated code. Since this is an RFC, I didn't do that. For the virtio_balloon driver, changes for the virtio spec are needed. Before that, I need the feedback of the comunity about this new feature. This RFC is baed on my previous series: '[RFC v2 PATCH 0/4] speed up page allocation for __GFP_ZERO' Liang Li (3): mm: support hugetlb free page reporting virtio-balloon: add support for providing free huge page reports to host mm: support free hugepage pre zero out drivers/virtio/virtio_balloon.c | 61 ++++++ include/linux/hugetlb.h | 3 + include/linux/page_reporting.h | 5 + include/uapi/linux/virtio_balloon.h | 1 + mm/hugetlb.c | 29 +++ mm/page_prezero.c | 17 ++ mm/page_reporting.c | 287 ++++++++++++++++++++++++++++ mm/page_reporting.h | 34 ++++ 8 files changed, 437 insertions(+) Cc: Alexander Duyck Cc: Mel Gorman Cc: Andrea Arcangeli Cc: Dan Williams Cc: Dave Hansen Cc: David Hildenbrand Cc: Michal Hocko Cc: Andrew Morton Cc: Alex Williamson Cc: Michael S. Tsirkin Cc: Jason Wang Cc: Mike Kravetz Cc: Liang Li -- 2.18.2