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 48F87C5475B for ; Mon, 11 Mar 2024 19:26:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D07FF6B010E; Mon, 11 Mar 2024 15:26:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CB7EA6B010F; Mon, 11 Mar 2024 15:26:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BA7396B0110; Mon, 11 Mar 2024 15:26:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id AB7FD6B010E for ; Mon, 11 Mar 2024 15:26:34 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 562E2A08EF for ; Mon, 11 Mar 2024 19:26:34 +0000 (UTC) X-FDA: 81885739908.20.11BAF27 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf09.hostedemail.com (Postfix) with ESMTP id ABD9B140023 for ; Mon, 11 Mar 2024 19:26:32 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=QA8iwcdb; dmarc=none; spf=none (imf09.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710185192; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=A58ff9Xm7UxnvnFTW+SWyoWvUXGbD6SYg/OXq5euKHY=; b=kJGUNsnJFUVkqiCmDN2oyWQ9Kg+Z/QBOXphoGkDMba11+G7eaLVD1bOdrO5F0Dip1i0JUw 9jQ+qGK8Gt7DZp8LlqsF4kmLrVmJX5rBCIIzOBzbtyxng2wvsEwcx8LmIbzc1kwFguCt7J eCSEkbmbvmwuKjNcta/tLsmUs+N98zM= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=QA8iwcdb; dmarc=none; spf=none (imf09.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710185192; a=rsa-sha256; cv=none; b=X5h/RdnG8d+h8LuWhdNcBx/P1KwVgbb1CJLqynKs+DxuKiTi3MPrRXDk0MI53yLYXrURfh pvymTpvNfKtcUeg9zwueJorDYfxYoYDm51GW5ir13Rjj9sC1xeP1r+wSegR8GtMs/f7abs 5zMLyV/Llh7p0K7krfu4WjxCL//jZFw= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=A58ff9Xm7UxnvnFTW+SWyoWvUXGbD6SYg/OXq5euKHY=; b=QA8iwcdb6op0/WSca6FX1XzjxH l7RHmhiixaflBX7PePzlBui0AJqgWqxyQRALtsOwdxaE+FeeY0DDC+phl1F42ics8XN8VdB8H3p+u EEn2ssVlnubIajf65pWcTD+yDkMdjzI+ZR9vZdGFTFxk7oZR/niOzKs+86BBcmWDIMIwKOcV4N5Yy FInvHyzkzT5JTNPcDA1M2ngIszj0JM5jBcxCyzBHUqu613ubkH81EyamZ2pr/82iiSg7f/HhPPtAW nHYiu5Y/0bju4TY6f7fv3fsL8Ijy2lOnk0d0lMrTG1Emhqg3ZuZ2AAK3HF6QbIZe+mMYmsnlL6c7j nNpTf0Qg==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1rjlI5-00000001K6p-48WH; Mon, 11 Mar 2024 19:26:30 +0000 Date: Mon, 11 Mar 2024 19:26:29 +0000 From: Matthew Wilcox To: Ryan Roberts Cc: Andrew Morton , linux-mm@kvack.org Subject: Re: [PATCH v3 10/18] mm: Allow non-hugetlb large folios to be batch processed Message-ID: References: <02e820c2-8a1d-42cc-954b-f9e041c4417a@arm.com> <9dfd3b3b-4733-4c7c-b09c-5e6388531e49@arm.com> <79dad067-1d26-4867-8eb1-941277b9a77b@arm.com> <7177da75-0158-4227-98cf-ca93a73389a0@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <7177da75-0158-4227-98cf-ca93a73389a0@arm.com> X-Rspamd-Queue-Id: ABD9B140023 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: 9n3wsjq3zj9jcq3wsmxr5d6kbmuc1w1x X-HE-Tag: 1710185192-650678 X-HE-Meta: U2FsdGVkX19u37KhkOqjFNs16iwqQ6F0WRhB/zBGN9r+WDNAAejS5JejLdSOSmhr81T014E1Fie7pAjTHY0/oflU4+LhEB5DVUJ/10rrlRJ+rv1Ry0+0DftUQIwNhxYMwHDX9ILPlchN9seQ2VtxcyFvbefujL9oxCUPjPVjVRLPEh2Tas/RnxyjeCRrKGgVUmV2dDp8NRSe7VtHVcfUN9SfON71mM3nrghtl81Zofg32AIivbvWizgFwvsyQu8EV9fWXvkKs4eImyIfkN9Rq9UBjyFuuf31a88WmLTgyI4kVuiSmqy0uyMqRHWe7f218LoHBTXczvg32S6O0F1aTRdhO4a9aYqEVVnY9ZLn7jZ9nRQUP0gI27yI2SFOKUWR2k8+3AW6iaAAektWBQOzT5LoCtyHfus3dKM6Fr2xYG6USghb/bBGOS+4i71FeTNCWhnc7ohzsSOk1V3iEldYCD15E86O4vo0HWN49RoJoh5PapzBGOa5HHIaDrqkFMZ3TBhRx2d7CHLnxiuVbTJZtcXslcNED280N3HtXDTV4kU3uwp4MRQfe2ZM/hTJGRfRp6PTW+AK6pMoaMf5/BXobYdV+1Fd8T5SXt7YGpr6ccJ6WbL1iCuNSsUqMP/aqw8db2q2CcMhDiic/H36k6GIcukBg0I+xRVfC+IHxauE4IsjVQWim4vI1QUZtoHkzSWs0wEz6jO3EHrzCoU/HXXZ7XtFCk5XcO0AyB/m9nWjtYEkszYOty/C1oWFlSskc87sCRYEzwiia0JwZUTWtpQ4TIwIRgh6kFrhHFYH8ePJsVCVtmTEzXTLxq/h1jCIN7m4YnaDt8+syHOHK9am/NL235qz3Y3pLtHPaDUjEuAa8K4lLGMmcA0rYkEZ3gEzKyXT9Upm/dXtJ5FjeVd1jrqRfgEJCSopUWE0/VQNg42FZCDGTDSCbyd6XqRsICzUHFWZrHlqNXHTE8IJfnLQh+D wkAFjDbz dKIEe8tfC8ubeQhJzi2Gi49dVZ+XeCSjcqM6Lq70WI1OLqDdaL6hg4DCDTZM0cFS8GIRt3MC/SHkIfTCPWY987zZSw1J3Y40cYZfnDTUhsyDdhQ1dK1QXifvDrayUmCVUJVHWiJ5trYpW45A= 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 Mon, Mar 11, 2024 at 04:14:06PM +0000, Ryan Roberts wrote: > >> There is also a call to mem_cgroup_uncharge() in delete_from_lru_cache(), which > >> I couldn't convince myself was safe. Perhaps you could do a quick audit of the > >> call sites? > > > > That one is only probably OK. We usually manage to split a folio before > > we get to this point, so we should remove it from the deferred list then. > > You'd need to buy a lottery ticket if you managed to get hwpoison in a > > folio that was deferred split ... > > OK, but "probably"? Given hwpoison is surely not a hot path, why not just be > safe and call folio_undo_large_rmappable()? Actually, it certainly can't be hit. Here's the code path: mem_cgroup_uncharge() is only called from delete_from_lru_cache() delete_from_lru_cache() is called from me_pagecache_clean(), me_swapcache_dirty() and me_swapcache_clean() [1] Those are all called through the error_states dispatch table. which means they're all called through identify_page_state() identify_page_state() (other than for hugetlb) is called only from memory_failure() memory_failure() calls try_to_split_thp_page() and only calls identify_page_state() if it succeeds. ie we cannot be dealing with a large folio at this point, so we don't need to worry about the deferred split list. [1] me not cookie monster me is memory error