Received: by 2002:a05:6512:2355:0:0:0:0 with SMTP id p21csp213894lfu; Wed, 30 Mar 2022 21:17:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx3a+W7Bfd/NIcrD9ZKkLuA3KTsuZ6GkqrdnNZU2YJvAu5v8cfHvvlE/UfO4kHRJ26PLXZE X-Received: by 2002:a17:902:f78d:b0:14d:522e:deb3 with SMTP id q13-20020a170902f78d00b0014d522edeb3mr3394245pln.173.1648700229061; Wed, 30 Mar 2022 21:17:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648700229; cv=none; d=google.com; s=arc-20160816; b=qmtmukqfshnptEkdBIsPyQ4Wq7smEs1toDB8GDw7hAHBsj0+hf0BKKPlHBeZv4BLyS ML9YcONfzqmFEBJ4V2Hdv9ExiSWxXdgcoNkWNUkZDZLbKLxLT1pBBf/kGTZPZyYNJ2/A yonLvH0pqmejQjzTHxCEN3FfRiz8q1LEFC6sfqbn+gBvXemRktcs3c/oCkY2mPMfYM5m qKJzKtYlN10ui7aKMRIqVjYsBhbHtjHUqAs5XSFkgiIo284dC2VTZG/fIv+GkQroAuzS 7gQjETBet13yPTpQkTB1t42H0ojEpaPbRkKW0OFxeNX5J5sUdYTZ8bw2P1zNcIC9+OkP Zdbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=+JgqxlWLyHstIckSDKjjoCouLEg7amiGpRRymZFR/zA=; b=mje9A5jSPVgCXyCSIAFpIrXubKN8iD6IUAERKpHkNcg2ZZDMkHg+0cjzWjn3v+qIHz GPWMAYEtC9bxmE29QKgczr6ItfMDnY3e9TfGQDWF8fZkANbeMBfncTxOAcTZtHGKLrsn T5JIpuRm8heTBHJSDKtuSvC8nC7D+1xdr8qfWZ0cGo1ibVdYdiM7+Yg/5b45oa5UFSHF uHnQB3ULk4rgyXJg8wmMx+Zx69MP9pzw8LNbKBaQiQuZIFTNCQ7q+T46kXZyGDPvFtOV kNgMdima4fWR37GVsihqsuKH7Z8ODmY0d6xa7BvgHlULCP7MQc86eWuvuf/QIlNzBcZT 8cmA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=google header.b="Zh/xT7nL"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id b22-20020a056a000a9600b004fa3a8dff9dsi26375475pfl.84.2022.03.30.21.17.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Mar 2022 21:17:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=google header.b="Zh/xT7nL"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2444318C0F9; Wed, 30 Mar 2022 20:13:34 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351602AbiC3W3M (ORCPT + 99 others); Wed, 30 Mar 2022 18:29:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60062 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236716AbiC3W3L (ORCPT ); Wed, 30 Mar 2022 18:29:11 -0400 Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com [IPv6:2a00:1450:4864:20::12e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E94D1574BF for ; Wed, 30 Mar 2022 15:27:25 -0700 (PDT) Received: by mail-lf1-x12e.google.com with SMTP id k21so38285048lfe.4 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=losgg+QQmj1Uj5XBrgdLhNxDTVHHi2x06+K21WtYGw5ScfLWnTKAXRwMImMOmDYvpV f03kdyvAESkE9nWGWsVX1IGMkW0a9eUR/Tpyx3IDiLuUFNSBoOze92NDXNd0pE2PHYD/ GUGRZtYJOPdl1EH5xuXeYY+Jjjqc22zpiDQG9M0g9hKqOFrqIoV1J7+NWV+7R/UZ2vPU +dVwIeJN3E2v2JUeNtp0gq/yNKdIyzbwQAZGzH95qis8bDqfVwRcvjCkCtvqHXsANqmR 3p6KnHSt2UaOM4CM+Nncsq5N4V780uVYd4cTfOxzkesOwm+WvlfnyQgvEGlXbESAnola kJTw== X-Gm-Message-State: AOAM532FA+zTBr7+L+58egnsSMF0rh74tz1iwN4KUa6QTGGqOo1DKjb+ SMFzZ/sfSaDBHKC0NejgIkqtmAeQb324iwFR X-Received: by 2002:a05:6512:1398:b0:448:bda0:99f2 with SMTP id p24-20020a056512139800b00448bda099f2mr8369784lfa.681.1648679243940; Wed, 30 Mar 2022 15:27:23 -0700 (PDT) Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com. [209.85.208.174]) by smtp.gmail.com with ESMTPSA id k18-20020a192d12000000b0044a5ddcf5fcsm2414179lfj.226.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-f174.google.com with SMTP id v12so16914234ljd.3 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-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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