Received: by 2002:ab2:3319:0:b0:1ef:7a0f:c32d with SMTP id i25csp450149lqc; Fri, 8 Mar 2024 02:12:54 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUMu1kgiGnULEBxWrPMopXSpWSCkh4wmUasEhp1vYzmjCgpgoImNKH7Dg4jl/GOtY8Ug3bkFXgjIijYo6FREskqSf00k9+E7iLo1zfuPg== X-Google-Smtp-Source: AGHT+IEwVlhMKV27/Qy0dCAyCRGprOn/j67x9TiKabUD/XpB3PHLkEMLZExMXfjnxpN+JFBUB5m0 X-Received: by 2002:ac8:7f4a:0:b0:42f:1c0a:39db with SMTP id g10-20020ac87f4a000000b0042f1c0a39dbmr4691619qtk.51.1709892773804; Fri, 08 Mar 2024 02:12:53 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709892773; cv=pass; d=google.com; s=arc-20160816; b=KjMsuyetJHFsDINPeH7boHI7BYl+kjPpZ1+HbNbZq5yPXV88xAmaZafy8b4MjfFyMq 7uhqtSJ+SHjvb6blj3oCNYHyzDcRkOpL0i5NvVW6I3B/gnAH3UDKnH1BISBlMVAH4G1A JXMVKHy7+P09O02zY9N0leu7ukDANOO6J5QTtb6SiD82rx6z8Zj4/Um8N78H8kf9T+mM lgXCwqTRWQXglsG5VN2ZcrY5MHzAGzLGwa+NTVXBc3Q4FG8D+5sv9Snv4ohJ1VkGohR2 w0HyDtqL5wARvH2wwdEdzma6PGdHKTUeBt1U625X5teA8tX4bc8ApJCyz3aUbAVhPJbg 8BSw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=BoIorvfWyf9LolO7BQl92ubhIp9In53wnSUQFUrg4T8=; fh=qDZ+YnS9HJbCVOaeWFr2FnYZt7eE+vt5IJIDIlhBdxU=; b=tHWQnLM5jFGRmNUNYgPT1nNg0p4Lbemto6NG9hdK93PxPNNbRj/aRB9lHPlQKat8x1 u7tv20oqDxSjyviLztan4QNfsmiT9ODWaRMdJHUnwtPPWCnz9+AIIBcTj8V2u7UyhpJr 3n8vR/wcnF9rjNvAiP0ZAQt5bjPqy4syafzCLY/K3I6Xr4ASXfM/4oD5UYVwXCIMIK83 C86u6nijYJhuw4gbZ5kAxIIpBhOzG1pPmVBRN3AA3GIGq2IVSWPzS2DwSDr1O/0LXrE3 57C6fcy+HkiPbeLgbB8iFJgY5wIcigwzIe/SkxjsvwWThoTO3OHx/tLVQi/wgWSlBGiU dTFQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=P4I7FSLz; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-96804-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-96804-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id r17-20020ac85c91000000b0042ee06d6933si13080930qta.547.2024.03.08.02.12.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Mar 2024 02:12:53 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-96804-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=P4I7FSLz; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-96804-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-96804-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 786F81C209E5 for ; Fri, 8 Mar 2024 10:12:53 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 9BFAC54F83; Fri, 8 Mar 2024 10:12:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="P4I7FSLz" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AB14954BD6; Fri, 8 Mar 2024 10:12:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709892753; cv=none; b=eh3jUR93Wtx+b/Qqggmz5D5T/IdO04lR6sUIy04eCktU+I2HEEOtUNGi6Anm58WD1Swmg04zlA15yOny4gAKsz5ePoqRN2CGvTF49mgFUo6k0MKyFCKS8wgk/2patPFwA2EyAZmhAWlPrnzTz8RgCdmHN8utEdohbpjfVgj87Qk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709892753; c=relaxed/simple; bh=2jQZxIFl4d6HhQOrEl3tjvuyOYix0Nhi5jV758z3jnU=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=jjvrY1qaMNmLaUraLrwnPbEIFsAS4E1CdpCzgJ1ryb823R5iUxhEZ23YGCZA5cWMLa0pOGwdzIIr8ky+ILfKUm3cJdqwojoljrfGXgoD0aOsGyIsyYDgxFqitO0aywAn/tujMrg3d28yROmzCa03BszXxljAXziu3ds4Mb4htho= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=P4I7FSLz; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id BF3BEC433F1; Fri, 8 Mar 2024 10:12:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1709892751; bh=2jQZxIFl4d6HhQOrEl3tjvuyOYix0Nhi5jV758z3jnU=; h=From:To:Cc:Subject:Date:From; b=P4I7FSLzVfign3MPAA1epHe8LOlZWqwXPE7JO2SgwS/3Ddu2uKgP1gBWSUC5uymwi e+2XNlsc0b2xFwy/sRrwYpBPYWanH9zMgdfp475hPhSmlxV556416p6FEYTlD00n4x QuPPVBkCR+RXMpYYpkfe6S3GGR2t008uOS73gQVrGb7GgyQHlsu9juZXgf/7wlsg9a /DmelOjXDcePG5P6jZ0+dWrR3ptFXOf0H6AvazBaf0MHIcUYe66Bs1/1M3Vp1kDL+u LqDmEnbwZfIjOJBENrpKe8MTlT/6Y41v8DuQbVQ+bO/+8a69uNhBi0k2GOogYzsXHU hTpi1RP6XrdZA== From: Christian Brauner To: Linus Torvalds Cc: Christian Brauner , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [GIT PULL] vfs iomap Date: Fri, 8 Mar 2024 11:12:11 +0100 Message-ID: <20240308-vfs-iomap-96ff9703338d@brauner> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=5168; i=brauner@kernel.org; h=from:subject:message-id; bh=2jQZxIFl4d6HhQOrEl3tjvuyOYix0Nhi5jV758z3jnU=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaS+etKywW6H679l5R0uF7RWvw+IO3GiY0rSTY6iw/W1Z 5g/fuH53lHKwiDGxSArpsji0G4SLrecp2KzUaYGzBxWJpAhDFycAjCRl5cYGTZ7zS1zfVy5e5mc R1/PFdlF7yy8Zz25emWnJQtrdnTA516Gf5arSnbEPpvlOqGvc4Kz7BUBbxHXfouGwACrDmkNy0v 3WQE= X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 Content-Transfer-Encoding: 8bit Hey Linus, /* Summary */ This contains a few updates for the iomap code: * Restore read-write hints in struct bio through the bi_write_hint member for the sake of UFS devices in mobile applications. This can result in up to 40% lower write amplification in UFS devices. The patch series that builds on this will be coming in via the SCSI maintainers. (Bart) * Overhaul the iomap writeback code. Afterwards ->map_blocks() is able to map multiple blocks at once as long as they're in the same folio. This reduces CPU usage for buffered write workloads on e.g., xfs on systems with lots of cores. (Christoph) * Record processed bytes in iomap_iter() trace event. (Kassey) * Extend iomap_writepage_map() trace event after Christoph's ->map_block() changes to map mutliple blocks at once. (Zhang) /* Testing */ clang: Debian clang version 16.0.6 (19) gcc: (Debian 13.2.0-7) 13.2.0 All patches are based on v6.8-rc1 and have been sitting in linux-next. No build failures or warnings were observed. /* Conflicts */ Merge conflicts with other trees ================================ [1] linux-next: manual merge of the scsi-mkp tree with the vfs-brauner tree https://lore.kernel.org/linux-next/20240227153436.33b48d59@canb.auug.org.au [2] There's a merge conflict between the vfs-6.9-misc pull request sent as https://lore.kernel.org/r/20240308-vfs-misc-a4e7c50ce769@brauner that can be resolved like this: diff --cc include/linux/fs.h index 2ba751d097c1,bdabda5dc364..000000000000 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@@ -43,7 -43,7 +43,8 @@@ #include #include #include +#include + #include #include #include Merge conflicts with mainline ============================= The following changes since commit 6613476e225e090cc9aad49be7fa504e290dd33d: Linux 6.8-rc1 (2024-01-21 14:11:32 -0800) are available in the Git repository at: git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.9.iomap for you to fetch changes up to 86835c39e08e6d92a9d66d51277b2676bc659743: Merge tag 'vfs-6.9.rw_hint' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs (2024-03-04 18:35:21 +0100) Please consider pulling these changes from the signed vfs-6.9.iomap tag. Thanks! Christian ---------------------------------------------------------------- vfs-6.9.iomap ---------------------------------------------------------------- Bart Van Assche (6): fs: Fix rw_hint validation fs: Verify write lifetime constants at compile time fs: Split fcntl_rw_hint() fs: Move enum rw_hint into a new header file fs: Propagate write hints to the struct block_device inode block, fs: Restore the per-bio/request data lifetime fields Christian Brauner (1): Merge tag 'vfs-6.9.rw_hint' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs Christoph Hellwig (14): iomap: clear the per-folio dirty bits on all writeback failures iomap: treat inline data in iomap_writepage_map as an I/O error iomap: move the io_folios field out of struct iomap_ioend iomap: move the PF_MEMALLOC check to iomap_writepages iomap: factor out a iomap_writepage_handle_eof helper iomap: move all remaining per-folio logic into iomap_writepage_map iomap: clean up the iomap_alloc_ioend calling convention iomap: move the iomap_sector sector calculation out of iomap_add_to_ioend iomap: don't chain bios iomap: only call mapping_set_error once for each failed bio iomap: factor out a iomap_writepage_map_block helper iomap: submit ioends immediately iomap: map multiple blocks at a time iomap: pass the length of the dirty region to ->map_blocks Kassey Li (1): iomap: Add processed for iomap_iter Zhang Yi (1): iomap: add pos and dirty_len into trace_iomap_writepage_map block/bio.c | 2 + block/blk-crypto-fallback.c | 1 + block/blk-merge.c | 8 + block/blk-mq.c | 2 + block/bounce.c | 1 + block/fops.c | 5 +- fs/buffer.c | 12 +- fs/direct-io.c | 2 + fs/f2fs/f2fs.h | 1 + fs/fcntl.c | 64 +++-- fs/gfs2/bmap.c | 2 +- fs/inode.c | 1 + fs/iomap/buffered-io.c | 579 ++++++++++++++++++++++---------------------- fs/iomap/direct-io.c | 1 + fs/iomap/trace.h | 48 +++- fs/mpage.c | 1 + fs/xfs/xfs_aops.c | 9 +- fs/zonefs/file.c | 3 +- include/linux/blk-mq.h | 2 + include/linux/blk_types.h | 2 + include/linux/fs.h | 16 +- include/linux/iomap.h | 19 +- include/linux/rw_hint.h | 24 ++ 23 files changed, 455 insertions(+), 350 deletions(-) create mode 100644 include/linux/rw_hint.h