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 BA8E9C3DA7F for ; Mon, 12 Aug 2024 11:18:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 12DD06B008A; Mon, 12 Aug 2024 07:18:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0DE096B008C; Mon, 12 Aug 2024 07:18:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F0FA46B0092; Mon, 12 Aug 2024 07:18:56 -0400 (EDT) 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 D32266B008A for ; Mon, 12 Aug 2024 07:18:56 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 2FB141A0A35 for ; Mon, 12 Aug 2024 11:18:56 +0000 (UTC) X-FDA: 82443346272.08.3553CFC Received: from m16.mail.126.com (m16.mail.126.com [220.197.31.9]) by imf20.hostedemail.com (Postfix) with ESMTP id A960B1C0013 for ; Mon, 12 Aug 2024 11:18:52 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=126.com header.s=s110527 header.b=pfbdHsxN; spf=pass (imf20.hostedemail.com: domain of yangge1116@126.com designates 220.197.31.9 as permitted sender) smtp.mailfrom=yangge1116@126.com; dmarc=pass (policy=none) header.from=126.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723461464; 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=IL9OspOx/VC40//vfa2y5PuttDGamF8h+QZuJpZ3aGY=; b=dMQs2zv/nNAjNU7g9wrEVFT4uY7HKVSJ4YOdlUwbQhIqjiempjNsPwH+oSdZyz7LgnGSxt ggor6l/f/033fq9X6kYDTSPiuLaJUziXSYmmK0yo2WwMKMdED8Le19nc3M3roChip8KBM9 VVyjn2SkS4c8LCmbNalcZZ0bATURpvc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723461464; a=rsa-sha256; cv=none; b=lLn7TvXrvl9QU03ppOHaEnUH0J9t427lRS+0UEgNtf2izJwNZPV4X45lhdToNbaL9+LcZt 55sWOe49h2BDmJzM9a56l3G84g7+N7JCiCpSnLiavNzedhfr+J113yV0D8gP6+w89mg/Iy R9FT0eVuYtTBQxdPortdCmFvD4gC7tc= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=126.com header.s=s110527 header.b=pfbdHsxN; spf=pass (imf20.hostedemail.com: domain of yangge1116@126.com designates 220.197.31.9 as permitted sender) smtp.mailfrom=yangge1116@126.com; dmarc=pass (policy=none) header.from=126.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=Message-ID:Date:MIME-Version:Subject:From: Content-Type; bh=IL9OspOx/VC40//vfa2y5PuttDGamF8h+QZuJpZ3aGY=; b=pfbdHsxNRvAvw8vq54dv5RdQwoB4/sNJ2pE9kS0Jd1viPkD17gm2Cb5sIOdfZg UBMx4C6fLRTqOvWxRsr8WVuaVr4/TdGQnV/wDrLaSZPvYCvT4FTrDFgIB6JbVMW/ j9OPOxX+CLeg311YmVY2J0K5egjrH67jhysploMqQYNyw= Received: from [172.21.22.210] (unknown [118.242.3.34]) by gzsmtp1 (Coremail) with SMTP id pSkvCgDXn5KR77lmm4e1AA--.47343S2; Mon, 12 Aug 2024 19:18:42 +0800 (CST) Message-ID: <792b62dd-ef63-4609-a1eb-e2ccfd90b5ee@126.com> Date: Mon, 12 Aug 2024 19:18:40 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm/swap: take folio refcount after testing the LRU flag To: David Hildenbrand , akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, 21cnbao@gmail.com, baolin.wang@linux.alibaba.com, liuzixing@hygon.cn References: <1723270558-31674-1-git-send-email-yangge1116@126.com> <8e987e3f-6899-41d1-9ba4-c49cb91f7815@redhat.com> From: Ge Yang In-Reply-To: <8e987e3f-6899-41d1-9ba4-c49cb91f7815@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-CM-TRANSID:pSkvCgDXn5KR77lmm4e1AA--.47343S2 X-Coremail-Antispam: 1Uf129KBjvJXoW7KFyxtw4rur1xZr1xur18Grg_yoW8Wr4xpF 48GFnxuF4kGF12ka47Z3WYyFyj9FW09F4kJa1fAwn7uFn8XrnFkF1xKw15uay5uryxWF10 vFWYq3WkXF13AFJanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07j5-BNUUUUU= X-Originating-IP: [118.242.3.34] X-CM-SenderInfo: 51dqwwjhrrila6rslhhfrp/1tbiOhk5G2VEyJbDtgABsK X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: A960B1C0013 X-Stat-Signature: 6haqngh9jf9y1g9ojxt377ej3djj4nfq X-HE-Tag: 1723461532-353819 X-HE-Meta: U2FsdGVkX1/vG/lYi4UxEE/WaMAo+V1vXsa7vhptBXXIZQs+7PGnyqcAksaSN2G/tayGaeFk8DTOtcZ2yF4lTCHof24eQztFohBev6oHwV+oJdJVKkSZc6dLpVUvbGM/7gPaj1uCZWKocxFLNsnvANRzt3+nrYP1Dpc8vXsE6+w6FzVU5IYoFZLv8s9GI+VW4CSCy4Jl+O5qLgABcBVpkZkuhBwB6iw1dN4zSISZe4yZ6CGaJ5RgTNcasBJJwT6Ewoh7jWMW8qhzM4kx6Nlg6fJrKjSGKqHeZXvEZHT4optwTpcOdL4nzBYjuibmZDKltFV9KvRk5zLXEineM6eBCgv76YVrx0izPYaK3YUpLNybN1IJ5ZtkumK3H3fRveso6EpzXO/EdZqDpjIjFXa0YAk5Fn7/76rs0dGdW5G8jdOdsrKafFwMLecmxQyVT+Hd1KMN1lEA3bQIwfA1cn8Q9LV3aztFDqModUSyntZPjPn8j3F3Nik804cmGgF+NKusAGCImimkPAWOUY9fHCIEN6LG487kX20WSvQZQLQ9rQtSFWyGJhaASO2wr51xO7Bo/+ELUH0TUkic+aYzZxjM1RIt8Iu+U43gyfUFLsc/QSbe6+aAC66pw5HCSbj16jyLf6syg3brtZ+b8j1rhO4O10NpN3MMKirUfHUP0C/lULlCgutkTa6wxnB1bL2axpqptaXGGetSMzy3/AxnNneijHqP3qBv0Dh1rOLtxhyljxwI6Aer5lyskH+0pAtRx8TXVx1hwISXuI+arBmDOJ+ce6qB9NYf9bMNO6UJUcxAX67EBty3rihzpjTS/7b0xJT9wvAx720TQYmJYxW2bFjl2Ju972Ti6dWKEGTLDzbDGgaydIWnzzXBJgP8RSZjbQxTZGoIalRaoBurjD9qjvOGjKg7UfC0D9OunItjPAMXBf89odGcPJDD3hwgI2FMNLAARzDC24gW8+bnkKKjRsb T9G0l8mh WxMssk46YrzzOprxf0VQNOlS+eqFHgro1K1WjWNiiQpAd+oufw5mRIM3f5p8ntHofhTzhXQWYMTyUB4QimniRT1aGZ0vDQWwTgpcoWC5AGn2gCv8vW1gst36NXutJdYk2bUcICCbGCg4jRO3VcJaf+je3jOrHAlHHp6KXoNcH7zkmQJjL05kXA2FI0ngdM6T2Y3Y93hJv5QzfF9w877FKJTDG9hmFphSMSpptLjH9LdiZUSbi8xWi/49IdENzESb7jm5FOQCZDRFEpz+vENusd9U6DA41LPB+ItAgDZfb/jALWbM0r0+Lq9m+rXqOFAkwJgs+pYDl/8lerjvZQpIEBEc+c4NU3oO87/CnVJ6Bc8XXKIuFr+QDGyO2mMajEwKcJ4emaviESEZW3QUNbBPzT4Yhr0LjdhJqpNt7B8fIbI5EuSGil0RHWOCLp47OOUhV1llRwD/BTO+NhTA= 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: 在 2024/8/12 17:10, David Hildenbrand 写道: > On 10.08.24 08:15, yangge1116@126.com wrote: >> From: yangge >> >> Whoever passes a folio to __folio_batch_add_and_move() must hold >> a reference, otherwise something else would already be messed up. >> If the folio is referenced, it will not be freed elsewhere, so we >> can safely clear the folio's lru flag. As discussed with David >> in [1], we should take the reference after testing the LRU flag, >> not before. >> >> Link: >> https://lore.kernel.org/lkml/d41865b4-d6fa-49ba-890a-921eefad27dd@redhat.com/ [1] >> Signed-off-by: yangge >> --- >>   mm/swap.c | 8 +++----- >>   1 file changed, 3 insertions(+), 5 deletions(-) >> >> diff --git a/mm/swap.c b/mm/swap.c >> index 67a2467..6b83898 100644 >> --- a/mm/swap.c >> +++ b/mm/swap.c >> @@ -226,12 +226,10 @@ static void __folio_batch_add_and_move(struct >> folio_batch __percpu *fbatch, >>   { >>       unsigned long flags; >> -    folio_get(folio); >> - >> -    if (on_lru && !folio_test_clear_lru(folio)) { >> -        folio_put(folio); >> +    if (on_lru && !folio_test_clear_lru(folio)) >>           return; >> -    } >> + >> +    folio_get(folio); >>       if (disable_irq) >>           local_lock_irqsave(&cpu_fbatches.lock_irq, flags); > > Ah, "mm/swap: remove boilerplate" reduced them to a single instance, good. > > You can throw in a > > VM_WARN_ON_ONCE(!folio_ref_count(folio)); > > before the folio_get(folio) > > so we would realize when something very unexpected happens. Ok, thanks. > > Acked-by: David Hildenbrand >