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 22AF1C433EF for ; Wed, 30 Mar 2022 22:27:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AB1118D0001; Wed, 30 Mar 2022 18:27:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A61146B0073; Wed, 30 Mar 2022 18:27:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9297E8D0001; Wed, 30 Mar 2022 18:27:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0184.hostedemail.com [216.40.44.184]) by kanga.kvack.org (Postfix) with ESMTP id 8349D6B0072 for ; Wed, 30 Mar 2022 18:27:26 -0400 (EDT) Received: from smtpin23.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 35082182A6CB7 for ; Wed, 30 Mar 2022 22:27:26 +0000 (UTC) X-FDA: 79302490092.23.FF9D2FA Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54]) by imf24.hostedemail.com (Postfix) with ESMTP id A36B0180006 for ; Wed, 30 Mar 2022 22:27:25 +0000 (UTC) Received: by mail-lf1-f54.google.com with SMTP id z12so24489187lfu.10 for ; Wed, 30 Mar 2022 15:27:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=+JgqxlWLyHstIckSDKjjoCouLEg7amiGpRRymZFR/zA=; b=Zh/xT7nLqNtODeuyx1eQC7EpPmZIj3FiqNlPnzXjYLYHJ+k4IHf5mbNqoul5HPReqR /V095x+Kk7ugjydArPyEOMrUwWT7GYESSfSWWIVaRi8gGRjjNBB/EUy8l6WeyXS2y1/J KNqB8W1MvIyho5mpJTPY6X6jtugnj84PJNP5o= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=+JgqxlWLyHstIckSDKjjoCouLEg7amiGpRRymZFR/zA=; b=MwE3BZcFA0d8/OexS+xCXCbCOqOLSkrojv4XCOfXWcLcCmngzwOkXUSIOvL5TNx4ox y0Uyl5htvqpab2O879xcIF1ZvwFt1O24b9LODJD7yPr6RRibTJRAvMnXvUj/PgekcTjA 5zZGHwgbBTjr104l4WvZuDII1aiZDMj9oVtzD24bdeWR0G/LOYzkeSsHC6qj/I0pZ70s ih+9lFdhG/Aurcbx18bO6RCYmJ0aVgCwf5xqO1okPMq8KHykwyBoMERAbjRlJPppq/WY OLmdLHzmaa4tiLoAELjb55wq5+E/qLGouwzcU/yK8J+njsJ5jJnhE5KfmdGJKK3jG6De gpiA== X-Gm-Message-State: AOAM5333ZYmdkx0B5wwPw/j09ENgw7fe2rXHBgrJAbrZlK5KNSFbFHLh lDORS8pcD7VgY+rlwE0KRo4KjoWf1WHSL2wt X-Google-Smtp-Source: ABdhPJx80Z39IDxHca93YJQW+gIkXLrj+EfdOqlCOja6m4yVTBC+1SeN6/YIXwjCCR/EsPLbaNCoqQ== X-Received: by 2002:a19:430e:0:b0:44a:23af:4d1a with SMTP id q14-20020a19430e000000b0044a23af4d1amr8817810lfa.316.1648679243551; Wed, 30 Mar 2022 15:27:23 -0700 (PDT) Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com. [209.85.208.180]) by smtp.gmail.com with ESMTPSA id y22-20020a2e9796000000b00249b86a210bsm2043282lji.91.2022.03.30.15.27.21 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 30 Mar 2022 15:27:21 -0700 (PDT) Received: by mail-lj1-f180.google.com with SMTP id s13so12570752ljd.5 for ; Wed, 30 Mar 2022 15:27:21 -0700 (PDT) X-Received: by 2002:a05:651c:1213:b0:247:e2d9:cdda with SMTP id i19-20020a05651c121300b00247e2d9cddamr8732207lja.443.1648679241112; Wed, 30 Mar 2022 15:27:21 -0700 (PDT) MIME-Version: 1.0 References: <20220330221238.396357-1-zi.yan@sent.com> In-Reply-To: <20220330221238.396357-1-zi.yan@sent.com> From: Linus Torvalds Date: Wed, 30 Mar 2022 15:27:04 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] mm: page_alloc: validate buddy before check its migratetype. To: Zi Yan Cc: Steven Rostedt , David Hildenbrand , Vlastimil Babka , Mel Gorman , Mike Rapoport , Oscar Salvador , Andrew Morton , Linux-MM , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: 478nzcjjwng6kahmw81zyan5ni7wdac7 Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b="Zh/xT7nL"; dmarc=none; spf=pass (imf24.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.167.54 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: A36B0180006 X-HE-Tag: 1648679245-26623 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 Wed, Mar 30, 2022 at 3:12 PM Zi Yan wrote: > > Whenever a buddy page is found, page_is_buddy() should be called to > check its validity. Add the missing check during pageblock merge check. Applied. > buddy_pfn = __find_buddy_pfn(pfn, order); > buddy = page + (buddy_pfn - pfn); > + > + if (!page_is_buddy(page, buddy, order)) > + goto done_merging; I wonder if that sequence shouldn't be made some helper function. Also, looking around, I will note that unset_migratetype_isolate() in mm/page_isolation.c is missing that "page_is_buddy()" check. I _think_ it's probably ok because we checked if (PageBuddy(page)) { on the (original, non-puddy) page, and then we only use the buddy page pointer for that if (!is_migrate_isolate_page(buddy)) { and it's been like that for a _loong_ time. But honestly, it feels like we would be better off with always having the page_is_buddy() check anyway. Or is there some reason why we don't want it here? Linus