Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp4781984pxu; Tue, 22 Dec 2020 00:09:15 -0800 (PST) X-Google-Smtp-Source: ABdhPJwsvZLf2Bd0mToKnQVTp4pSWcJtPLDCC3iSr4GbHlClA4dMxOV8TS1mmnd2LRKjq5RthZDA X-Received: by 2002:a50:bacb:: with SMTP id x69mr19169592ede.39.1608624555113; Tue, 22 Dec 2020 00:09:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608624555; cv=none; d=google.com; s=arc-20160816; b=OEWHkIVE11knXIsWM00ro8JMY4G7h6dB75gKdRB9HPWsqGJzVYlPYuIOBkyUJeE+RZ oAtqujxBxwV1jWcYxQdgZRuCUXVmRuM+1YlFMeyhKX42bGlvJpf+PG3L1WgG5hGcRvBD cpe02dDv4+2ByJA7ZIDcH0OrBGIP/g/mKypzyEtqWrNroDSTfNkSmgOLMktWEOb3fGBN 63u8+VOxCkvxB8y3ejK6fnVn6VcudABvTpDpybCpmQ3g/FTYxXFNixHRG0lHhbTud7be AJxvxUtQD8mWTqG8KjLzgR1wV0fIBawkaluBrSay7lyGQdxaVdfxErPhO2wYLwWvnTrR Zu5w== 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=vZw5nI+kCEEx1ompDMl4HBZSoNTPvUzGrnmedcFZpg8=; b=neDYn6x48W9qIVAFcEZKO3hyxP0zWeSBmhr9Vs22msL4kg9EyYUpSSUQ7iECK25U6t NkQwd7apJFdiO8iaLYgzBvgtc822IAvpPJoC2Vsn9WVwSR44gxDhQhjhvKSIB9068WQe UZs9MMGQXxwXK071ubknL7ijx6XjQU0TduaC0dghNZq71cfBzt/daezohJ9trjFlLZPc nBA1REB/EWF2UryNaXpnOLeUEwGBv/UEjs7zUMP0lEB/xBYaVucihXK3LR7HekZ+rGEn TL9BuCnH1YTXPDyyZsa0AM8YjR+thypszhZiJfr3/+zy8bVC/0+ekMiembgsyD1TR3G8 uERg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=JaROmKll; 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 bu21si12038881edb.199.2020.12.22.00.08.52; Tue, 22 Dec 2020 00:09:15 -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=JaROmKll; 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 S1725785AbgLVIIM (ORCPT + 99 others); Tue, 22 Dec 2020 03:08:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37538 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725300AbgLVIIM (ORCPT ); Tue, 22 Dec 2020 03:08:12 -0500 Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com [IPv6:2607:f8b0:4864:20::62f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 22869C0613D3 for ; Tue, 22 Dec 2020 00:07:32 -0800 (PST) Received: by mail-pl1-x62f.google.com with SMTP id y8so7018931plp.8 for ; Tue, 22 Dec 2020 00:07:32 -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=JaROmKllcxZJVSF/7f9ajF4vZ/3yI3Ppuoc9yGHEnIiI0Bm+YkKpjmdV9Cl4vLEfrk GxXkm9MIxo35fXB1bSqq0QILocaPg8WSo56E345ryIV0sAtyi9mG3BKjKi5hcFdwehPX bFrwLCmhAgRsMVx4Y64dbMDB+dvj69VpdrMyYkz02CkoPFz23ssTuqCiLfZr21ZXjA7G oxZ7hur2XCUhVBwP9QcyLLxgpRY/A0aoR8TBCaB8Y40JdxwjLjEj0WVLo7b1d4IHib2h hEIr7+oTGM5fnPYVtiF/+bn7XSSqLZ1QRRsW2QC89QuWBkolBXs9JquUFPyJPfNDu3p/ etOg== 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=HDG0FoIoCiksoC2Iwa/dMWJGj0rY6zRs5bf/ufaXxdyuwWrnSjgWa5EU83ZKTOGMsF rAEHeo2KsIvhrA2lZ4+xcHzfot0u91e/elEYxvoKQ/0B4nQr3NLagVIW0DHUVxAFnhKp NRKm9fZNMXaMy0KXb0d+2LsfT7rdA4XSOHSAqUHiquUh8fuTqG9pwaD9SUXv5Lr5pDWl yeGeIZfcTdyJ5PF1zXTwuMwg57wV5AxjcUL8XI0lmCfoTmEYGKfV5hBcm51ZSXEX6ckM iwMXlUMokAcmD8dIooXUbK5Nn9XKPIfMSZ1HhE+fsgP76oih/nnSpFztl14yJ0OHEcF0 AfhA== X-Gm-Message-State: AOAM531LKYwkdvhU3GXLl64s/ZMmfQmeaQbRhgpxMWcez9Abv6OQmiMU M/XXePqOJHbfeq7YhM1PknE= X-Received: by 2002:a17:902:b706:b029:dc:3817:4da5 with SMTP id d6-20020a170902b706b02900dc38174da5mr12068668pls.23.1608624450476; Tue, 22 Dec 2020 00:07:30 -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 b7sm7126753pff.96.2020.12.22.00.07.28 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Dec 2020 00:07:29 -0800 (PST) From: Liang Li X-Google-Original-From: Liang Li Date: Tue, 22 Dec 2020 03:07:27 -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: <20201222080724.GA30239@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 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