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 02015C3600B for ; Mon, 31 Mar 2025 15:56:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 66132280004; Mon, 31 Mar 2025 11:56:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5EBA0280003; Mon, 31 Mar 2025 11:56:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 48B40280004; Mon, 31 Mar 2025 11:56:26 -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 2B4F4280003 for ; Mon, 31 Mar 2025 11:56:26 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id D6C63575C1 for ; Mon, 31 Mar 2025 06:28:11 +0000 (UTC) X-FDA: 83280866382.07.D79EBD1 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf02.hostedemail.com (Postfix) with ESMTP id 41ACC80005 for ; Mon, 31 Mar 2025 06:28:10 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=Ey+hvM+9; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf02.hostedemail.com: domain of mcgrof@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=mcgrof@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743402490; 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=DF9F3z1FQy0S1jaftweRdTNiNyAhyjBDaEpHnDUwawM=; b=yNfu7k6h6XXjzc3JNvkzEsQp6/F8tMz8Pg0pgFjvDMcI2d4w09eE0bmSfMbJQSxoqCtmrr 1T8oEwFl4rRLCGj99/G2/sbLhiqC8ALr+R/wuGtT5yKoHRe6XYFaLRVQkOjKjtf6BJoHPc RlgJWBg1VIDqKuUqA4frehepPzY8KBk= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=Ey+hvM+9; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf02.hostedemail.com: domain of mcgrof@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=mcgrof@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743402490; a=rsa-sha256; cv=none; b=bp3BOoo6BjouYu0DoJrCB4Y824tjMNalztFlkmcnxo1bZ2I8OO2tQA4H7mYPzNvfx7WnTP 6eAek2ao/va7G1+zJSgSQPPNfQNCgB3TEUsIIBqWMK3yih2lz/rymygGNBsK0Sd5rywGAr XVO4W42pcHe3bwlZUnuTRFICx7t9Hlk= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 67CECA40A5A; Mon, 31 Mar 2025 06:22:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5E452C4CEE3; Mon, 31 Mar 2025 06:28:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1743402488; bh=+eItXhKnWJeHMWExJ/x2UBbaDvLbu4bfKiG/3z5gTGU=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Ey+hvM+96L67Lbzr+/QMpIpNdVZOFirXL65HdnhdS6IGzs+ZgEZaBoWQawI61GDI6 9Gpob2on3gvNEkpfNcOvxMLWXjxzRakxTMad9/BrwsBofc4gihwp9gwGdF4bC4AxiO 9zkwfj3e2EDL8U4KWcNVl9dszGvmrqDNPrDHk6nC2K9oTAh/l+dghQP3QKVl0osbl7 op8udcr5twUWJfRGB5EoBvipIDc8zuVn2vc9NmvL41qHjMsCntTa7orM4Ye2PT1WF9 JB0kDrnsznX0v/CDVuuLD0I2FOSvT9w4uJOP3HkraisQMW03dUjvIXj9ln3LqwRomR EJZpnqFIq+FGw== Date: Sun, 30 Mar 2025 23:28:07 -0700 From: Luis Chamberlain To: Matthew Wilcox Cc: brauner@kernel.org, jack@suse.cz, tytso@mit.edu, adilger.kernel@dilger.ca, linux-ext4@vger.kernel.org, riel@surriel.com, hannes@cmpxchg.org, oliver.sang@intel.com, dave@stgolabs.net, david@redhat.com, axboe@kernel.dk, hare@suse.de, david@fromorbit.com, djwong@kernel.org, ritesh.list@gmail.com, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-mm@kvack.org, gost.dev@samsung.com, p.raghav@samsung.com, da.gomez@samsung.com Subject: Re: [PATCH 1/3] mm/migrate: add might_sleep() on __migrate_folio() Message-ID: References: <20250330064732.3781046-1-mcgrof@kernel.org> <20250330064732.3781046-2-mcgrof@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 41ACC80005 X-Stat-Signature: 4fxz33zsq5xohf1ad7aqigom6kr75kk9 X-Rspam-User: X-HE-Tag: 1743402490-372611 X-HE-Meta: U2FsdGVkX1+U5G0lnTj75yGpfDJJyiekuoVl/nZz69cZIuQb0y+ACPa4eW+7pXV+oZ+BFdKcu1/c3xy34wuzJwcUE8hHomceIijbcess8kTPDRQsZwGP3QhXcSn7Z3sCqxZNCaCxJ/VlLurvMCJaN8iytyFywr210nZ+i9qchWdSWuAjbfwrcxN/YbbkY2rWOKRk0km8P43umy9SXf6kBDK8Hk+8kouVzg7fWlsSYTK3+7avv8GMHK22ohVSwUHdrSFA5R32ihe0UvX9U739TcUXKJgwTegpF4FCZFRzjeb4W42NhTgf0EJ5leykjYIbcPp50gjIU0+1w1HeflrB1RKT/jZaGoyGHANZWdCVV0+J/sol2C6airb4tEEqUY8VcP5s8ge6WAO2NXju32LSlEysM02U+50fO1aVTAVQsnkmOJHk8X8QVGi/48yp17y2vVG3Ykw/mHeDvOG8mMcz+YVVYLLiWMWRB0MD2rUNkRzE6XcB+/sa1YiK19GhrpfocIv92BfcT8potAep7JEcOA9qWnqeI25AF2GqM21AmSzptJ1PaGtTMmJ7zHn23w/+HiHjlHZwtTTFfYtS1jbMzKWaMPAM1D2tGDb2IBT73FrQrbO3Q0lLSZGf1qQJfYq+F47/eZGv5wqdKer6yTUjGjs6SB+hMSSm+5omHI3BSMqSjp963SK8xGvFBPBMS3K0ckh26y81Dhf8KM2TretmudfmSt6+4mNho5TuSuTlVfMgNA95rUkjUpy0Rpn23L5dSeHDzf6bJoooSiQMwxCxJnpbIkhq2NhN5p6/mFT0GifJjEcZaGM3lOLwCnSfKCTcKf9d1O8afQFmngiCRiVfIMnCfJhsk1Am2PnnD9ErRI9zxKLFIff+iNiTuGsC6KMA173NX7wHSZVI+ttr+h6U79/vTfBJAShDFJ7RijGnEmye+P8gNqt5S13+ug7nvTyXiLdqxLpSKg4aYpldrWu T7ZdYXs3 6+NnQDga7iYwymWZFPccUTXIlMBm9U8o4I0+5v02nM8HuAHUYlhanz4Q7/SfcBGfRGMw6oaciNJwUhVeT2tD+zr2zkhw0OGr5r3F1zz9420aGXsIgH1knGCD0pxZCyWkBhpXk+AIFlPxMYf2L+hxpIXtpL0W/bt0HEVzLufdJ6xrcMd+aj2cT9vs8X7dMZKC7MKbUZ6/EXJLSsy4NIsRLPE1/Os3+gArSbT8ALFzZK8dnpZjB60NCjkl/PwseQe+BWvWVOLu3q10+3NfxMi68fr8VgGaH5HZ40am3dug0aQYfb4UuS2BcZc2/GPiZYHAz00/UgbNTNl4Mfbaaf/p7RaGoe15MkgdfjBq6 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 Sun, Mar 30, 2025 at 01:04:02PM +0100, Matthew Wilcox wrote: > On Sat, Mar 29, 2025 at 11:47:30PM -0700, Luis Chamberlain wrote: > > However tracing shows that folio_mc_copy() *isn't* being called > > as often as we'd expect from buffer_migrate_folio_norefs() path > > as we're likely bailing early now thanks to the check added by commit > > 060913999d7a ("mm: migrate: support poisoned recover from migrate > > folio"). > > Umm. You're saying that most folios we try to migrate have extra refs? > That seems unexpected; does it indicate a bug in 060913999d7a? I've debugged this further, the migration does succeed and I don't see any failures due to the new refcheck added by 060913999d7a. I've added stats in a out of tree patch [0] in case folks find this useful, I could submit this. But the point is that even if you use dd against a large block device you won't always end up trying to migrate large folios *right away* even if you trigger folio migration through compaction, specially if you use a large bs on dd like bs=1M. Using a size matching more close to the logical block size will trigger large folio migration much faster. Example of the stats: # cat /sys/kernel/debug/mm/migrate/bh/stats [buffer_migrate_folio] calls 9874 success 9854 fails 20 [buffer_migrate_folio_norefs] calls 3694 success 1651 fails 2043 no-head-success 532 no-head-fails 0 invalid 2040 valid 1119 valid-success 1119 valid-fails 0 Success ratios: buffer_migrate_folio: 99% success (9854/9874) buffer_migrate_folio_norefs: 44% success (1651/3694) > > +++ b/mm/migrate.c > > @@ -751,6 +751,8 @@ static int __migrate_folio(struct address_space *mapping, struct folio *dst, > > { > > int rc, expected_count = folio_expected_refs(mapping, src); > > > > + might_sleep(); > > We deliberately don't sleep when the folio is only a single page. > So this needs to be: > > might_sleep_if(folio_test_large(folio)); That does reduce the scope of our test coverage but, sure. [0] https://lore.kernel.org/all/20250331061306.4073352-1-mcgrof@kernel.org/ Luis