From patchwork Sat May 11 14:23:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jens Axboe X-Patchwork-Id: 13662396 Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D9F0D5380F for ; Sat, 11 May 2024 14:23:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715437430; cv=none; b=OerlL2JD+6A3EL+u2m8u9XxkoHMHkWBHMRR8UvbG/oOva91q5A4wm9ay+h/AX0ZcwpwzHUk69yfA8yaMhmwEQ6pbPrMGN+H+Oz/Acv8q3Fj3e1qNAWhMoLAlGb5Nq4cC4CN4NM8en0aFi/kPZ4mM+BRDYqS8uClxAPuMAWwnZeI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715437430; c=relaxed/simple; bh=ISQcMTSNLpna39sMAWic+aZOGw826B+nTJq2ypourUM=; h=Content-Type:Message-ID:Date:MIME-Version:To:Cc:From:Subject; b=tfd3jV82aUV2Kqh1ycyFAfZxTyEJxRh4ALrkKv1uaVERHtJMhC1A7mxiTZT9ImqdKLZ8DIk1GuUhjX64JqgmeWcBLhFtHgxsl+bVOGj4TZWQu+qGO5QJRApOsQ4mU10jWqw14Fjq3ku6+32jBNLqBCTWP0h+lVssU68j0rczL4U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=gDSBUgnm; arc=none smtp.client-ip=209.85.216.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="gDSBUgnm" Received: by mail-pj1-f46.google.com with SMTP id 98e67ed59e1d1-2b370e63d96so800329a91.3 for ; Sat, 11 May 2024 07:23:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1715437426; x=1716042226; darn=vger.kernel.org; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=ij9QXghq5sT27AeIfJmkIvMJjsUJrqQk+pfwrsxkzdg=; b=gDSBUgnmhjd58mKwjm/3EIu2qRHOAF9kESgpiVKy/rH8ZEVCSZjbwUmKgsGQfNBD9G IuCHSdjYL1u+D1QNgKEzovnyMepHRESzlS4Yykb+9DjN6pVZ2HBSFY08XrHR0l48K0NT ZoW5hQMAd6R1wlz2twBOty3B00VZ8tAATgdIWc6ql1FcetbBh1hYNp5aPCqCzO/CMTPb 0jA9r1i3zuEmJdMoB5go/LbKupKc6Sd/ZFv+UYQPOfBTB3jtx1r+WtUVzA4MYe1dIRPg 8PuOsqx402u1yvuIKxoYpjCXbE9xvZvYKhoLpC3I44lZaez1KGOJ8weKjFxACpqC9vHv EQjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715437426; x=1716042226; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ij9QXghq5sT27AeIfJmkIvMJjsUJrqQk+pfwrsxkzdg=; b=L1d1HlHQrBX2CgslEIaGR/oxhYvFuJm2vK6+Lwbkoo0J+jPjI9/32kef5oAs37QaBQ JcDGojW/946btHnBKwIU1FjP7L2BCXPXFs/JPaJYuOt+2Ogzd2MoocsseScDeNaejdwt BQWl5aXFWgNzc0SsEwyB75FGhttyvsi7W1SffJgvUllaxKlRtZ/YCcCI1hLkWBu9NT/5 vuojVUqcTY1+e9jnVOuDcNDYnZiUFrPmJCosnMt1+r8fqi2WP8+1FEivOaHBd1ziw7SB 5QZAOZWN+gKhzGdJbvNvfZyVt6U9Qab4ieORm/JUD/Xxj/mwurylFMg/kfwlyJ1Zp/ni Gsrw== X-Gm-Message-State: AOJu0YzXG1RHnBVOEw/Or7KYrtEVGeQwqgxWR6tMP+CtPws4GguIBSJu jB0xAayCADNx9nFxRdwgBBNV1s+oDJe/JuEximqEzFMJ0bHu6onXcUh49hZHo4puqW2RO4g6Rkk H X-Google-Smtp-Source: AGHT+IGDNG5WEuQP/IgpX5Iy7SwBeNBI/cpS4mT0KBzVCmEL/31wt1mp5zI1piVohwQ+2lkSzPIhfA== X-Received: by 2002:a17:903:246:b0:1eb:50eb:c07d with SMTP id d9443c01a7336-1ef441aa0a2mr62186585ad.4.1715437425627; Sat, 11 May 2024 07:23:45 -0700 (PDT) Received: from [192.168.1.150] ([198.8.77.194]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1ef0bf30c09sm49396245ad.130.2024.05.11.07.23.44 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 11 May 2024 07:23:44 -0700 (PDT) Message-ID: <93e54ea2-01c7-413b-a13d-2e731193acd7@kernel.dk> Date: Sat, 11 May 2024 08:23:44 -0600 Precedence: bulk X-Mailing-List: linux-block@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: Linus Torvalds Cc: "linux-block@vger.kernel.org" From: Jens Axboe Subject: [GIT PULL] Block updates for 6.10-rc1 Hi Linus, Here are the block updates for the 6.10 merge window. A pretty quiet round on the block front this time. Notably absent are the nvme changes for this series, as they have not been sent in yet. They will come in a followup pull request before -rc1. This pull request contains: - Add a partscan attribute in sysfs, fixing an issue with systemd relying on an internal interface that went away. - Attempt #2 at making long running discards interruptible. The previous attempt went into 6.9, but we ended up mostly reverting it as it had issues. - Remove old ida_simple API in bcache - Support for zoned write plugging, greatly improving the performance on zoned devices. - Remove the old throttle low interface, which has been experimental since 2017 and never made it beyond that and isn't being used. - Remove page->index debugging checks in brd, as it hasn't caught anything and prepares us for removing in struct page. - MD pull request from Song - Don't schedule block workers on isolated CPUs This will throw a merge conflict in block/ioctl.c due to a fix that went into 6.9 post -rc2, I'm attaching my resolution of it. Outside of that, there are various conflicts with pending changes in the other trees, I'll link them below. They are all pretty trivial. This is mostly an issue with the VFS tree, something we really need to coordinate better going forward. https://lore.kernel.org/all/20240402112137.1ee85957@canb.auug.org.au/ https://lore.kernel.org/all/20240402112746.3864d8a6@canb.auug.org.au/ https://lore.kernel.org/all/20240416124426.624cfaf9@canb.auug.org.au/ https://lore.kernel.org/all/20240508130207.3d83702f@canb.auug.org.au/ https://lore.kernel.org/all/20240510123419.42f727c1@canb.auug.org.au/ Please pull! The following changes since commit 39cd87c4eb2b893354f3b850f916353f2658ae6f: Linux 6.9-rc2 (2024-03-31 14:32:39 -0700) are available in the Git repository at: git://git.kernel.dk/linux.git tags/for-6.10/block-20240511 for you to fetch changes up to a3166c51702bb00b8f8b84022090cbab8f37be1a: blk-throttle: delay initialization until configuration (2024-05-09 09:44:56 -0600) ---------------------------------------------------------------- for-6.10/block-20240511 ---------------------------------------------------------------- Christoph Hellwig (12): block: add a bio_list_merge_init helper blk-cgroup: use bio_list_merge_init dm: use bio_list_merge_init btrfs use bio_list_merge_init block: add a disk_has_partscan helper block: add a partscan sysfs attribute for disks block: refine the EOF check in blkdev_iomap_begin block: remove the discard_granularity check in __blkdev_issue_discard block: move discard checks into the ioctl handler block: add a bio_chain_and_submit helper block: add a blk_alloc_discard_bio helper blk-lib: check for kill signal in ioctl BLKDISCARD Christophe JAILLET (1): bcache: Remove usage of the deprecated ida_simple_xx() API Damien Le Moal (46): block: Restore sector of flush requests block: Remove req_bio_endio() block: Introduce blk_zone_update_request_bio() block: Introduce bio_straddles_zones() and bio_offset_from_zone_start() block: Allow using bio_attempt_back_merge() internally block: Remember zone capacity when revalidating zones block: Introduce zone write plugging block: Fake max open zones limit when there is no limit block: Allow zero value of max_zone_append_sectors queue limit block: Implement zone append emulation block: Allow BIO-based drivers to use blk_revalidate_disk_zones() dm: Use the block layer zone append emulation scsi: sd: Use the block layer zone append emulation ublk_drv: Do not request ELEVATOR_F_ZBD_SEQ_WRITE elevator feature null_blk: Do not request ELEVATOR_F_ZBD_SEQ_WRITE elevator feature null_blk: Introduce zone_append_max_sectors attribute null_blk: Introduce fua attribute nvmet: zns: Do not reference the gendisk conv_zones_bitmap block: Remove BLK_STS_ZONE_RESOURCE block: Simplify blk_revalidate_disk_zones() interface block: mq-deadline: Remove support for zone write locking block: Remove elevator required features block: Do not check zone type in blk_check_zone_append() block: Move zone related debugfs attribute to blk-zoned.c block: Replace zone_wlock debugfs entry with zone_wplugs entry block: Remove zone write locking block: Do not force select mq-deadline with CONFIG_BLK_DEV_ZONED block: Do not special-case plugging of zone write operations null_blk: Have all null_handle_xxx() return a blk_status_t null_blk: Do zone resource management only if necessary null_blk: Simplify null_zone_write() block: use a per disk workqueue for zone write plugging dm: Check that a zoned table leads to a valid mapped device block: Exclude conventional zones when faking max open limit block: Fix zone write plug initialization from blk_revalidate_zone_cb() block: Fix reference counting for zone write plugs in error state block: Hold a reference on zone write plugs to schedule submission block: Unhash a zone write plug only if needed block: Do not remove zone write plugs still in use block: Fix flush request sector restore block: Fix handling of non-empty flush write requests to zones block: Improve blk_zone_write_plug_bio_merged() block: Improve zone write request completion handling block: Simplify blk_zone_write_plug_bio_endio() block: Simplify zone write plug BIO abort block: Cleanup blk_revalidate_zone_cb() Florian-Ewald Mueller (1): md: add check for sleepers in md_wakeup_thread() INAGAKI Hiroshi (1): block: fix and simplify blkdevparts= cmdline parsing Jens Axboe (2): Merge tag 'md-6.10-20240425' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md into for-6.10/block Merge tag 'md-6.10-20240502' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md into for-6.10/block Jiapeng Chong (1): block/mq-deadline: Remove some unused functions Johannes Thumshirn (1): block: check if zone_wplugs_hash exists in queue_zone_wplugs_show John Garry (2): blk-throttle: Only use seq_printf() in tg_prfill_limit() block: Call blkdev_dio_unaligned() from blkdev_direct_IO() Justin Stitt (1): block/ioctl: prefer different overflow check Kefeng Wang (1): blk-cgroup: use group allocation/free of per-cpu counters API Keith Busch (1): block: add a bio_await_chain helper Li Nan (3): md: Fix overflow in is_mddev_idle md: don't account sync_io if iostats of the disk is disabled md: Revert "md: Fix overflow in is_mddev_idle" Matthew Mirvish (1): bcache: fix variable length array abuse in btree_iter Matthew Wilcox (Oracle) (1): brd: Remove use of page->index Ming Lei (1): blk-mq: don't schedule block kworker on isolated CPUs Yu Kuai (7): md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING md: fix resync softlockup when bitmap size is less than array size block: add plug while submitting IO block: support to account io_ticks precisely block: fix that util can be greater than 100% blk-throttle: remove CONFIG_BLK_DEV_THROTTLING_LOW blk-throttle: delay initialization until configuration Zhu Yanjun (2): null_blk: Fix missing mutex_destroy() at module removal null_blk: Fix the WARNING: modpost: missing MODULE_DESCRIPTION() linke li (1): sbitmap: use READ_ONCE to access map->word Documentation/ABI/stable/sysfs-block | 22 +- arch/loongarch/configs/loongson3_defconfig | 1 - block/Kconfig | 16 - block/Makefile | 1 - block/bio.c | 50 +- block/blk-cgroup-rwstat.c | 18 +- block/blk-cgroup.c | 9 +- block/blk-core.c | 26 +- block/blk-flush.c | 2 + block/blk-lib.c | 68 +- block/blk-merge.c | 25 +- block/blk-mq-debugfs-zoned.c | 22 - block/blk-mq-debugfs.c | 3 +- block/blk-mq-debugfs.h | 6 +- block/blk-mq.c | 184 +-- block/blk-mq.h | 31 - block/blk-settings.c | 46 +- block/blk-stat.c | 3 - block/blk-sysfs.c | 10 +- block/blk-throttle.c | 1019 ++--------------- block/blk-throttle.h | 46 +- block/blk-zoned.c | 1690 ++++++++++++++++++++++++---- block/blk.h | 97 +- block/elevator.c | 46 +- block/elevator.h | 1 - block/fops.c | 31 +- block/genhd.c | 32 +- block/ioctl.c | 42 +- block/mq-deadline.c | 204 +--- block/partitions/cmdline.c | 49 +- block/partitions/core.c | 5 +- drivers/block/brd.c | 40 +- drivers/block/null_blk/main.c | 43 +- drivers/block/null_blk/null_blk.h | 2 + drivers/block/null_blk/zoned.c | 358 +++--- drivers/block/ublk_drv.c | 5 +- drivers/block/virtio_blk.c | 2 +- drivers/md/bcache/bset.c | 44 +- drivers/md/bcache/bset.h | 28 +- drivers/md/bcache/btree.c | 40 +- drivers/md/bcache/super.c | 15 +- drivers/md/bcache/sysfs.c | 2 +- drivers/md/bcache/writeback.c | 10 +- drivers/md/dm-bio-prison-v2.c | 3 +- drivers/md/dm-cache-target.c | 12 +- drivers/md/dm-clone-target.c | 14 +- drivers/md/dm-core.h | 2 +- drivers/md/dm-era-target.c | 3 +- drivers/md/dm-mpath.c | 3 +- drivers/md/dm-table.c | 3 +- drivers/md/dm-thin.c | 12 +- drivers/md/dm-vdo/data-vio.c | 3 +- drivers/md/dm-vdo/flush.c | 3 +- drivers/md/dm-zone.c | 501 ++------- drivers/md/dm.c | 72 +- drivers/md/dm.h | 2 - drivers/md/md-bitmap.c | 6 +- drivers/md/md.c | 7 +- drivers/md/md.h | 3 +- drivers/md/raid5.c | 15 +- drivers/nvme/host/core.c | 2 +- drivers/nvme/target/zns.c | 10 +- drivers/scsi/scsi_lib.c | 1 - drivers/scsi/sd.c | 8 - drivers/scsi/sd.h | 19 - drivers/scsi/sd_zbc.c | 335 +----- fs/btrfs/raid56.c | 3 +- include/linux/bio.h | 11 + include/linux/blk-mq.h | 85 +- include/linux/blk_types.h | 30 +- include/linux/blkdev.h | 116 +- lib/sbitmap.c | 8 +- 72 files changed, 2646 insertions(+), 3040 deletions(-) delete mode 100644 block/blk-mq-debugfs-zoned.c diff --cc block/ioctl.c index f505f9c341eb,d7a6c6931a1e..c7db3bd2d653 --- a/block/ioctl.c