Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp4770926pxu; Mon, 21 Dec 2020 23:47:38 -0800 (PST) X-Google-Smtp-Source: ABdhPJw3ImM0zY1y4ra9qEFUkBd26EzcsePnniO2fjKi+vbS/jMY5UbBcOlfIy3XcfjNFhfVjKkg X-Received: by 2002:a05:6402:1352:: with SMTP id y18mr19376148edw.178.1608623258663; Mon, 21 Dec 2020 23:47:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608623258; cv=none; d=google.com; s=arc-20160816; b=DsAT126tUtadV9vO5d9wEzOMyNaUW8AvrvI+YWfkGJ6Y1BX3Rru6mU1YRWZrCVJvCL kp0qKmnc9HwfBp/q7XynUUapZoHG5352rjyYR8hVH/LPiMUzYr2sV8qc4Y+b0GJC7G5r 4iqnVJ8sCfD0XT91Oa5n1qvNuFjsJXWjRZXvVnlxMOv52644yMQlJUHMHQkwwXHwGlJR 9xtb0XKr0tqDrwOAwxKEN8UisojKmMyGMHYaocvVPEwhQIA7w7nC6WLV6Tobi1cCXSr+ Lc2uj2kRK9CLW8Qi/gajQskqgAdkZx091loQQolVoGqYUprSNGuChYzcK++J0d3fei/t YbbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:content-disposition:mime-version :mail-followup-to:message-id:subject:cc:to:date:from:dkim-signature; bh=VRDkYo9thmerq4KdUChRDJwyIpvZR7iVG1d7W9YK664=; b=dkuDWlzypdZpymGW7k4GPydezzHhaIzVSWOlBVmY0PUlvvM1shknWxE0j2QA0s1J5j h+bhFqEE4Kl+LK5ThLJJ0XOmjz7UAucHoK1qcY/WjXqNAzswzdxsxTg2H5cKyeQVihEt 3Ek0Gf2q7zIxk0+QQMUB8cTsyhb5XupIYA1sYKsyfoVvIRg6EMgra8TkeeYGXZcU6VCf A5r680xsqvWdeuW4EVEnG5OCq80nGR0tG5in46Eik7MWPZMo2v2MJteRYv81zQDR+w20 Zm01UX5AKl5OR06GZ62W0s+rZHAAWp80cpY9hDZN0e71nnFuyhHRHl8PAvXgVMX1Cc81 4TxA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=kSA3yBOV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m3si10243545ejr.562.2020.12.21.23.47.15; Mon, 21 Dec 2020 23:47:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=kSA3yBOV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725850AbgLVHq0 (ORCPT + 99 others); Tue, 22 Dec 2020 02:46:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34148 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725300AbgLVHqZ (ORCPT ); Tue, 22 Dec 2020 02:46:25 -0500 Received: from mail-pf1-x434.google.com (mail-pf1-x434.google.com [IPv6:2607:f8b0:4864:20::434]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8118BC0613D3 for ; Mon, 21 Dec 2020 23:45:45 -0800 (PST) Received: by mail-pf1-x434.google.com with SMTP id m6so7974292pfm.6 for ; Mon, 21 Dec 2020 23:45:45 -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=VRDkYo9thmerq4KdUChRDJwyIpvZR7iVG1d7W9YK664=; b=kSA3yBOVbsQCzaPAuQH6tStOIQ/E8baYqDX1AfdkZa5M1+5DBspeYmZULpbRqxXD+U fQaVv9kv+Mtf/igPfGPa7XawbyxVGxVKz//jFSXO9yeb8NJT8f8hmL7701bLv8J3eIxq 7nV38OJW1hpytEGlibXvXB5dUA8m0RLzNnynboN8stOQYjTUBCqNr6BtyeMCWd192ljP rYcz2rqJlq8mB4D8jvuIInvBY8QVwyqd3o8dxktbz+SRltqqKld/55PyUgV0A9CHAfGH TscoLv12DE8n1IVSDpXqUWoVvTqCapkRn50yVPRV2wCy5FfilnYL3JK2a2Iy21dCVGE6 +glQ== 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=VRDkYo9thmerq4KdUChRDJwyIpvZR7iVG1d7W9YK664=; b=QBjQVL0Geyw0qbUT4aC/DQDizbLPIXI0OpeWn9+7yYeIk+ERdowddhMLyS9LfD9tbO ZFYDB9uLB1D/LFKnwpRiRbSb3fySNrh9VoP3TNKXjrRS46bQF5xYGdaxC9aYG5jPDxZ7 xkvVjJz9JnBGLe+OmT1kowh56VUTzpo7zBATzsalVKX1Oy2PbYoZHbvjOaoQ2HYzMD0m nQVqbrWwVd1PvRxindglXOCWpCNAPfyH8ZRFRVJEQRhUxzhlQROb/fJI5hUDrvM0xvkw fTB7ZDWXS8MXn6Bipf9PQYR0G2OZWzzGsO+IGal/q05E/DeySg2zvPWfmKCWax9QZNMq 2zIA== X-Gm-Message-State: AOAM530x85Mkr8pP1SuIQQLZ6gliJV9Ab2FP7/99pU8NsOqaAEbILfbz l2GKxydKZYB9tATvEIKr0QI= X-Received: by 2002:a63:f745:: with SMTP id f5mr18596744pgk.119.1608623144989; Mon, 21 Dec 2020 23:45:44 -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 mj5sm18247451pjb.20.2020.12.21.23.45.43 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 21 Dec 2020 23:45:44 -0800 (PST) From: Liang Li X-Google-Original-From: Liang Li Date: Tue, 22 Dec 2020 02:45:41 -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] add support for free hugepage reporting Message-ID: <20201222074538.GA30029@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) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A typical usage of hugetlbfs it's to reserve amount of memory when the during kernel booting stage, 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 duplication 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. 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