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 28990C54E64 for ; Mon, 25 Mar 2024 16:22:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A124F6B0083; Mon, 25 Mar 2024 12:22:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9C41C6B0085; Mon, 25 Mar 2024 12:22:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 889CB6B0087; Mon, 25 Mar 2024 12:22:14 -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 7A6436B0083 for ; Mon, 25 Mar 2024 12:22:14 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 0ED711A01CD for ; Mon, 25 Mar 2024 16:22:14 +0000 (UTC) X-FDA: 81936078588.18.23DFFCE Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf05.hostedemail.com (Postfix) with ESMTP id 382DD10001E for ; Mon, 25 Mar 2024 16:22:10 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="OitADZr/"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=eCcozfZF; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="OitADZr/"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=eCcozfZF; dmarc=none; spf=pass (imf05.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.131 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=1711383731; 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=8pMQ/oo81Y3FaZHkSy9sDeQffPP6Xckn73dbgRd3Hhg=; b=OBMR1jlxklFixQdo3G+vKH/ISGOwjDGRrjV34YRQpTVz5qz+43r4p4TNEE4EvKhMNUQfx8 L9CpKlvSc9nf8Wuatmbfmb4F1RIa+U9ZIrORl4fI6vK1on4BzdqcUKgqfEBEokaOtBuIOT FUbYComZ9FnBY2lqOaH16QA5AxT+CyI= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="OitADZr/"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=eCcozfZF; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="OitADZr/"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=eCcozfZF; dmarc=none; spf=pass (imf05.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=vbabka@suse.cz ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711383731; a=rsa-sha256; cv=none; b=KlcpYBCpLkgEsy8D85QQD0QOPYRO0Pon34gdiYXjeSYwvTJt/jyHwkM+szoYzI4XUMReP5 MGKuuPCTx/+rj2so1lXzYBDvwhepIbQQEIqBWp/kuWTVj132S0d9DWrJccBakGod6FKIOM 9j43k986tv/6E49am50uZp4J4ig6RD8= Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 67C1F5C8FC; Mon, 25 Mar 2024 16:22:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1711383729; 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; bh=8pMQ/oo81Y3FaZHkSy9sDeQffPP6Xckn73dbgRd3Hhg=; b=OitADZr/dd+M3VXCCcIh1qtmFJkg0ojHQK8Vey6CMHdl15slRMfkP3XM7yMfQfw+iGNRE0 YDVTxkkkkwLvYDEtivoWK0rVH+he8BTTH3yx0ifxr7eRJqeSfiqgG8MvpbeSCvgYFU6tKM 7sg+7LI4QIP5B5ikL6fe8MHRI/gA/ew= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1711383729; 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; bh=8pMQ/oo81Y3FaZHkSy9sDeQffPP6Xckn73dbgRd3Hhg=; b=eCcozfZFcSUsbvTGonPLFjaOWfJfg9TNNuUBK9UUtVWDsDURNR64FI9Jzolc6FgbHTTKDa fkmjO6bYLtMrcMBQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1711383729; 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; bh=8pMQ/oo81Y3FaZHkSy9sDeQffPP6Xckn73dbgRd3Hhg=; b=OitADZr/dd+M3VXCCcIh1qtmFJkg0ojHQK8Vey6CMHdl15slRMfkP3XM7yMfQfw+iGNRE0 YDVTxkkkkwLvYDEtivoWK0rVH+he8BTTH3yx0ifxr7eRJqeSfiqgG8MvpbeSCvgYFU6tKM 7sg+7LI4QIP5B5ikL6fe8MHRI/gA/ew= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1711383729; 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; bh=8pMQ/oo81Y3FaZHkSy9sDeQffPP6Xckn73dbgRd3Hhg=; b=eCcozfZFcSUsbvTGonPLFjaOWfJfg9TNNuUBK9UUtVWDsDURNR64FI9Jzolc6FgbHTTKDa fkmjO6bYLtMrcMBQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 51F6E13503; Mon, 25 Mar 2024 16:22:09 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id mm2XE7GkAWaRFgAAD6G6ig (envelope-from ); Mon, 25 Mar 2024 16:22:09 +0000 Message-ID: <47ba1e37-6431-44c7-b809-61c7bd832893@suse.cz> Date: Mon, 25 Mar 2024 17:22:09 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 05/10] mm: page_alloc: fix move_freepages_block() range error Content-Language: en-US To: Johannes Weiner , Andrew Morton Cc: Mel Gorman , Zi Yan , "Huang, Ying" , David Hildenbrand , linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20240320180429.678181-1-hannes@cmpxchg.org> <20240320180429.678181-6-hannes@cmpxchg.org> From: Vlastimil Babka In-Reply-To: <20240320180429.678181-6-hannes@cmpxchg.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 382DD10001E X-Stat-Signature: 3r35shsb56mdxu3gb5xbai1cqcwc11x8 X-Rspam-User: X-HE-Tag: 1711383730-259806 X-HE-Meta: U2FsdGVkX1+ByKRdoqhqV9ulFUI45DPH/0MQZ3LIZRJ1GHWXGO4jTfokvBiuNVDOkFttLe7bogj/+yGJ8fgKDe7eWiVSbjQPv6Fkd4Sg64zjxkS8CvbkBrWLHCDrDAMkBb5bgW57vgpQKm5JrUdrKCopa2MPu1fost7mnYZ7T3nOeDyUx8gGQnImjU3+1HOftI3DzOke1E1NXK2eGid+eMd3kgdNkskMtpRDLK7Reo7RJU9k2LCoQLtt48l4fPkX2Htuo5tx3oNX0wjTxTw5daiKXLNar2207sFSf2KWVzHwvknQzVpJqu25lfIVFyaIHi7xBTpwxCb/zDnEL5bYlz87vO2WfytxmEk5zqLj7FatA/k+1ELYfPGNffttmGonC1WHBi5XDtJsFUYVGelAsUZ/sgBVLLGxBpIPxe2z/mW7vlhvEmld8ZEoR7jmOwv+Fmw7Yc+S5AppOQCK3NvBIbxI0yKkRlYzt6OxyGAFWPW8wrexizETCS9wl98WkyAP0cid2IqKHkbyqTKn+KoNr9C+Cj1MEvd//pBsbSuUXnn8T95kFcC0dye+Pnhi2ksALSxQVeZ4/JP9BbOriK0UzktuTKLw0xvCojRL+XCCPYplJYe3bvEZpGOHLkciKELREV0GZA/305p6BrZGOC4D6EEX7u0SS85ubRJpfjiYZ50FM3ZSgC9Fz0SwcQk01qalYwOqk7wUSWOcbDN/kuonVRvWAaZ9mjxuQ8onFnH9UEYsO6hBprv3rYpBTJLAP5UPgkeC/Jwesz6DOWQshno9R/isEOiGD+Xh21ICRrRT00eodxBiDVQfadPXd5H7YAVCQzNClc8NRAGCO7+8DYrquxC/o+He2L4LBgNzaUo7FhZPNbSDXY0aG8lkX2OFXnqy0rcz8yp58uqK01HWDDc630Tsc/RCbetUgJR18nakJ+bTfOr78hFusgXHtfADjU2tOkUhOqR/QxHMmHBI+51 FEFsS3WB SYmVM9c8Yhqr8uhMpjkn3XksrPGsus1vSVaW5Qc8GYdMNToZfiRTEzyDcquUPIwv/PQGaLgFFbDEua6G574Tv2nD5nyNqgT9S0DBPt8R3uIO5Wss0eYiMIEwVXFR8abBwXusAlO/eq9FFoQ8VeuPvbJQP5fz2BzT91qOfDTDxSwcVtWgDNLrLnw+Dik9+ZESI+Hxj6fBCCLYhXX2GnZTFzKbZKU8LuI2W1dMcYctcjfcxWG+7VTcg/uxjJLYx7aCX35Hou8Aj+ehK93Pgt8yq9To4YYcP2rRT86L1pOPNccNZ4RUGRWMITmLnXRyF9zvJz5qd/ApGSz2hzxttvg3ZAOl53nyXirtm6n0D6MiYqjPfJI4= 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 3/20/24 7:02 PM, Johannes Weiner wrote: > When a block is partially outside the zone of the cursor page, the > function cuts the range to the pivot page instead of the zone > start. This can leave large parts of the block behind, which > encourages incompatible page mixing down the line (ask for one type, > get another), and thus long-term fragmentation. > > This triggers reliably on the first block in the DMA zone, whose > start_pfn is 1. The block is stolen, but everything before the pivot > page (which was often hundreds of pages) is left on the old list. > > Signed-off-by: Johannes Weiner Reviewed-by: Vlastimil Babka > --- > mm/page_alloc.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index a1376a6fe7e4..7373329763e6 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -1645,9 +1645,15 @@ int move_freepages_block(struct zone *zone, struct page *page, > start_pfn = pageblock_start_pfn(pfn); > end_pfn = pageblock_end_pfn(pfn) - 1; > > - /* Do not cross zone boundaries */ > + /* > + * The caller only has the lock for @zone, don't touch ranges > + * that straddle into other zones. While we could move part of > + * the range that's inside the zone, this call is usually > + * accompanied by other operations such as migratetype updates > + * which also should be locked. > + */ > if (!zone_spans_pfn(zone, start_pfn)) > - start_pfn = pfn; > + return 0; > if (!zone_spans_pfn(zone, end_pfn)) > return 0; >