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 8BB64C48297 for ; Fri, 9 Feb 2024 20:46:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 049FC6B0080; Fri, 9 Feb 2024 15:46:14 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F3C656B0083; Fri, 9 Feb 2024 15:46:13 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DDCC46B0085; Fri, 9 Feb 2024 15:46:13 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id D059B6B0082 for ; Fri, 9 Feb 2024 15:46:13 -0500 (EST) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id A07FBA01A9 for ; Fri, 9 Feb 2024 20:46:13 +0000 (UTC) X-FDA: 81773447826.26.61F6348 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf03.hostedemail.com (Postfix) with ESMTP id 1A3622000D for ; Fri, 9 Feb 2024 20:46:10 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=LkDYnOwE; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=j6ZCK+NV; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=LkDYnOwE; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=j6ZCK+NV; spf=pass (imf03.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707511571; 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=b+iD+N31fBd2PKN2yLJNz4Wk4041RAH/rDCDtbwOEIo=; b=MEW0fcVTgGJWnonzi3goW0MSvrDrMSeO5vFpfnod4+9SwDhrKOerRpSrbtj5bqgjrSJVMI J24p1U38QlZTTtSD408cEP8zmPlyUhrC60Rh237EOWgWxd7Z0y7kRd8G6UlK+NVGCVx4KF Q/80fRBrlMju7PnEI9a8mcwh+PQwheI= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707511571; a=rsa-sha256; cv=none; b=UEgZzof80QrBr9eqjgB6jm8Hwf/e/ADdtsGO9Vpzy6x5h20T+LqpF3/UQFCHDQm8TYfAY6 fR2Kd5ljsHiCcnQM+Bd9ElGDhhZJY6AOAjYbKyxT13ebnFgoJ/hhtWXLxhTTthYW8CuU2n bIYRknyy7GTe15qp3wTb5BiG0oNkLbg= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=LkDYnOwE; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=j6ZCK+NV; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=LkDYnOwE; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=j6ZCK+NV; spf=pass (imf03.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none 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 8D98E1FD3B; Fri, 9 Feb 2024 20:46:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1707511569; 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=b+iD+N31fBd2PKN2yLJNz4Wk4041RAH/rDCDtbwOEIo=; b=LkDYnOwE3s+D19ECppKGDTcaUa+aWRdV1MLsG13SgbVcJIYlarA75aIFsF35tQvKr4Z115 ymoclUhUXBZZwZXOaLDqfnIHEaln64FILnn3WOYn9uwdUEEpm30EIC2wOqBgW+qXjTHTIH wHp5Ucvc+oncApwsEn5EYARjFBp/w5w= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1707511569; 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=b+iD+N31fBd2PKN2yLJNz4Wk4041RAH/rDCDtbwOEIo=; b=j6ZCK+NVX2k937T2R3FDIjJcJf0VZE6V5CfJT+AeffBdnwoun9LufnVzFc8ELMYop45NfO vBVn0bWxQnDlbuBw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1707511569; 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=b+iD+N31fBd2PKN2yLJNz4Wk4041RAH/rDCDtbwOEIo=; b=LkDYnOwE3s+D19ECppKGDTcaUa+aWRdV1MLsG13SgbVcJIYlarA75aIFsF35tQvKr4Z115 ymoclUhUXBZZwZXOaLDqfnIHEaln64FILnn3WOYn9uwdUEEpm30EIC2wOqBgW+qXjTHTIH wHp5Ucvc+oncApwsEn5EYARjFBp/w5w= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1707511569; 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=b+iD+N31fBd2PKN2yLJNz4Wk4041RAH/rDCDtbwOEIo=; b=j6ZCK+NVX2k937T2R3FDIjJcJf0VZE6V5CfJT+AeffBdnwoun9LufnVzFc8ELMYop45NfO vBVn0bWxQnDlbuBw== 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 6197B13353; Fri, 9 Feb 2024 20:46: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 8Fj3FhGPxmVFXQAAD6G6ig (envelope-from ); Fri, 09 Feb 2024 20:46:09 +0000 Message-ID: <28c47a9f-5ee4-425e-bd8d-bd251634534c@suse.cz> Date: Fri, 9 Feb 2024 21:46:09 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 2/3] mm/compaction: add support for >0 order folio memory compaction. Content-Language: en-US To: Zi Yan Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Huang, Ying" , Ryan Roberts , Andrew Morton , "Matthew Wilcox (Oracle)" , David Hildenbrand , "Yin, Fengwei" , Yu Zhao , "Kirill A . Shutemov" , Johannes Weiner , Baolin Wang , Kemeng Shi , Mel Gorman , Rohan Puri , Mcgrof Chamberlain , Adam Manzanares , "Vishal Moola (Oracle)" References: <20240202161554.565023-1-zi.yan@sent.com> <20240202161554.565023-3-zi.yan@sent.com> <025b7e7c-b17f-47c7-8677-ee36fc6dbc52@suse.cz> <5F394663-0AFE-4C12-827C-3A0723863395@nvidia.com> <193E0D43-0084-48AA-91F5-8316A130ADC3@nvidia.com> From: Vlastimil Babka In-Reply-To: <193E0D43-0084-48AA-91F5-8316A130ADC3@nvidia.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Stat-Signature: ftf5bd5jf97cf9g5dxkfyyeknyea8hxu X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 1A3622000D X-Rspam-User: X-HE-Tag: 1707511570-788026 X-HE-Meta: U2FsdGVkX19QOi7PbapPhSOsDpX9l6zvXQi0ItU3yu4Ldy2hLu/hM1RTnMfw0+xYjB2rWTqgeMSPbXO42SMV1SjF5CVYrNXEYExL7vFhkD1Xs0m2pYPJqRXTKB20bbBlrbm7kkx6kgG3/zayliNLQvmAMPqZX1BT7C6m9j+frpXejXZwIDMbOs+CjAfXBXmt0r/er64uS3tJ2wKgwF6xwD7ipHvzu60UvNGWhnye3AtPi9ovEWVkPV+ACby1soId7Wu9XGAe2FTtb2k9M3WVGorsBJmWJrPpv6LacVE7Hml1026N6CqIAL5hqwlJ5qgCLUS/U8JU1DrB+MXiSat8UnF05Ka53zQa84B7iBFbd+gN+bkfoLWbkOrJ5jmdzD/P7xwtq9o8qpHR9+G19a3Rb8uldL7KvhI2HoV6l+yxWudX8H3cDDDOuQCwmZEHIXc7r1nWkevsAbfrJcJHubGD5BE8jv9BxTdlC9/d/B1E2AlVxgY5KJ9B0LamuN7IudaGEqkfHbRenIu5QmkGUvFE08oFwSEkMh6qrsXpHL6SGO/5jPI9PBJrA7TlwE0zWoNKMr/7VimglSnA/9ECclnsw1taHutGIG7KwRmLsSUyBJOf3EOgkJAIxR95MEY9j1nrhBSqS194/KNHk0nDAYRmfHd5b4pBXTDq6MS5OiyfJ4x9gd4XzdWa4fULG+oshcrJ2dWYZSBvGYi5eCQUHYE9Xcz+Kjvu5U3JO8xKk3xMy6QvsnDdIleV7D1b1XahybQueU5xI/yuPW3oAz4ori1ImfAHxX5V6kQVg2RlYqi0LLnwwdH2SvW9qvXfM9lJjEAufXww4vQjYf/vWuaCCUUUl8NIigIxqdGYtqElCrjKjqH0+RVy5KOPaDMJI1K9AAlKrY4qowOauGfx1fDTxFnBYA0SGQ/fGkQ2mqEXY2RQdlr7qx3K6Nxy/uT35g33myJZ8cWkDeIwcpLTM7voryV rz9Dzc+k GbraJzVvfdm3yKyLU4vsA/Ef+lqnXyroYQQYFjQMFaXJT+fpMGjEXvDDQ17QRfRRaeV9/XiSUGKNq8UJxsrFsdPL+PsMPNBXvTXRVCQIaOrCzAuxe2na3y/Zk6CEOggqJ29ro11mmjx8LBPF/PBvp+ktVGCrWijkASuGkDN7sjv7Ukma81gJJAHhuMtbPxavdL9HV1dOvwDzIyyqfziD7fQZXNsLeVJhY53YaZAdkbG7K1pLjRYBVGoaXdW1hsoPWe0o7a5AtWfojzT641rMQzR1hszo8+D0v1+UXB0XgD7R+KyUuqCulHbn3AVA9+kQeT9d8gwuO5xqT0T3nKMleCEQP+A== 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 2/9/24 20:40, Zi Yan wrote: > On 9 Feb 2024, at 14:36, Zi Yan wrote: > >> On 9 Feb 2024, at 11:37, Vlastimil Babka wrote: >> >>> On 2/2/24 17:15, Zi Yan wrote: >>> >>> ... >>> >>>> /* >>>> @@ -1835,9 +1857,17 @@ static struct folio *compaction_alloc(struct folio *src, unsigned long data) >>>> static void compaction_free(struct folio *dst, unsigned long data) >>>> { >>>> struct compact_control *cc = (struct compact_control *)data; >>>> + int order = folio_order(dst); >>>> + struct page *page = &dst->page; >>>> + >>>> + folio_set_count(dst, 0); >>> >>> We can't change refcount to 0 like this, after it was already set to 1 and >>> somebody else might have done get_page_unless_zero(). You need to either >>> put_page_testzero() and if it's false, consider the page lost, or leave it >>> refcounted and adjust the code to handle both refcounted and non-refcounted >>> pages on the lists (the first option is simpler and shouldn't be too bad). >> Got it. Will fix it with the first option. Thanks. > > Do you think we should have a WARN or WARN_ONCE if we lose a page here? No, no WARN, it all happens legitimately. It's only our compaction losing the page - whoever would do the get_page_unless_zero() to inspect that page would then have to put_page() which will free it back to page allocator. > -- > Best Regards, > Yan, Zi