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 36B0BE77188 for ; Tue, 14 Jan 2025 18:58:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BC839280017; Tue, 14 Jan 2025 13:58:27 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B786328000C; Tue, 14 Jan 2025 13:58:27 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A4052280017; Tue, 14 Jan 2025 13:58:27 -0500 (EST) 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 87B5C28000C for ; Tue, 14 Jan 2025 13:58:27 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 395AA44B00 for ; Tue, 14 Jan 2025 18:58:27 +0000 (UTC) X-FDA: 83006968254.24.33BFF00 Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) by imf11.hostedemail.com (Postfix) with ESMTP id 0432940006 for ; Tue, 14 Jan 2025 18:58:24 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=szeredi.hu header.s=google header.b=BUCiU749; dmarc=pass (policy=quarantine) header.from=szeredi.hu; spf=pass (imf11.hostedemail.com: domain of miklos@szeredi.hu designates 209.85.160.181 as permitted sender) smtp.mailfrom=miklos@szeredi.hu ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736881105; a=rsa-sha256; cv=none; b=OmXO4Ob7q1HtBaDD8GCtINN8UOCS1uDtwYdoKK/5ezUZxB21sr9eTRpL45YvOs0G1InY7j cuG8+8sFj6hYoOb+cCjOrPqhXGc0WLrb2h6Y6r9HUoBZaU27mWj3K/0+tUHbsq0m3XA1BW m3/8vNUoOrM9qTrXJdeq8JnvFAgN6uY= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=szeredi.hu header.s=google header.b=BUCiU749; dmarc=pass (policy=quarantine) header.from=szeredi.hu; spf=pass (imf11.hostedemail.com: domain of miklos@szeredi.hu designates 209.85.160.181 as permitted sender) smtp.mailfrom=miklos@szeredi.hu ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736881105; 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=/WzFf6cXletL0uXmsxaDWc/Nt+YM0HqJR8M/t9ippOg=; b=TnKxJ/4Tt6aexvj6yjN2DmjfG5EJJ/WO8loaOgt3byFNLGHWR6oHZM67BxU7w0iyAslW5G dVVPaNtMAk8DHJRFX2VIqKzqo8P+pUQSi1qy2fy+c7iSmfCz/9esfIDZTGZuw+gmiVjFaZ ASrEhh6T5oot1llXWjYYi/bjEmwsjxc= Received: by mail-qt1-f181.google.com with SMTP id d75a77b69052e-467a3c85e11so39054161cf.2 for ; Tue, 14 Jan 2025 10:58:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=szeredi.hu; s=google; t=1736881104; x=1737485904; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=/WzFf6cXletL0uXmsxaDWc/Nt+YM0HqJR8M/t9ippOg=; b=BUCiU749HBsmAUl7KzQ5mdEOFfH5Yu/2X+8t+AiAP+n2SoFvGlo8iMFXIFijgoHZ5S OisPMg7pj+omLbLnZnbyCsi4VK9QNOShfkMnNm/t2E1GKy5FJc+FfzJBsQ1lXQzg+pr5 VA3mTAu73VWVUJCZhHfYwz3gF7yIA2fLXySR8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736881104; x=1737485904; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=/WzFf6cXletL0uXmsxaDWc/Nt+YM0HqJR8M/t9ippOg=; b=Z9aXVL+cVrUVoudqSBqJqiT24NxSl7rBCV0sEp2IkTVyd/BhsiHSjtU3A4K4R1DN7y KAm9fh1+DHHJ/B3jEM59vDCAq79jG/Tmw6qe3PknaWNPNjFKDgWkVGuiNw+zRQ4eoevW urrP1SVAtDrxjVf8+0kLH+aOBLrnu2Id0qZbWwxXrjJzjso3s3VE2o+Fn9anws2/Y1za WFnXabdy6t5yT0Jelf2oKngZLTSjd6gVexYgp2dwoVGSJ0P2zEc4vTA5Z0eZ1F+KwzTp wFBwstINN8UotVQ91fK0slo7DgJ7Oxdq6NIBwHVmlhToMGnH0zrNh58MvpQT77xveGtu aHBQ== X-Forwarded-Encrypted: i=1; AJvYcCVJmgE7xAMcp/WHOE/axHZnDu7cx38hgVG9DqralKyNwqG8jdxyG06vq+xZ+DcXEOUVsMnJIytkWw==@kvack.org X-Gm-Message-State: AOJu0Yx8wAj4AtMGS0reM7UkLdMylW5gAD58azVpO3pkl20Wib59Kp6p OkdwC8GO7fXSmbln+zxa5uh0vG0RuT8mxWvFJPNwIZtbBKcX/RlDma8p3UXAdHPhe0qmjvKV5m6 vbXP0mPmU47d2VVBXdv1aiSBK5zi5mFSsOb/j0A== X-Gm-Gg: ASbGnctTKpGY1eyQKsV5XsVCfkrPjWN/t/yb+zjZIXvhMlZHWkzdz0TvrtlB9dDYiqG Loycf2hyexbVQz7xHN2nu1C7WdsVcAOp3vXoG X-Google-Smtp-Source: AGHT+IHKs3cu6tkz43TIfe0jWaTc0n3EfDjVYt7Y9K+iXgi+jBHFRqM+oGMhKLnNGjobnnoRhLRc7QepTP8256Doxt4= X-Received: by 2002:a05:622a:1494:b0:467:50d0:8866 with SMTP id d75a77b69052e-46c7108ebb1mr431321431cf.19.1736881103975; Tue, 14 Jan 2025 10:58:23 -0800 (PST) MIME-Version: 1.0 References: <791d4056-cac1-4477-a8e3-3a2392ed34db@redhat.com> <1fdc9d50-584c-45f4-9acd-3041d0b4b804@redhat.com> <54ebdef4205781d3351e4a38e5551046482dbba0.camel@kernel.org> <2848b566-3cae-4e89-916c-241508054402@redhat.com> <060f4540-6790-4fe2-a4a5-f65693058ebf@fastmail.fm> In-Reply-To: From: Miklos Szeredi Date: Tue, 14 Jan 2025 19:58:12 +0100 X-Gm-Features: AbW1kvZdiun2F4o3_s0jXL2ZodO0oFy95oYHpuYNK56cTPlZwwnooKjPTUDzXbU Message-ID: Subject: Re: [PATCH v6 4/5] mm/migrate: skip migrating folios under writeback with AS_WRITEBACK_INDETERMINATE mappings To: Joanne Koong Cc: Bernd Schubert , Jeff Layton , David Hildenbrand , Shakeel Butt , Zi Yan , linux-fsdevel@vger.kernel.org, jefflexu@linux.alibaba.com, josef@toxicpanda.com, linux-mm@kvack.org, kernel-team@meta.com, Matthew Wilcox , Oscar Salvador , Michal Hocko Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 0432940006 X-Stat-Signature: 73d93zd1ptq3ribu8hid6d8gm9yifcdb X-Rspam-User: X-HE-Tag: 1736881104-421312 X-HE-Meta: U2FsdGVkX19I0ipjcLeTamNtihVrdL2chR77WuLrpex3JPIOcJ8jaKYI/s7NZPogp+ZfSKMuOAXmHfKsTJBARMTfmXqclueaWGIDDdEYeBJCgkd+rVzZYNNUWg8EazD+OJ4wqk1PMQ+Q0TLKUA+fUn7Z2V2mydpPRu1w1un2ML4gQ2s4+ODK2NKmrP4EGVYmvQ7C5mqJfuzFJ0CooFTxQ8QjjwnusTv7+skKcAXPvzHByDngYjRUgErZdFrGQIus5fymbgAUwBq1HXftizIUmZ7A84NSJsCgwdnAkNV9YYnuSxv0wzyDrsYyNqKwYKK+sZwOG3G8Zfqax945I395pEjRiTonIaJejseJh/+poqL9k72oFd64CGFeHqpQ0Jt07li0ZbmcZpEQ3WndfUz9n18g8vu16XjAddnyKigBvPGC/nVo5OSL9VSEF760nK/x3EnUYo2sgIjxT1Nvvjx0E8O4YecAQwsYKzR791fVKZrcV2KJTE3KVkcX+Hi2yujvM34FI47YAUyyTYOvd3Ntr89L1MBr/lR+awi2u+ohixTSGCc45cUta9By0LFp6BiN/W7Im45OcQaGIUFBqZE5LrsRA599S1XMweMF3Q9GDbfqszPwIlEljFvP2pc03fNMZxXEi+Iz+o3Yu04e2feeOS2IUuSZgJgiRD2luvHjfqxJ4h75ap42eRIiv5bFHzppggshphBsp+FtyKr7w96GTEOpMkO8YlgoWG9MnWg/8qjawDVFPK0wNsKbnIRjzfxt9X8ublvv+hx/aws1od9ovgYvT5l/HedcUaQlKXWLtCUIicnjNCd8vqVv2CRAPIPqDcn/HpOe+az4n4oU/P78R4T5H23zktgx3E16lQM9Vf4Eb4DtXgq4ih/4yKwrOLgOF92qXzHiXvk6H+IQeYwEF7uOdsockes+3cqgigBrWmnBJtTb1bpXZMpZrTGMwJKZ1NUiPxUEalcqEA3G+4k KQkwuhjg eVvsj1yWIJcT0fTYuj9WD6O39EGTSBUyW7tnnGUjGsTw/8P2NwFkiVnEmmzpSepOyh0LxznhX7VJ8cJxKL96i5mj0SXIxbEVAWsVYzHZuzYiu+yWkLrbdTae3WmT7e0Zg+MSzRCEXqQE4CzsAByE82PgB2BGbB40H29qGTKEKKI5fdFgzCRvNC99DuT6+V4L1r19QxfcD+PwTFCJWWHXHJYX39hAgAEVrSLjmFBEuO5n9HSqyVcMQL29PVEjIwnVTkdlHjWgtX+TcBbY= X-Bogosity: Ham, tests=bogofilter, spamicity=0.001438, 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 Tue, 14 Jan 2025 at 19:08, Joanne Koong wrote: > - my understanding is that the majority of use cases do use splice (eg > iirc, libfuse does as well), in which case there's no point to this > patchset then If it turns out that non-splice writes are more performant, then libfuse can be fixed to use non-splice by default. It's not as clear cut though, since write through (which is also the default in libfuse, AFAIK) should not be affected by all this, since that never used tmp pages. > - codewise, imo this gets messy (eg we would still need the rb tree > and would now need to check writeback against folio writeback state > and against the rb tree) I'm thinking of something slightly different: remove the current tmp page mess, but instead of duplicating a page ref on splice, fall back to copying the cache page (see the user_pages case in fuse_copy_page()). This should have very similar performance to what we have today, but allows us to deal with page accesses the same way for both regular and splice I/O on /dev/fuse. Thanks, Miklos