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 smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 98424C433FE for ; Tue, 25 Jan 2022 13:19:55 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 5EE9460B45; Tue, 25 Jan 2022 13:19:55 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8RaAKGlnX8C8; Tue, 25 Jan 2022 13:19:54 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp3.osuosl.org (Postfix) with ESMTPS id 2E68460B35; Tue, 25 Jan 2022 13:19:54 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 06793C0039; Tue, 25 Jan 2022 13:19:54 +0000 (UTC) Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists.linuxfoundation.org (Postfix) with ESMTP id CBA10C002F; Tue, 25 Jan 2022 13:19:52 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id B9FB960B45; Tue, 25 Jan 2022 13:19:52 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HrIsozwVbZST; Tue, 25 Jan 2022 13:19:51 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by smtp3.osuosl.org (Postfix) with ESMTPS id 7502760B35; Tue, 25 Jan 2022 13:19:51 +0000 (UTC) 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 C010621129; Tue, 25 Jan 2022 13:19:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1643116788; 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=W7ugEwGd8z1ciGcssO9NOuo6Y70kmTmAuz+RVBNhgQo=; b=OAQFnCJ9fJXwRf+XqgaH8z+GcXVjo9HxXhbpGWNi3xMFKm4awPudNVTJaJaXXs1dSxQj1I /htMCb/jE9Jo8zsCT8DVooqvtd6XAyQmf3X5bQaNYmHaXyRhOYiGujXcl4ae/nW4gqHHZG iIctFqchskLEpoSkcCX/nH6b9I06d44= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1643116788; 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=W7ugEwGd8z1ciGcssO9NOuo6Y70kmTmAuz+RVBNhgQo=; b=URWUxsOGxCPGESRThyQ7b2f2CoH5apJnVqlsxfRb5qW9qyCiYDfA7/lidO7XlY8xzuv09P oqD7gCa//062VVAA== 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 F330613DE5; Tue, 25 Jan 2022 13:19:47 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id TzS6OPP472GbRwAAMHmgww (envelope-from ); Tue, 25 Jan 2022 13:19:47 +0000 Date: Tue, 25 Jan 2022 14:19:46 +0100 From: Oscar Salvador To: Zi Yan Subject: Re: [PATCH v4 3/7] mm: page_isolation: check specified range for unmovable pages Message-ID: <20220125131943.GA5609@linux> References: <20220119190623.1029355-1-zi.yan@sent.com> <20220119190623.1029355-4-zi.yan@sent.com> <6AEF32AC-4E0D-41E0-8850-33B8BD955920@nvidia.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <6AEF32AC-4E0D-41E0-8850-33B8BD955920@nvidia.com> User-Agent: Mutt/1.10.1 (2018-07-13) Cc: Mel Gorman , David Hildenbrand , Michael Ellerman , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org, Eric Ren , Robin Murphy , Christoph Hellwig , Vlastimil Babka X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Development issues for Linux IOMMU support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: iommu-bounces@lists.linux-foundation.org Sender: "iommu" T24gTW9uLCBKYW4gMjQsIDIwMjIgYXQgMTI6MTc6MjNQTSAtMDUwMCwgWmkgWWFuIHdyb3RlOgo+ IFlvdSBhcmUgcmlnaHQuIFNvcnJ5IGZvciB0aGUgY29uZnVzaW9uLiBJIHRoaW5rIGl0IHNob3Vs ZCBiZQo+IOKAnFBhZ2UgaXNvbGF0aW9uIGlzIGRvbmUgYXQgbGVhc3Qgb24gbWF4KE1BWF9PUkRF Ul9OUl9QQUVHUywKPiBwYWdlYmxvY2tfbnJfcGFnZXMpIGdyYW51bGFyaXR5LuKAnQo+IAo+IG1l bW9yeV9ob3RwbHVnIHVzZXMgUEFHRVNfUEVSX1NFQ1RJT04uIEl0IGlzIGdyZWF0ZXIgdGhhbiB0 aGF0LgoKT3IganVzdCBzcGVjaWZ5IHRoYXQgdGhlIG1heChNQVhfT1JERVJfTlJfUEFHRVMsIHBh Z2VibG9ja19ucl9wYWdlcykgZ3JhbnVyYWxpdHkKb25seSBjb21lcyBmcm9tIGFsbG9jX2NvbnRp Z19yYW5nZSBhdCB0aGUgbW9tZW50LiBPdGhlciBjYWxsZXJzIG1pZ2h0IHdhbnQKdG8gd29yayBp biBvdGhlciBncmFudWxhcml0eSAoZS5nOiBtZW1vcnktaG90cGx1ZykgYWx0aG91Z2ggdWx0aW1h dGVseSB0aGUKcmFuZ2UgaGFzIHRvIGJlIGFsaWduZWQgdG8gc29tZXRoaW5nLgoKPiA+IFRydWUg aXMgdGhhdCBzdGFydF9pc29sYXRlX3BhZ2VfcmFuZ2UoKSBleHBlY3RzIHRoZSByYW5nZSB0byBi ZSBwYWdlYmxvY2sgYWxpZ25lZCBhbmQgd29ya3MgaW4gcGFnZWJsb2NrX25yX3BhZ2VzIGNodW5r cywgYnV0IEkgZG8gbm90IHRoaW5rIHRoYXQgaXMgd2hhdCB5b3UgbWVhbnQgdG8gc2F5IGhlcmUu Cj4gCj4gQWN0dWFsbHksIHN0YXJ0X2lzb2xhdGVfcGFnZV9yYW5nZSgpIHNob3VsZCBleHBlY3Qg bWF4KE1BWF9PUkRFUl9OUl9QQUVHUywKPiBwYWdlYmxvY2tfbnJfcGFnZXMpIGFsaWdubWVudCBp bnN0ZWFkIG9mIHBhZ2VibG9jayBhbGlnbm1lbnQuIEl0IHNlZW1zIHRvCj4gYmUgYW4gdW5jb3Zl cmVkIGJ1ZyBpbiB0aGUgY3VycmVudCBjb2RlLCBzaW5jZSBhbGwgY2FsbGVycyB1c2VzIGF0IGxl YXN0Cj4gbWF4KE1BWF9PUkRFUl9OUl9QQUVHUywgcGFnZWJsb2NrX25yX3BhZ2VzKSBhbGlnbm1l bnQuCj4gCj4gVGhlIHJlYXNvbiBpcyB0aGF0IGlmIHN0YXJ0X2lzb2xhdGVfcGFnZV9yYW5nZSgp IGlzIG9ubHkgcGFnZWJsb2NrIGFsaWduZWQKPiBhbmQgYSBjYWxsZXIgd2FudHMgdG8gaXNvbGF0 ZSBvbmUgcGFnZWJsb2NrIGZyb20gYSBNQVhfT1JERVItMQo+ICgyIHBhZ2VibG9ja3Mgb24geDg0 XzY0IHN5c3RlbXMpIGZyZWUgcGFnZSwgdGhpcyB3aWxsIGxlYWQgdG8gTUlHUkFURV9JU09MQVRF Cj4gYWNjb3VudGluZyBlcnJvci4gVG8gYXZvaWQgaXQsIHN0YXJ0X2lzb2xhdGVfcGFnZV9yYW5n ZSgpIG5lZWRzIHRvIGlzb2xhdGUKPiB0aGUgbWF4KE1BWF9PUkRFUl9OUl9QQUVHUywgcGFnZWJs b2NrX25yX3BhZ2VzKSBhbGlnbmVkIHJhbmdlLgoKU28sIGxldCBtZSBzZWUgaWYgSSBnZXQgdGhp cyBzdHJhaWdodDoKCllvdSBhcmUgc2F5aW5nIHRoYXQsIGN1cnJlbnRseSwgYWxsb2NfY29udGln X3JhbmdlcygpIHdvcmtzIG9uIHRoZSBiaWdnZXN0CmFsaWdubWVudCBvdGhlcndpc2Ugd2UgbWln aHQgaGF2ZSB0aGlzIHNjZW5hcmlvOgoKWyAgICAgIE1BWF9PUkRFUi0xICAgICAgIF0KW3BhZ2Vi bG9jayMwXVtwYWdlYmxvY2sjMV0KCldlIG9ubHkgd2FudCB0byBpc29sYXRlIHBhZ2VibG9jayMx LCBzbyB3ZSBwYXNzIGEgcGFnZWJsb2NrLWFsaWduZWQgcmFuZ2UgdG8Kc3RhcnRfaXNvbGF0ZV9w YWdlX3JhbmdlKCksIGJ1dCB0aGUgcGFnZSBiZWxvbmdpbmcgdG8gcGFnZWJsb2NrIzEgc3BhbnMK cGFnZWJsb2NrIzAgYW5kIHBhZ2VibG9jayMxIGJlY2F1c2UgaXQgaXMgYSBNQVhfT1JERVItMSBw YWdlLgoKU28gd2hlbiB3ZSBjYWxsIHNldF9taWdyYXRldHlwZV9pc29sYXRlKCktPnNldF9wYWdl YmxvY2tfbWlncmF0ZXR5cGUoKSwgdGhpcyB3aWxsCm1hcmsgZWl0aGVyIHBhZ2VibG9jayMwIG9y IHBhZ2VibG9jayMxIGFzIGlzb2xhdGVkLCBidXQgdGhlIHdob2xlIHBhZ2Ugd2lsbCBiZSBwdXQK aW4gdGhlIE1JR1JBVEVfSVNPTEFURSBmcmVlbGlzdCBieSBtb3ZlX2ZyZWVwYWdlc19ibG9jaygp LT5tb3ZlX2ZyZWVwYWdlcygpLgpNZWFuaW5nLCB3ZSB3aWwgZWZmZWN0aXZlbHkgaGF2ZSB0d28g cGFnZWJsb2NrcyBpc29sYXRlZCwgYnV0IG9ubHkgb25lIG1hcmtlZAphcyBzdWNoPwoKRGlkIEkg Z2V0IGl0IHJpZ2h0IG9yIGRpZCBJIG1pc3Mgc29tZXRoaW5nPwoKSSBrbm93IHRoYXQgdGhpcyBo YXMgYmVlbiBkaXNjdXNzZWQgcHJldmlvdXNseSwgYW5kIHRoZSBjb3Zlci1sZXR0ZXIgYWxyZWFk eQptZW50aW9ucyBpdCwgYnV0IEkgdGhpbmsgaXQgd291bGQgYmUgZ3JlYXQgdG8gaGF2ZSBzb21l IHNvcnQgb2YgaW5mb3JtYXRpb24gYWJvdXQKdGhlIHByb2JsZW0gaW4gdGhlIGNvbW1pdCBtZXNz YWdlIGFzIHdlbGwsIHNvIHBlb3BsZSBkbyBub3QgaGF2ZSB0byBnbyBhbmQgZmluZAppdCBzb21l d2hlcmUgZWxzZS4KCgotLSAKT3NjYXIgU2FsdmFkb3IKU1VTRSBMYWJzCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlvbW11IG1haWxpbmcgbGlzdAppb21t dUBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlv bi5vcmcvbWFpbG1hbi9saXN0aW5mby9pb21tdQ== 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 lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 246B3C433F5 for ; Tue, 25 Jan 2022 13:20:37 +0000 (UTC) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4JjnXg3Rs8z3bYv for ; Wed, 26 Jan 2022 00:20:35 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=OAQFnCJ9; dkim=fail reason="signature verification failed" header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=URWUxsOG; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=suse.de (client-ip=195.135.220.28; helo=smtp-out1.suse.de; envelope-from=osalvador@suse.de; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=OAQFnCJ9; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=URWUxsOG; dkim-atps=neutral Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4JjnWs0hj3z30gg for ; Wed, 26 Jan 2022 00:19:52 +1100 (AEDT) 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 C010621129; Tue, 25 Jan 2022 13:19:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1643116788; 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=W7ugEwGd8z1ciGcssO9NOuo6Y70kmTmAuz+RVBNhgQo=; b=OAQFnCJ9fJXwRf+XqgaH8z+GcXVjo9HxXhbpGWNi3xMFKm4awPudNVTJaJaXXs1dSxQj1I /htMCb/jE9Jo8zsCT8DVooqvtd6XAyQmf3X5bQaNYmHaXyRhOYiGujXcl4ae/nW4gqHHZG iIctFqchskLEpoSkcCX/nH6b9I06d44= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1643116788; 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=W7ugEwGd8z1ciGcssO9NOuo6Y70kmTmAuz+RVBNhgQo=; b=URWUxsOGxCPGESRThyQ7b2f2CoH5apJnVqlsxfRb5qW9qyCiYDfA7/lidO7XlY8xzuv09P oqD7gCa//062VVAA== 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 F330613DE5; Tue, 25 Jan 2022 13:19:47 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id TzS6OPP472GbRwAAMHmgww (envelope-from ); Tue, 25 Jan 2022 13:19:47 +0000 Date: Tue, 25 Jan 2022 14:19:46 +0100 From: Oscar Salvador To: Zi Yan Subject: Re: [PATCH v4 3/7] mm: page_isolation: check specified range for unmovable pages Message-ID: <20220125131943.GA5609@linux> References: <20220119190623.1029355-1-zi.yan@sent.com> <20220119190623.1029355-4-zi.yan@sent.com> <6AEF32AC-4E0D-41E0-8850-33B8BD955920@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <6AEF32AC-4E0D-41E0-8850-33B8BD955920@nvidia.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mel Gorman , David Hildenbrand , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org, Eric Ren , Robin Murphy , Christoph Hellwig , Vlastimil Babka , Marek Szyprowski Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On Mon, Jan 24, 2022 at 12:17:23PM -0500, Zi Yan wrote: > You are right. Sorry for the confusion. I think it should be > “Page isolation is done at least on max(MAX_ORDER_NR_PAEGS, > pageblock_nr_pages) granularity.” > > memory_hotplug uses PAGES_PER_SECTION. It is greater than that. Or just specify that the max(MAX_ORDER_NR_PAGES, pageblock_nr_pages) granurality only comes from alloc_contig_range at the moment. Other callers might want to work in other granularity (e.g: memory-hotplug) although ultimately the range has to be aligned to something. > > True is that start_isolate_page_range() expects the range to be pageblock aligned and works in pageblock_nr_pages chunks, but I do not think that is what you meant to say here. > > Actually, start_isolate_page_range() should expect max(MAX_ORDER_NR_PAEGS, > pageblock_nr_pages) alignment instead of pageblock alignment. It seems to > be an uncovered bug in the current code, since all callers uses at least > max(MAX_ORDER_NR_PAEGS, pageblock_nr_pages) alignment. > > The reason is that if start_isolate_page_range() is only pageblock aligned > and a caller wants to isolate one pageblock from a MAX_ORDER-1 > (2 pageblocks on x84_64 systems) free page, this will lead to MIGRATE_ISOLATE > accounting error. To avoid it, start_isolate_page_range() needs to isolate > the max(MAX_ORDER_NR_PAEGS, pageblock_nr_pages) aligned range. So, let me see if I get this straight: You are saying that, currently, alloc_contig_ranges() works on the biggest alignment otherwise we might have this scenario: [ MAX_ORDER-1 ] [pageblock#0][pageblock#1] We only want to isolate pageblock#1, so we pass a pageblock-aligned range to start_isolate_page_range(), but the page belonging to pageblock#1 spans pageblock#0 and pageblock#1 because it is a MAX_ORDER-1 page. So when we call set_migratetype_isolate()->set_pageblock_migratetype(), this will mark either pageblock#0 or pageblock#1 as isolated, but the whole page will be put in the MIGRATE_ISOLATE freelist by move_freepages_block()->move_freepages(). Meaning, we wil effectively have two pageblocks isolated, but only one marked as such? Did I get it right or did I miss something? I know that this has been discussed previously, and the cover-letter already mentions it, but I think it would be great to have some sort of information about the problem in the commit message as well, so people do not have to go and find it somewhere else. -- Oscar Salvador SUSE Labs 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 DAD3AC433EF for ; Tue, 25 Jan 2022 13:19:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 532AF6B007B; Tue, 25 Jan 2022 08:19:53 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4E1F26B007D; Tue, 25 Jan 2022 08:19:53 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 383B36B0080; Tue, 25 Jan 2022 08:19:53 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0034.hostedemail.com [216.40.44.34]) by kanga.kvack.org (Postfix) with ESMTP id 28EFF6B007B for ; Tue, 25 Jan 2022 08:19:53 -0500 (EST) Received: from smtpin20.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id E021A182945CC for ; Tue, 25 Jan 2022 13:19:52 +0000 (UTC) X-FDA: 79068867024.20.77ADB3D Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by imf27.hostedemail.com (Postfix) with ESMTP id 6B90740029 for ; Tue, 25 Jan 2022 13:19:50 +0000 (UTC) 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 C010621129; Tue, 25 Jan 2022 13:19:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1643116788; 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=W7ugEwGd8z1ciGcssO9NOuo6Y70kmTmAuz+RVBNhgQo=; b=OAQFnCJ9fJXwRf+XqgaH8z+GcXVjo9HxXhbpGWNi3xMFKm4awPudNVTJaJaXXs1dSxQj1I /htMCb/jE9Jo8zsCT8DVooqvtd6XAyQmf3X5bQaNYmHaXyRhOYiGujXcl4ae/nW4gqHHZG iIctFqchskLEpoSkcCX/nH6b9I06d44= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1643116788; 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=W7ugEwGd8z1ciGcssO9NOuo6Y70kmTmAuz+RVBNhgQo=; b=URWUxsOGxCPGESRThyQ7b2f2CoH5apJnVqlsxfRb5qW9qyCiYDfA7/lidO7XlY8xzuv09P oqD7gCa//062VVAA== 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 F330613DE5; Tue, 25 Jan 2022 13:19:47 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id TzS6OPP472GbRwAAMHmgww (envelope-from ); Tue, 25 Jan 2022 13:19:47 +0000 Date: Tue, 25 Jan 2022 14:19:46 +0100 From: Oscar Salvador To: Zi Yan Cc: David Hildenbrand , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Michael Ellerman , Christoph Hellwig , Marek Szyprowski , Robin Murphy , linuxppc-dev@lists.ozlabs.org, virtualization@lists.linux-foundation.org, iommu@lists.linux-foundation.org, Vlastimil Babka , Mel Gorman , Eric Ren Subject: Re: [PATCH v4 3/7] mm: page_isolation: check specified range for unmovable pages Message-ID: <20220125131943.GA5609@linux> References: <20220119190623.1029355-1-zi.yan@sent.com> <20220119190623.1029355-4-zi.yan@sent.com> <6AEF32AC-4E0D-41E0-8850-33B8BD955920@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <6AEF32AC-4E0D-41E0-8850-33B8BD955920@nvidia.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-Rspam-User: nil X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 6B90740029 X-Stat-Signature: fx78emitas75fdn8334bd6doq3ws3ckk Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=OAQFnCJ9; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=URWUxsOG; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf27.hostedemail.com: domain of osalvador@suse.de designates 195.135.220.28 as permitted sender) smtp.mailfrom=osalvador@suse.de X-HE-Tag: 1643116790-500271 Content-Transfer-Encoding: quoted-printable 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 Mon, Jan 24, 2022 at 12:17:23PM -0500, Zi Yan wrote: > You are right. Sorry for the confusion. I think it should be > =E2=80=9CPage isolation is done at least on max(MAX_ORDER_NR_PAEGS, > pageblock_nr_pages) granularity.=E2=80=9D >=20 > memory_hotplug uses PAGES_PER_SECTION. It is greater than that. Or just specify that the max(MAX_ORDER_NR_PAGES, pageblock_nr_pages) gran= urality only comes from alloc_contig_range at the moment. Other callers might wan= t to work in other granularity (e.g: memory-hotplug) although ultimately th= e range has to be aligned to something. > > True is that start_isolate_page_range() expects the range to be pageb= lock aligned and works in pageblock_nr_pages chunks, but I do not think t= hat is what you meant to say here. >=20 > Actually, start_isolate_page_range() should expect max(MAX_ORDER_NR_PAE= GS, > pageblock_nr_pages) alignment instead of pageblock alignment. It seems = to > be an uncovered bug in the current code, since all callers uses at leas= t > max(MAX_ORDER_NR_PAEGS, pageblock_nr_pages) alignment. >=20 > The reason is that if start_isolate_page_range() is only pageblock alig= ned > and a caller wants to isolate one pageblock from a MAX_ORDER-1 > (2 pageblocks on x84_64 systems) free page, this will lead to MIGRATE_I= SOLATE > accounting error. To avoid it, start_isolate_page_range() needs to isol= ate > the max(MAX_ORDER_NR_PAEGS, pageblock_nr_pages) aligned range. So, let me see if I get this straight: You are saying that, currently, alloc_contig_ranges() works on the bigges= t alignment otherwise we might have this scenario: [ MAX_ORDER-1 ] [pageblock#0][pageblock#1] We only want to isolate pageblock#1, so we pass a pageblock-aligned range= to start_isolate_page_range(), but the page belonging to pageblock#1 spans pageblock#0 and pageblock#1 because it is a MAX_ORDER-1 page. So when we call set_migratetype_isolate()->set_pageblock_migratetype(), t= his will mark either pageblock#0 or pageblock#1 as isolated, but the whole page wi= ll be put in the MIGRATE_ISOLATE freelist by move_freepages_block()->move_freepages= (). Meaning, we wil effectively have two pageblocks isolated, but only one ma= rked as such? Did I get it right or did I miss something? I know that this has been discussed previously, and the cover-letter alre= ady mentions it, but I think it would be great to have some sort of informati= on about the problem in the commit message as well, so people do not have to go an= d find it somewhere else. --=20 Oscar Salvador SUSE Labs