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 3BE29EE7FF4 for ; Mon, 11 Sep 2023 16:14:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B42A86B0296; Mon, 11 Sep 2023 12:14:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id ACCC96B0297; Mon, 11 Sep 2023 12:14:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 91F436B0298; Mon, 11 Sep 2023 12:14:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 7B7976B0296 for ; Mon, 11 Sep 2023 12:14:05 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 2A5DA40919 for ; Mon, 11 Sep 2023 16:14:05 +0000 (UTC) X-FDA: 81224813250.01.8D6E577 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by imf16.hostedemail.com (Postfix) with ESMTP id 036D918002C for ; Mon, 11 Sep 2023 16:14:02 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=hGUePpX6; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=m5H4tCaB; dmarc=none; spf=pass (imf16.hostedemail.com: domain of vbabka@suse.cz designates 195.135.220.28 as permitted sender) smtp.mailfrom=vbabka@suse.cz ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1694448843; 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=xIAPPZSGR1irVlnoEVDmksfeQUhXgr0/wuH56ipIsSo=; b=aRhJ2J926jssbk8kLjOmYPF8iv2DBbnoojdaQBcTHNWwmm+GZdVye4AdjRgKwLQGZBn3f1 zLfqIgJm+QfZ6erX3BFkiow/dmQY2IYmbTKN3PGSIvofubt955arAMf1nqntqSX2AVBqpX XD8NLByTHL77glNmpsWZt1GiQfpYzkY= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=hGUePpX6; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=m5H4tCaB; dmarc=none; spf=pass (imf16.hostedemail.com: domain of vbabka@suse.cz designates 195.135.220.28 as permitted sender) smtp.mailfrom=vbabka@suse.cz ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1694448843; a=rsa-sha256; cv=none; b=TMYVr8ynWmHXTg2Bi+R/3FCKO/nkM3Kkeq2oN47P4Y+WYOe/Tlh7B4ELjws/sJKgRprCPk qs+DcZA1edcK6RZ0bSkQpofWEjcV3VkTboMxIQdWoE5Vazz31Z9wXoS88mZg99pYEzm3+l qvtMhen3ZxwIw5a9Y+gkGu59k1dmbuk= Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 4C59621842; Mon, 11 Sep 2023 16:14:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1694448840; h=from:from:reply-to: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:autocrypt:autocrypt; bh=xIAPPZSGR1irVlnoEVDmksfeQUhXgr0/wuH56ipIsSo=; b=hGUePpX6IGz+S3javqQr6Ra6HdZJfauKeZW2oI0F35uGA0jBxLGlYwyqcX98GFDpNX479q 7NV/Vn2w79NCE/qZkq87qlHePjn+z9xHHtlIITWjqMdQOtkN+G8VirHTdBR3mObVbuZd5Y JCkYejhji9YOhcVKFuk3EMjPuIer92w= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1694448840; h=from:from:reply-to: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:autocrypt:autocrypt; bh=xIAPPZSGR1irVlnoEVDmksfeQUhXgr0/wuH56ipIsSo=; b=m5H4tCaBxmu4H3QExqGFNozeiWGQ2s/i6g0VXg9u3TfLc3f1Bqk3e3Jxdm3uxYtj8qrRcj BKlBjqK6wtI3cfBw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 1FF0913780; Mon, 11 Sep 2023 16:14:00 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id a9sZB8g8/2SGAwAAMHmgww (envelope-from ); Mon, 11 Sep 2023 16:14:00 +0000 Message-ID: Date: Mon, 11 Sep 2023 18:13:59 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm: page_alloc: fix cma pageblock was stolen in rmqueue fallback Content-Language: en-US To: Johannes Weiner , Mel Gorman Cc: Lecopzer Chen , akpm@linux-foundation.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, nsaenzju@redhat.com, yj.chiang@mediatek.com, Mark-pk Tsai , Joe Liu References: <20230830111332.7599-1-lecopzer.chen@mediatek.com> <20230905090922.zy7srh33rg5c3zao@techsingularity.net> <20230911155727.GA102237@cmpxchg.org> From: Vlastimil Babka Autocrypt: addr=vbabka@suse.cz; keydata= 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 tR6d+JzM8nFUZA== In-Reply-To: <20230911155727.GA102237@cmpxchg.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 036D918002C X-Stat-Signature: q4mo5mmfitekpzr3xhrifne7ecpopbus X-Rspam-User: X-HE-Tag: 1694448842-682458 X-HE-Meta: U2FsdGVkX18mQxC2li7M/dj9aWcI+jkcAESjfTCPC5Z0+XI0obNHN+FRsFk47Mnvs0z8mjnjAOhWdjGn6vMP9WYEca4HZVm5mFtJtgrR/BjsYKXsOE4iB+SkE2PmQV/Gp46A1bPaImp3baytx4vrPARLO+TohfwuHLLLZTHtAI7xq6SdK+s6FFXHDYWMRPcI/ymx0q7nM2sI3dAT8WH+u6DcLvRxo33+3LhsNnXwLjD85Lxvi7z2nTPZcQsNtW/AA2iMOTOGNRhUFab79yfMskdOSSbNhidRpCo0YcVJ61R7wMhOPhP/jm94iuNQuUGWfzwRmwS4T+zF7KpsjZU0Ap9GTxvUIzHSlO5bEhW1FyDkpJ8o7fFKvNm2/cxaC1hjIvMLyD/RyrMmNGpFjp9i4xwPbKkpu9snjbaSdj0FBNr7B5Dv0tckfCkxuWluHx3Cjn8Fmvde1f+z1LOfxfnwl9Awf82MqDH7Gjh7+VovKSMfmb8IB2pwF5obfIQZZRZtArUXVWErhJFq9FTRG1c4cfITfLgCZwwCoMs3rREA6Zt+4C0tY4xO1ex2KN9aVKRKz5EejTXTN1mulq0JmQ0hlcHiN+xqbUzi865CI8+BGkeKm9PZrIZ2zfq6LLI+oPheCn7VRJeNXmYoIZ9Ics88NM2vVPMIc22RTzIK6lKIrYrt5VpT3x6tyNhGD6ssqRz3KpNurkClf0K6LbxEpUzYhf4BxJ40FVkItWCSeaIJHhXp8YCJxX2HvV4b/KyJLlhKxjHAmG904AH8i2nxiv/YhtH7h4tCl8pMBwIii3pSrDo7W9hhjnjQZm8H+mzYn8TLM1AImasngpgB5WLTr/W9ZKKyhqy0rXzTTbLVod4vE30mYBMa/psuCt+WkuV2dT5b4Y7uB0udRB1i3IFy2ID/uMcD6pksX9DQZuCofPwTWqH151Y8hxp5H1bIYlEaQ6aNS29/plnUu0apLYMgo2v D+AQZIzO TwKi9qduC65W4GdtlKsnt/5azQe+nTIZ0lN2xIdfqpy7T9Q1GxICOabLr/Y1PeWSeCLFqkfNnzHctqy9HAIaUPHR4V9MkJV19BE0h7Kidz0ojOeC7C+/7bM9Q6DbFa3udkaHvFDiUmvbDSbq2J2b4MZTtGJapgltpusCfOqEj1gY1r2sgNqnc8947irKgBYlYyxsb/lHRxe5gbnh1oNBJEaCOIezfWxbHI5Zkv+oHgsYr40+ZC06CfaDBXVHF6X77U1/2hFy8eZgv+NbYezR088o4TEy5D0o/p9a3Cr4UTDoqT8BeVvH6ja3lxu7ZTjCHTR6RJZFdCWnP0GR7+KyDpwlZy1cfYq4urtBP1IHNUS8VrHQk2jiJXeo7DPCf3Z/pDB8DUZy3uS4d2dGijg7CiX+yPwdFaijZitS5lpRFwcfCtM1uGGEty1mTir5LcvBGasrz3rpRj4hTLhSOP52k7bYRDoxqWmirPq85ViSs+g91uqn62Ldk0vqdFLt6dUMwlvL3n8nGS2k5yfI= 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 9/11/23 17:57, Johannes Weiner wrote: > On Tue, Sep 05, 2023 at 10:09:22AM +0100, Mel Gorman wrote: >> mm: page_alloc: Free pages to correct buddy list after PCP lock contention >> >> Commit 4b23a68f9536 ("mm/page_alloc: protect PCP lists with a spinlock") >> returns pages to the buddy list on PCP lock contention. However, for >> migratetypes that are not MIGRATE_PCPTYPES, the migratetype may have >> been clobbered already for pages that are not being isolated. In >> practice, this means that CMA pages may be returned to the wrong >> buddy list. While this might be harmless in some cases as it is >> MIGRATE_MOVABLE, the pageblock could be reassigned in rmqueue_fallback >> and prevent a future CMA allocation. Lookup the PCP migratetype >> against unconditionally if the PCP lock is contended. >> >> [lecopzer.chen@mediatek.com: CMA-specific fix] >> Fixes: 4b23a68f9536 ("mm/page_alloc: protect PCP lists with a spinlock") >> Reported-by: Joe Liu >> Signed-off-by: Mel Gorman >> --- >> mm/page_alloc.c | 8 +++++++- >> 1 file changed, 7 insertions(+), 1 deletion(-) >> >> diff --git a/mm/page_alloc.c b/mm/page_alloc.c >> index 452459836b71..4053c377fee8 100644 >> --- a/mm/page_alloc.c >> +++ b/mm/page_alloc.c >> @@ -2428,7 +2428,13 @@ void free_unref_page(struct page *page, unsigned int order) >> free_unref_page_commit(zone, pcp, page, migratetype, order); >> pcp_spin_unlock(pcp); >> } else { >> - free_one_page(zone, page, pfn, order, migratetype, FPI_NONE); >> + /* >> + * The page migratetype may have been clobbered for types >> + * (type >= MIGRATE_PCPTYPES && !is_migrate_isolate) so >> + * must be rechecked. >> + */ >> + free_one_page(zone, page, pfn, order, >> + get_pcppage_migratetype(page), FPI_NONE); >> } >> pcp_trylock_finish(UP_flags); >> } >> > > I had sent a (similar) fix for this here: > > https://lore.kernel.org/lkml/20230821183733.106619-4-hannes@cmpxchg.org/ > > The context wasn't CMA, but HIGHATOMIC pages going to the movable > freelist. But the class of bug is the same: the migratetype tweaking > really only applies to the pcplist, not the buddy slowpath; I added a > local pcpmigratetype to make it more clear, and hopefully prevent bugs > of this nature down the line. Seems to be the cleanest solution to me, indeed. > I'm just preparing v2 of the above series. Do you want me to break > this change out and send it separately? Works for me, if you combine the it with the information about what commit that fixes, the CMA implications reported, and Cc stable.