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 D17DAC3DA5D for ; Wed, 17 Jul 2024 20:05:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3396A6B0088; Wed, 17 Jul 2024 16:05:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2E8DD6B0089; Wed, 17 Jul 2024 16:05:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1B0C96B008C; Wed, 17 Jul 2024 16:05:16 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id ECFDD6B0088 for ; Wed, 17 Jul 2024 16:05:15 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 6E8B61A0CC2 for ; Wed, 17 Jul 2024 20:05:15 +0000 (UTC) X-FDA: 82350323790.30.1E8D755 Received: from mail-yw1-f172.google.com (mail-yw1-f172.google.com [209.85.128.172]) by imf02.hostedemail.com (Postfix) with ESMTP id 1D8058002D for ; Wed, 17 Jul 2024 20:05:11 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=VP6pZc+Z; spf=pass (imf02.hostedemail.com: domain of surenb@google.com designates 209.85.128.172 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721246673; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=VBSP3e5vSaJAGM6EZi3idFKFcaAopFgZHFBzjK3LCT0=; b=Dt8Kel4RlDM6hlea6945QwAF8TyDixdb5C0BdO/mbv+GajY5f7vUksvVbMdEQ+3rHMjLBP d+VC0QgTyhmaG4Cu4hOA8MB5efK2qgxXMW+gYpzboCn3toMR0f+RU3nlw0Mma64lqdhH9U ms/tHcPTIeeHFjBHZK6GC35fmYG3xpQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721246673; a=rsa-sha256; cv=none; b=y0IhHOQvdi7ujkPF59a0BdiPfMnKHv3jTdQf7Be/pVz3Epc7LFQjjYh00S9As1HsbQuy41 iQqMqVHQkaSV/IioGPy3dhZhe7zNLkEmp6GbybMHu97020q88gepswbJ7iveAMIxy8XCZu gfca2Sa7f1ds5hUFIWrppb9wnUqWlwU= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=VP6pZc+Z; spf=pass (imf02.hostedemail.com: domain of surenb@google.com designates 209.85.128.172 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-yw1-f172.google.com with SMTP id 00721157ae682-6518f8bc182so1486837b3.0 for ; Wed, 17 Jul 2024 13:05:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1721246711; x=1721851511; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=VBSP3e5vSaJAGM6EZi3idFKFcaAopFgZHFBzjK3LCT0=; b=VP6pZc+ZkZcaut5zpn2YqsLBSKGw267wJx1MKiaKbJkrnOCHS1ZKnTOPpCfFb/XREE 4greMcHGmiG3Sb0z6cOL4TQeB3Y8G6nDxn1Wi/HMgixceXJaCHc7tyNll9lZSnJmpUw3 M/ldk9w7bc/X3CxrtaH4puH/DDOFb1FHVf/i4HnvasJ6/izESDquDnu+N/vwN5BM1g8h CyKEjs1uarycXAfLWc3z007cHq3BLKXvWzsHcYgn7nAhNDKQIBiru9tYhMIci7nX8jko 7zyOvLBg0mbrQhETx7NPJw9/XV9qiJE0JBQilgRiKGIGAYykR38d/yII+nbLR1Rtu/0G BAmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721246711; x=1721851511; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VBSP3e5vSaJAGM6EZi3idFKFcaAopFgZHFBzjK3LCT0=; b=ZT3zw1FKiLSCa1uzK1XlpAonYtYFGV1Rw+jchm/qtGA6mN7m3YsYGnqizU2AsEndQc PpDhnuzRlanicQGhz3UBxGx6PIqfksr5MlRJFJACKOjDJdy3VqHzYgy0OvHnpDGvMTYC +ijrqfaGEsGuze0evQ00WF0hJleGl0hwPrmUm6rG5fcMMMvJeRWbtd74bShVURutB0Dk BkOO8jkuR+2ZtLVzuc1YajZTbXy8Am1H2XL0iQLCal29MrisvkNN4fd60+CDShxxPHcz 3sxUneCRtc5P9FbcSXtR0woxRrH1AFZO7Gkv9lFpQZ/9DXjM3W3DtitZjhcMbuY0fHU+ p3ng== X-Forwarded-Encrypted: i=1; AJvYcCWPVHoyIqVcdLAORKlNCrEVjvxLv+M1zFZcXuHZsVBH9ESyoOwjhJJpXIS/0aaRh2mdpYHhDlmbH7kUJEyoR22Ys6c= X-Gm-Message-State: AOJu0YykQkL7wOQSvuc2igJi/zC5o7ywxM/OsVYe4jLuX2ip2hH0jC/4 kkVHIcAO6g0mfNMunj4iH46RnQQiSkTsHInpq07+bot2rwyP4S0dyXFhxhapiijAYcWC9FvrZte H60QISIa9YKIST6MXKZlqiiJJBE78OjZONPwQ X-Google-Smtp-Source: AGHT+IHfPPMLVKhQIYQq+vH52LgiwBYqk+yx7jrNs0qArCy52u19+nLsf/wyM3sJ2QtC6hJrAh85tZ10Z5PJLiozSvU= X-Received: by 2002:a05:690c:827:b0:651:4b29:403c with SMTP id 00721157ae682-66607a46eadmr3959767b3.2.1721246710658; Wed, 17 Jul 2024 13:05:10 -0700 (PDT) MIME-Version: 1.0 References: <20240717181239.2510054-1-surenb@google.com> <20240717181239.2510054-2-surenb@google.com> <16286915-1350-4e6b-a0f6-deec02b7fa92@suse.cz> In-Reply-To: <16286915-1350-4e6b-a0f6-deec02b7fa92@suse.cz> From: Suren Baghdasaryan Date: Wed, 17 Jul 2024 13:04:57 -0700 Message-ID: Subject: Re: [PATCH v2 2/2] alloc_tag: outline and export free_reserved_page() To: Vlastimil Babka Cc: akpm@linux-foundation.org, kent.overstreet@linux.dev, hch@infradead.org, pasha.tatashin@soleen.com, souravpanda@google.com, keescook@chromium.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel test robot Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 1D8058002D X-Stat-Signature: bhia18iw8sim3wb8tcmggudyxaca8esf X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1721246711-853160 X-HE-Meta: U2FsdGVkX1+UioJaxI45gVTEXXWHxGYDy2gACimv/jJttKvdvoQdITzVHj8V2CUq8TCDxgOwJqUyJvq7z8WbIRndEvtk7qNR+qX2Ns3oC8rV+6/BhcE5EQbrIT3MovSZr25BeSJK4WXG7KXam+RhSF/fur8lRh6R5mvylwk076Ml8z6Cb1daAEsCSxCFQGyJV4LGA6X4s44AC5ySdOJJ1+31Ya9+GO0Pi9RcvtlbooXMqOgu5rfYQ6YOWRlqOGPrMCTrF6VyyA22GKFiM9K5OWMoN8cOMr90zZpUAOFjrZtUQKXEWkbXTdTsGR6iUaIXcueYhGUaYClaVFnC+S81NNCCH0ASpaV0uUsf7XMEe+vEV1RF/zWvSHEe3vYaNBPGgPAv6Bm19faoaWwYL8Mw3dDOt5OsCFtDatpeNM9UEM40wZy/L/H0Dmr34/s7B/p2YQkrB4i6Fte//B0OfA+wKiYgAFw5w/M/3kuN6lnad13KGaJgpbN1v6nq5+P+r2EfJqCf64TIyj/MOafw9Ob4b8+JE6WvSO+TCQ0zUsIIYk6yHW1oMRhFb1NMShjH2bpUXblxQX3AGDmLTSNz0u4k4BeYmYgYqXDUb3DqxSu/9dOlz1v6ynpQr6CCQ5/xHWH1IqWS0+gj92W5F0ueCzJDMrGObMzOiQZ0mmsAu69dB6W5d+RbchqRDP9b0Z1j/2E3YqcXdpsLus/Mc21WHHP/8AqqmmXybBE+E6z/R76D4kbSqZz9Ov8YEdMCumGGnNvqiWwGkskxJMTzqUQ80N+C7nxIOVmNxLmnqu1Hzcx/2Zuwwg8ncKAUAXb3mPjQ94/UdHIXmQkDKORKTp3V+4UP78atHg9rIJdZ+w9fLNMIzloNjuNAg+z3y997t0JIletDhS38qLtsNLF1DgphA9laK7MjRSTx7GEXUqEH6BYqsJEowDbzfYeenoHWYFmUPziWVIGieRAShTR/CFHw7Ez wm5XwGrM TaUaBhWmFO72G8PuliXuXRZFK4023GfQalhQXLeUPKJv2fWzfQAxgoXgOutMtr37UkSgi+YaeMFd7rHAPPKXe3TENL5u5Fu0mzZv38sml9uat1USZiweXL0PybEjhcW2VjbdWry/BEZyAUlBz2p3945QEH2+Twjh/2s1vt+5U/t7ryzR9SZDwsD9fA0pN57zjegErC2UohuK9mUjsAl2RzvjkDcBRhvLo/RuhRaIg8/cARvGW1PM5LEuQ/UBmsZWEO+gwZ+1ipxFUrnqs6ZJkvH/HxoJtnOrToJ+ehteJbRpFAQOYgZj/7kEY0zcn65S17n/KyYznwvYSux4r0NSIa8sMnkeJSD84Qaun4i0rtPniI9qJJTkV2lYOetasxEjozGXa 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: List-Subscribe: List-Unsubscribe: On Wed, Jul 17, 2024 at 12:36=E2=80=AFPM Vlastimil Babka w= rote: > > On 7/17/24 8:12 PM, Suren Baghdasaryan wrote: > > Outline and export free_reserved_page() because modules use it and it > > in turn uses page_ext_{get|put} which should not be exported. The same > > result could be obtained by outlining {get|put}_page_tag_ref() but that > > would have higher performance impact as these functions are used in > > more performance critical paths. > > > > Fixes: dcfe378c81f7 ("lib: introduce support for page allocation taggin= g") > > Reported-by: kernel test robot > > Closes: https://lore.kernel.org/oe-kbuild-all/202407080044.DWMC9N9I-lkp= @intel.com/ > > Suggested-by: Christoph Hellwig > > Suggested-by: Vlastimil Babka > > Signed-off-by: Suren Baghdasaryan > > Acked-by: Vlastimil Babka > > Are these two patches now stable@ material as 6.10 build is broken on ppc= 64 > with alloc taging enabled? I tested them with that specific configuration mentioned in the bug report and with several usual ones I use. Yeah, I guess from now on all such fixes should have Cc: stable@vger.kernel.org # v6.10 > > > --- > > Changes since v1 [1] > > - Outlined and exported free_reserved_page() in place of {get|put}_page= _tag_ref, > > per Vlastimil Babka > > > > [1] https://lore.kernel.org/all/20240717011631.2150066-2-surenb@google.= com/ > > > > include/linux/mm.h | 16 +--------------- > > mm/page_alloc.c | 17 +++++++++++++++++ > > 2 files changed, 18 insertions(+), 15 deletions(-) > > > > diff --git a/include/linux/mm.h b/include/linux/mm.h > > index eb7c96d24ac0..b58bad248eef 100644 > > --- a/include/linux/mm.h > > +++ b/include/linux/mm.h > > @@ -3177,21 +3177,7 @@ extern void reserve_bootmem_region(phys_addr_t s= tart, > > phys_addr_t end, int nid); > > > > /* Free the reserved page into the buddy system, so it gets managed. *= / > > -static inline void free_reserved_page(struct page *page) > > -{ > > - if (mem_alloc_profiling_enabled()) { > > - union codetag_ref *ref =3D get_page_tag_ref(page); > > - > > - if (ref) { > > - set_codetag_empty(ref); > > - put_page_tag_ref(ref); > > - } > > - } > > - ClearPageReserved(page); > > - init_page_count(page); > > - __free_page(page); > > - adjust_managed_page_count(page, 1); > > -} > > +void free_reserved_page(struct page *page); > > #define free_highmem_page(page) free_reserved_page(page) > > > > static inline void mark_page_reserved(struct page *page) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > > index 9ecf99190ea2..7d2fa9f5e750 100644 > > --- a/mm/page_alloc.c > > +++ b/mm/page_alloc.c > > @@ -5805,6 +5805,23 @@ unsigned long free_reserved_area(void *start, vo= id *end, int poison, const char > > return pages; > > } > > > > +void free_reserved_page(struct page *page) > > +{ > > + if (mem_alloc_profiling_enabled()) { > > + union codetag_ref *ref =3D get_page_tag_ref(page); > > + > > + if (ref) { > > + set_codetag_empty(ref); > > + put_page_tag_ref(ref); > > + } > > + } > > + ClearPageReserved(page); > > + init_page_count(page); > > + __free_page(page); > > + adjust_managed_page_count(page, 1); > > +} > > +EXPORT_SYMBOL(free_reserved_page); > > + > > static int page_alloc_cpu_dead(unsigned int cpu) > > { > > struct zone *zone; >