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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id CDCFEC76188 for ; Mon, 3 Apr 2023 14:47:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 71B7B900005; Mon, 3 Apr 2023 10:47:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6CB8B900003; Mon, 3 Apr 2023 10:47:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 545CD900005; Mon, 3 Apr 2023 10:47:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 40789900003 for ; Mon, 3 Apr 2023 10:47:12 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 1628380B85 for ; Mon, 3 Apr 2023 14:47:12 +0000 (UTC) X-FDA: 80640357504.14.B7E385C Received: from wout2-smtp.messagingengine.com (wout2-smtp.messagingengine.com [64.147.123.25]) by imf14.hostedemail.com (Postfix) with ESMTP id B835E100024 for ; Mon, 3 Apr 2023 14:47:09 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=shutemov.name header.s=fm1 header.b="C JfPIRc"; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=NdC2tkDI; dmarc=none; spf=pass (imf14.hostedemail.com: domain of kirill@shutemov.name designates 64.147.123.25 as permitted sender) smtp.mailfrom=kirill@shutemov.name ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680533230; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=oqA0VHWBGbzdDXhXtmsL6Q39VlRQlEDa8qmRtydlcIU=; b=YPe7AX3SHeGlE7pk1FRPitSpEYI6M9nLA/vIpgrBBOu8qmhJeekwXn7ntO2xHETxCbwdky YciUR/Tx2G/1c/AleU8206SSlICH6YNoG+7M0jMxMWoRfobacaNHEPlY3qPWOegq9s2imm NhncRotaZnO7SKMy3LCPzpbQicr8ecE= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=shutemov.name header.s=fm1 header.b="C JfPIRc"; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=NdC2tkDI; dmarc=none; spf=pass (imf14.hostedemail.com: domain of kirill@shutemov.name designates 64.147.123.25 as permitted sender) smtp.mailfrom=kirill@shutemov.name ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680533230; a=rsa-sha256; cv=none; b=MomQx02m/5pGo9hCLad7w4fAhWVoH/7wWgMsW7pKgvZ3n/eXh4fMRcSGQhG7+xNta4C33L XnUt5Io/JV7GhdSLl/NL8B+JEzIqaaR/u+6vSeXuCgkTuCh3qDz4GBTQpjs8KPXkaRAFzU G4FwXPszC9M0l4Jo7kA2TpGZFYN9TPM= Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id 433DE320098C; Mon, 3 Apr 2023 10:47:06 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Mon, 03 Apr 2023 10:47:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shutemov.name; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm1; t=1680533225; x= 1680619625; bh=oqA0VHWBGbzdDXhXtmsL6Q39VlRQlEDa8qmRtydlcIU=; b=C JfPIRcTDs1kJ7uvJSt2/SC/gZ0s850Etkzy+yVS2pfYpPQSe4KLXh+cJ84UD79uM aidEngC7vydhEz1Hr2f1ZscjLnk+/Hh+N7LfBjfBV6oEenxEWi+xxLTWvyi/nx6o KZOaM/T9wBaMXjDZ3fkuSURI3kFbbBLWl9Hvy1a9HCXfKsbFifcZVNpOixtCzsRn ROxo2xpwYSgqVKOPVJnJRmKTJG+is3IdH4YDb7IvUD7EwIbsoCDnUHGu9sdqMCs3 m4aDvaENE/KrceJdicbM90VxOhBz7H1xkYv3p1qd7eOsFtLSChCaQ856gRVV+vrl Ou+/Gpqjm3bSf4YwITdXA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; t=1680533225; x=1680619625; bh=oqA0VHWBGbzdD XhXtmsL6Q39VlRQlEDa8qmRtydlcIU=; b=NdC2tkDIF2Qhtp04LAGWOXraeGqkd 982Y+yLEmxsFtcAqCDimsb+ePj1+DytzJB2hnGUZrzVkc/g8Z8Fi1GCrHGLgfWI4 QBsaLkkQRZudXq6LE6F9lnIVTkGiPE4A/nb8ig8q8QeDrqrebU6oBbERzt5e8ITl 0vB2kvE3DpiaNiUCdd66271rOTkHfuHO9OTbF0V6IftqC7XoOK+JbDbpE90mL/PS WwQxWJyvvENm21f2G+Yr/Juv5rsXj3DcBayYqFwbmVVzYcQiEOeX7DpXAA9wrFr4 cUvdHcQfYUNo6WjW17vojot3bC/Ii5NqALXIlFvZm+sgqiLDCWOYKMUOw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrvdeijedgkedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepfffhvfevuffkfhggtggujgesthdttddttddtvdenucfhrhhomhepfdfmihhr ihhllhcutedrucfuhhhuthgvmhhovhdfuceokhhirhhilhhlsehshhhuthgvmhhovhdrnh grmhgvqeenucggtffrrghtthgvrhhnpefhieeghfdtfeehtdeftdehgfehuddtvdeuheet tddtheejueekjeegueeivdektdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh epmhgrihhlfhhrohhmpehkihhrihhllhesshhhuhhtvghmohhvrdhnrghmvg X-ME-Proxy: Feedback-ID: ie3994620:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 3 Apr 2023 10:47:04 -0400 (EDT) Received: by box.shutemov.name (Postfix, from userid 1000) id C6B9410D7B3; Mon, 3 Apr 2023 17:47:02 +0300 (+03) Date: Mon, 3 Apr 2023 17:47:02 +0300 From: "Kirill A. Shutemov" To: David Hildenbrand Cc: "Kirill A. Shutemov" , Borislav Petkov , Andy Lutomirski , Sean Christopherson , Andrew Morton , Joerg Roedel , Ard Biesheuvel , Andi Kleen , Kuppuswamy Sathyanarayanan , David Rientjes , Vlastimil Babka , Tom Lendacky , Thomas Gleixner , Peter Zijlstra , Paolo Bonzini , Ingo Molnar , Dario Faggioli , Dave Hansen , Mike Rapoport , Mel Gorman , marcelo.cerri@canonical.com, tim.gardner@canonical.com, khalid.elmously@canonical.com, philip.cox@canonical.com, aarcange@redhat.com, peterx@redhat.com, x86@kernel.org, linux-mm@kvack.org, linux-coco@lists.linux.dev, linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCHv9 03/14] mm/page_alloc: Fake unaccepted memory Message-ID: <20230403144702.uf7fhfrffypkmqy5@box.shutemov.name> References: <20230330114956.20342-1-kirill.shutemov@linux.intel.com> <20230330114956.20342-4-kirill.shutemov@linux.intel.com> <053a9ccd-4205-7a76-70c3-c256bd995a1f@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <053a9ccd-4205-7a76-70c3-c256bd995a1f@redhat.com> X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: B835E100024 X-Stat-Signature: ynqfrf4ssznw8ppf8tc1ubcgesq5zmxz X-HE-Tag: 1680533229-832167 X-HE-Meta: U2FsdGVkX19UgIGz8CfqA1Z3YYzflFxvzR2IqxF+0fcuL0TLR7o+dQOQSSk+bcJek0uavF/rqBwhs/giQgcuEc7mcFvXAbns94iHWMYwtxxSaqD+KDhcX9xMU5ok2fJRPllC92s50HDdZMLndDW57uQxS2hUXNh6BkngqLx2BTuZDZJoME0YQj7pZL+5RRVgoDlfud0002UChsIKoLW4rmqwycmoBjyl1T1Jq9o2vs5bx4YAfqzQBMP3FGLy4beyRh0hlVSJ+9VfpnfRlka1aMSh4TCZVPZUzTWFk3O6+1x+td5pTsiy3Ppkrni+SQt7y4FCYBkHpjG+Px+UNunyhOh09XIhzQLUbNR/IWAuIQv+zLS51rA9EK56TOIBCJOm88tu7Z56pMkoW/NM4Haz65pSACq5VGixApDN/Eh2FAIFHcP7RGoSXqEK1aSw8cDa40td1oNVZqMp3YJkfZatOLY8EzmWbk/VORWXbYjN0NyltGkzaq2i1AtFPgTZ+AEzhdEThqM9ctxiD82k6tqWnenyQ8EMY4M+p48YcDuvEzvSkEarMGuhSv0NwpFI3YeFuLAxMRoTTwr9sLAwyDUGVbGNYFjlnP8NwbnZlAXYacuzZR6KU/6FrCXjf7bxJ/EObVRm+c0mBNhNOHMh/lT2WsKP9m/pzLtnY00eKQnQoyD47hHXaqgvOpIKjLTjbQOTaBzrwn8LMjg+K1EltgQFNAuwphFYygyjs/dPUKz22hUhdhDzD5YnZGFTAITFILxxcBqbJo26G+ig8aQlXpB9eDn5UbomzHYzPGbHY3g52yGmLAVZFBUaSv5DlPZWOmU24j30xtX0siIj0mY26n/lBHg90lJWNGWEPsOkWc+J4KKBjf/cVX0k1rifnItc+9ajKMSnShwmLjygiKsHMP8naOmQ3w6M7d8qeiW3YgBZgT4hzvbBhUeXfyjDB5badTIdIZYl5oypChKz02FBL6N 0HRR90EA Zs6MgXi+3P2E0KBdAMg7pTAmh9aY1BzZmLB1/z5KffKmVTF/iQCGg8jxJvumajAXdfKsa767EI+tG4jbTeDT9oRBos4AWZGOKbcHdbTN00iQBjfalV5qsghbcDakTNA7loICPo6sCKyCRU62N+zBvu9Au8PtmFnBLKplUth9Qv3WCQGPOfwV83r0m2ixVCee1fay1wAHcPXkoUTWZ4oAQ9/U8EBBK06aKx71uq0VVieMnxrU0y87H7atFsiulKBuvZsQDP9K2X6sMYAyoR4Hb89gZZWvzdDWy4zvEDnSkfD1ebIiEIe/OhdW4871fAIKJznhla02pvh1drFnGdaFSgJGa7x/UbKUXW1tLIpapkezDWGpniVcYVq0VJZugd4Buqhsz 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: On Mon, Apr 03, 2023 at 04:43:08PM +0200, David Hildenbrand wrote: > On 30.03.23 13:49, Kirill A. Shutemov wrote: > > For testing purposes, it is useful to fake unaccepted memory in the > > system. It helps to understand unaccepted memory overhead to the page > > allocator. > > > > The patch allows to treat memory above the specified physical memory > > address as unaccepted. > > > > The change only fakes unaccepted memory for page allocator. Memblock is > > not affected. > > > > It also assumes that arch-provided accept_memory() on already accepted > > memory is a nop. > > > > Signed-off-by: Kirill A. Shutemov > > --- > > mm/page_alloc.c | 21 +++++++++++++++++++++ > > 1 file changed, 21 insertions(+) > > > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > > index d62fcb2f28bd..509a93b7e5af 100644 > > --- a/mm/page_alloc.c > > +++ b/mm/page_alloc.c > > @@ -7213,6 +7213,8 @@ static DEFINE_STATIC_KEY_FALSE(zones_with_unaccepted_pages); > > static bool lazy_accept = true; > > +static unsigned long fake_unaccepted_start = -1UL; > > + > > static int __init accept_memory_parse(char *p) > > { > > if (!strcmp(p, "lazy")) { > > @@ -7227,11 +7229,30 @@ static int __init accept_memory_parse(char *p) > > } > > early_param("accept_memory", accept_memory_parse); > > +static int __init fake_unaccepted_start_parse(char *p) > > +{ > > + if (!p) > > + return -EINVAL; > > + > > + fake_unaccepted_start = memparse(p, &p); > > + > > + if (*p != '\0') { > > + fake_unaccepted_start = -1UL; > > + return -EINVAL; > > + } > > + > > + return 0; > > +} > > +early_param("fake_unaccepted_start", fake_unaccepted_start_parse); > > + > > static bool page_contains_unaccepted(struct page *page, unsigned int order) > > { > > phys_addr_t start = page_to_phys(page); > > phys_addr_t end = start + (PAGE_SIZE << order); > > + if (start >= fake_unaccepted_start) > > + return true; > > + > > return range_contains_unaccepted_memory(start, end); > > } > > The "unpleasant" thing about this is, that page_contains_unaccepted() could > not be used for sanity checks because the result is static. > > For example, something like > > if (page_contains_unaccepted(page, 0)) > accept_memory(page, 0); > BUG_ON(!page_contains_unaccepted(page, 0)); > > Would work on real hardware, however, not for the fake variant. Need for raw_page_contains_unaccepted()? :P -- Kiryl Shutsemau / Kirill A. Shutemov