From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Josef Bacik <josef@toxicpanda.com>,
Filipe Manana <fdmanana@suse.com>,
David Sterba <dsterba@suse.com>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.12 203/218] btrfs: make the extent map shrinker run asynchronously as a work queue job
Date: Thu, 3 Jul 2025 16:42:31 +0200 [thread overview]
Message-ID: <20250703144004.340406402@linuxfoundation.org> (raw)
In-Reply-To: <20250703143955.956569535@linuxfoundation.org>
6.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Filipe Manana <fdmanana@suse.com>
[ Upstream commit 1020443840569535f6025a855958f07ea3eebf71 ]
Currently the extent map shrinker is run synchronously for kswapd tasks
that end up calling the fs shrinker (fs/super.c:super_cache_scan()).
This has some disadvantages and for some heavy workloads with memory
pressure it can cause some delays and stalls that make a machine
unresponsive for some periods. This happens because:
1) We can have several kswapd tasks on machines with multiple NUMA zones,
and running the extent map shrinker concurrently can cause high
contention on some spin locks, namely the spin locks that protect
the radix tree that tracks roots, the per root xarray that tracks
open inodes and the list of delayed iputs. This not only delays the
shrinker but also causes high CPU consumption and makes the task
running the shrinker monopolize a core, resulting in the symptoms
of an unresponsive system. This was noted in previous commits such as
commit ae1e766f623f ("btrfs: only run the extent map shrinker from
kswapd tasks");
2) The extent map shrinker's iteration over inodes can often be slow, even
after changing the data structure that tracks open inodes for a root
from a red black tree (up to kernel 6.10) to an xarray (kernel 6.10+).
The transition to the xarray while it made things a bit faster, it's
still somewhat slow - for example in a test scenario with 10000 inodes
that have no extent maps loaded, the extent map shrinker took between
5ms to 8ms, using a release, non-debug kernel. Iterating over the
extent maps of an inode can also be slow if have an inode with many
thousands of extent maps, since we use a red black tree to track and
search extent maps. So having the extent map shrinker run synchronously
adds extra delay for other things a kswapd task does.
So make the extent map shrinker run asynchronously as a job for the
system unbounded workqueue, just like what we do for data and metadata
space reclaim jobs.
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/btrfs/disk-io.c | 2 ++
fs/btrfs/extent_map.c | 51 ++++++++++++++++++++++++++++++++++++-------
fs/btrfs/extent_map.h | 3 ++-
fs/btrfs/fs.h | 2 ++
fs/btrfs/super.c | 13 +++--------
5 files changed, 52 insertions(+), 19 deletions(-)
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 96282bf28b19c..e655fa3bfd9be 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -2785,6 +2785,7 @@ void btrfs_init_fs_info(struct btrfs_fs_info *fs_info)
btrfs_init_scrub(fs_info);
btrfs_init_balance(fs_info);
btrfs_init_async_reclaim_work(fs_info);
+ btrfs_init_extent_map_shrinker_work(fs_info);
rwlock_init(&fs_info->block_group_cache_lock);
fs_info->block_group_cache_tree = RB_ROOT_CACHED;
@@ -4334,6 +4335,7 @@ void __cold close_ctree(struct btrfs_fs_info *fs_info)
cancel_work_sync(&fs_info->async_reclaim_work);
cancel_work_sync(&fs_info->async_data_reclaim_work);
cancel_work_sync(&fs_info->preempt_reclaim_work);
+ cancel_work_sync(&fs_info->extent_map_shrinker_work);
/* Cancel or finish ongoing discard work */
btrfs_discard_cleanup(fs_info);
diff --git a/fs/btrfs/extent_map.c b/fs/btrfs/extent_map.c
index d67abf5f97a77..61477cb69a6fd 100644
--- a/fs/btrfs/extent_map.c
+++ b/fs/btrfs/extent_map.c
@@ -1128,7 +1128,8 @@ struct btrfs_em_shrink_ctx {
static long btrfs_scan_inode(struct btrfs_inode *inode, struct btrfs_em_shrink_ctx *ctx)
{
- const u64 cur_fs_gen = btrfs_get_fs_generation(inode->root->fs_info);
+ struct btrfs_fs_info *fs_info = inode->root->fs_info;
+ const u64 cur_fs_gen = btrfs_get_fs_generation(fs_info);
struct extent_map_tree *tree = &inode->extent_tree;
long nr_dropped = 0;
struct rb_node *node;
@@ -1187,7 +1188,8 @@ static long btrfs_scan_inode(struct btrfs_inode *inode, struct btrfs_em_shrink_c
* lock. This is to avoid slowing other tasks trying to take the
* lock.
*/
- if (need_resched() || rwlock_needbreak(&tree->lock))
+ if (need_resched() || rwlock_needbreak(&tree->lock) ||
+ btrfs_fs_closing(fs_info))
break;
node = next;
}
@@ -1261,7 +1263,8 @@ static long btrfs_scan_root(struct btrfs_root *root, struct btrfs_em_shrink_ctx
ctx->last_ino = btrfs_ino(inode);
btrfs_add_delayed_iput(inode);
- if (ctx->scanned >= ctx->nr_to_scan)
+ if (ctx->scanned >= ctx->nr_to_scan ||
+ btrfs_fs_closing(inode->root->fs_info))
break;
cond_resched();
@@ -1290,16 +1293,19 @@ static long btrfs_scan_root(struct btrfs_root *root, struct btrfs_em_shrink_ctx
return nr_dropped;
}
-long btrfs_free_extent_maps(struct btrfs_fs_info *fs_info, long nr_to_scan)
+static void btrfs_extent_map_shrinker_worker(struct work_struct *work)
{
+ struct btrfs_fs_info *fs_info;
struct btrfs_em_shrink_ctx ctx;
u64 start_root_id;
u64 next_root_id;
bool cycled = false;
long nr_dropped = 0;
+ fs_info = container_of(work, struct btrfs_fs_info, extent_map_shrinker_work);
+
ctx.scanned = 0;
- ctx.nr_to_scan = nr_to_scan;
+ ctx.nr_to_scan = atomic64_read(&fs_info->extent_map_shrinker_nr_to_scan);
/*
* In case we have multiple tasks running this shrinker, make the next
@@ -1317,12 +1323,12 @@ long btrfs_free_extent_maps(struct btrfs_fs_info *fs_info, long nr_to_scan)
if (trace_btrfs_extent_map_shrinker_scan_enter_enabled()) {
s64 nr = percpu_counter_sum_positive(&fs_info->evictable_extent_maps);
- trace_btrfs_extent_map_shrinker_scan_enter(fs_info, nr_to_scan,
+ trace_btrfs_extent_map_shrinker_scan_enter(fs_info, ctx.nr_to_scan,
nr, ctx.last_root,
ctx.last_ino);
}
- while (ctx.scanned < ctx.nr_to_scan) {
+ while (ctx.scanned < ctx.nr_to_scan && !btrfs_fs_closing(fs_info)) {
struct btrfs_root *root;
unsigned long count;
@@ -1380,5 +1386,34 @@ long btrfs_free_extent_maps(struct btrfs_fs_info *fs_info, long nr_to_scan)
ctx.last_ino);
}
- return nr_dropped;
+ atomic64_set(&fs_info->extent_map_shrinker_nr_to_scan, 0);
+}
+
+void btrfs_free_extent_maps(struct btrfs_fs_info *fs_info, long nr_to_scan)
+{
+ /*
+ * Do nothing if the shrinker is already running. In case of high memory
+ * pressure we can have a lot of tasks calling us and all passing the
+ * same nr_to_scan value, but in reality we may need only to free
+ * nr_to_scan extent maps (or less). In case we need to free more than
+ * that, we will be called again by the fs shrinker, so no worries about
+ * not doing enough work to reclaim memory from extent maps.
+ * We can also be repeatedly called with the same nr_to_scan value
+ * simply because the shrinker runs asynchronously and multiple calls
+ * to this function are made before the shrinker does enough progress.
+ *
+ * That's why we set the atomic counter to nr_to_scan only if its
+ * current value is zero, instead of incrementing the counter by
+ * nr_to_scan.
+ */
+ if (atomic64_cmpxchg(&fs_info->extent_map_shrinker_nr_to_scan, 0, nr_to_scan) != 0)
+ return;
+
+ queue_work(system_unbound_wq, &fs_info->extent_map_shrinker_work);
+}
+
+void btrfs_init_extent_map_shrinker_work(struct btrfs_fs_info *fs_info)
+{
+ atomic64_set(&fs_info->extent_map_shrinker_nr_to_scan, 0);
+ INIT_WORK(&fs_info->extent_map_shrinker_work, btrfs_extent_map_shrinker_worker);
}
diff --git a/fs/btrfs/extent_map.h b/fs/btrfs/extent_map.h
index 5154a8f1d26c9..cd123b266b641 100644
--- a/fs/btrfs/extent_map.h
+++ b/fs/btrfs/extent_map.h
@@ -189,6 +189,7 @@ void btrfs_drop_extent_map_range(struct btrfs_inode *inode,
int btrfs_replace_extent_map_range(struct btrfs_inode *inode,
struct extent_map *new_em,
bool modified);
-long btrfs_free_extent_maps(struct btrfs_fs_info *fs_info, long nr_to_scan);
+void btrfs_free_extent_maps(struct btrfs_fs_info *fs_info, long nr_to_scan);
+void btrfs_init_extent_map_shrinker_work(struct btrfs_fs_info *fs_info);
#endif
diff --git a/fs/btrfs/fs.h b/fs/btrfs/fs.h
index bb822e425d7fa..374843aca60d8 100644
--- a/fs/btrfs/fs.h
+++ b/fs/btrfs/fs.h
@@ -639,6 +639,8 @@ struct btrfs_fs_info {
spinlock_t extent_map_shrinker_lock;
u64 extent_map_shrinker_last_root;
u64 extent_map_shrinker_last_ino;
+ atomic64_t extent_map_shrinker_nr_to_scan;
+ struct work_struct extent_map_shrinker_work;
/* Protected by 'trans_lock'. */
struct list_head dirty_cowonly_roots;
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index bcb8def4ade20..6119a06b05693 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -28,7 +28,6 @@
#include <linux/btrfs.h>
#include <linux/security.h>
#include <linux/fs_parser.h>
-#include <linux/swap.h>
#include "messages.h"
#include "delayed-inode.h"
#include "ctree.h"
@@ -2399,16 +2398,10 @@ static long btrfs_free_cached_objects(struct super_block *sb, struct shrink_cont
const long nr_to_scan = min_t(unsigned long, LONG_MAX, sc->nr_to_scan);
struct btrfs_fs_info *fs_info = btrfs_sb(sb);
- /*
- * We may be called from any task trying to allocate memory and we don't
- * want to slow it down with scanning and dropping extent maps. It would
- * also cause heavy lock contention if many tasks concurrently enter
- * here. Therefore only allow kswapd tasks to scan and drop extent maps.
- */
- if (!current_is_kswapd())
- return 0;
+ btrfs_free_extent_maps(fs_info, nr_to_scan);
- return btrfs_free_extent_maps(fs_info, nr_to_scan);
+ /* The extent map shrinker runs asynchronously, so always return 0. */
+ return 0;
}
static const struct super_operations btrfs_super_ops = {
--
2.39.5
next prev parent reply other threads:[~2025-07-03 14:54 UTC|newest]
Thread overview: 243+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-03 14:39 [PATCH 6.12 000/218] 6.12.36-rc1 review Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 001/218] cifs: Correctly set SMB1 SessionKey field in Session Setup Request Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 002/218] cifs: Fix cifs_query_path_info() for Windows NT servers Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 003/218] cifs: Fix encoding of SMB1 Session Setup NTLMSSP Request in non-UNICODE mode Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 004/218] NFSv4: Always set NLINK even if the server doesnt support it Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 005/218] NFSv4.2: fix listxattr to return selinux security label Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 006/218] NFSv4.2: fix setattr caching of TIME_[MODIFY|ACCESS]_SET when timestamps are delegated Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 007/218] mailbox: Not protect module_put with spin_lock_irqsave Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 008/218] mfd: max14577: Fix wakeup source leaks on device unbind Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 009/218] sunrpc: dont immediately retransmit on seqno miss Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 010/218] dm vdo indexer: dont read request structure after enqueuing Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 011/218] leds: multicolor: Fix intensity setting while SW blinking Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 012/218] fuse: fix race between concurrent setattrs from multiple nodes Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 013/218] cxl/region: Add a dev_err() on missing target list entries Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 014/218] NFSv4: xattr handlers should check for absent nfs filehandles Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 015/218] hwmon: (pmbus/max34440) Fix support for max34451 Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 016/218] ksmbd: allow a filename to contain special characters on SMB3.1.1 posix extension Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 017/218] ksmbd: provide zero as a unique ID to the Mac client Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 018/218] rust: module: place cleanup_module() in .exit.text section Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 019/218] rust: arm: fix unknown (to Clang) argument -mno-fdpic Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 020/218] Revert "iommu/amd: Prevent binding other PCI drivers to IOMMU PCI devices" Greg Kroah-Hartman
2025-07-03 14:51 ` Lukas Wunner
2025-07-04 6:42 ` Lukas Wunner
2025-07-04 8:35 ` Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 021/218] dmaengine: idxd: Check availability of workqueue allocated by idxd wq driver before using Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 022/218] dmaengine: xilinx_dma: Set dma_device directions Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 023/218] PCI: dwc: Make link training more robust by setting PORT_LOGIC_LINK_WIDTH to one lane Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 024/218] PCI: apple: Fix missing OF node reference in apple_pcie_setup_port Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 025/218] PCI: imx6: Add workaround for errata ERR051624 Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 026/218] nvme-tcp: fix I/O stalls on congested sockets Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 027/218] nvme-tcp: sanitize request list handling Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 028/218] md/md-bitmap: fix dm-raid max_write_behind setting Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 029/218] amd/amdkfd: fix a kfd_process ref leak Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 030/218] bcache: fix NULL pointer in cache_set_flush() Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 031/218] drm/amdgpu: seq64 memory unmap uses uninterruptible lock Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 032/218] drm/scheduler: signal scheduled fence when kill job Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 033/218] iio: pressure: zpa2326: Use aligned_s64 for the timestamp Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 034/218] um: Add cmpxchg8b_emu and checksum functions to asm-prototypes.h Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 035/218] um: use proper care when taking mmap lock during segfault Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 036/218] 8250: microchip: pci1xxxx: Add PCIe Hot reset disable support for Rev C0 and later devices Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 037/218] coresight: Only check bottom two claim bits Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 038/218] usb: dwc2: also exit clock_gating when stopping udc while suspended Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 039/218] iio: adc: ad_sigma_delta: Fix use of uninitialized status_pos Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 040/218] misc: tps6594-pfsm: Add NULL pointer check in tps6594_pfsm_probe() Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 041/218] usb: potential integer overflow in usbg_make_tpg() Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 042/218] tty: serial: uartlite: register uart driver in init Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 043/218] usb: common: usb-conn-gpio: use a unique name for usb connector device Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 044/218] usb: Add checks for snprintf() calls in usb_alloc_dev() Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 045/218] usb: cdc-wdm: avoid setting WDM_READ for ZLP-s Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 046/218] usb: gadget: f_hid: wake up readers on disable/unbind Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 047/218] usb: typec: displayport: Receive DP Status Update NAK request exit dp altmode Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 048/218] usb: typec: mux: do not return on EOPNOTSUPP in {mux, switch}_set Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 049/218] riscv: add a data fence for CMODX in the kernel mode Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 050/218] ALSA: hda: Ignore unsol events for cards being shut down Greg Kroah-Hartman
2025-07-03 14:39 ` [PATCH 6.12 051/218] ALSA: hda: Add new pci id for AMD GPU display HD audio controller Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 052/218] ALSA: usb-audio: Add a quirk for Lenovo Thinkpad Thunderbolt 3 dock Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 053/218] ASoC: rt1320: fix speaker noise when volume bar is 100% Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 054/218] ceph: fix possible integer overflow in ceph_zero_objects() Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 055/218] scsi: ufs: core: Dont perform UFS clkscaling during host async scan Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 056/218] ovl: Check for NULL d_inode() in ovl_dentry_upper() Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 057/218] btrfs: handle csum tree error with rescue=ibadroots correctly Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 058/218] drm/i915/gem: Allow EXEC_CAPTURE on recoverable contexts on DG1 Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 059/218] Revert "drm/i915/gem: Allow EXEC_CAPTURE on recoverable contexts on DG1" Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 060/218] btrfs: factor out nocow ordered extent and extent map generation into a helper Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 061/218] btrfs: use unsigned types for constants defined as bit shifts Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 062/218] btrfs: fix qgroup reservation leak on failure to allocate ordered extent Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 063/218] fs/jfs: consolidate sanity checking in dbMount Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 064/218] jfs: validate AG parameters in dbMount() to prevent crashes Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 065/218] ASoC: codec: wcd9335: Convert to GPIO descriptors Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 066/218] ASoC: codecs: wcd9335: Fix missing free of regulator supplies Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 067/218] f2fs: dont over-report free space or inodes in statvfs Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 068/218] PCI: apple: Use helper function for_each_child_of_node_scoped() Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 069/218] PCI: apple: Set only available ports up Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 070/218] accel/ivpu: Do not fail on cmdq if failed to allocate preemption buffers Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 071/218] accel/ivpu: Remove copy engine support Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 072/218] accel/ivpu: Make command queue ID allocated on XArray Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 073/218] accel/ivpu: Separate DB ID and CMDQ ID allocations from CMDQ allocation Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 074/218] accel/ivpu: Add debugfs interface for setting HWS priority bands Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 075/218] accel/ivpu: Trigger device recovery on engine reset/resume failure Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 076/218] af_unix: Dont leave consecutive consumed OOB skbs Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 077/218] i2c: tiny-usb: disable zero-length read messages Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 078/218] i2c: robotfuzz-osif: " Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 079/218] ata: ahci: Use correct DMI identifier for ASUSPRO-D840SA LPM quirk Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 080/218] smb: client: remove \t from TP_printk statements Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 081/218] mm/damon/sysfs-schemes: free old damon_sysfs_scheme_filter->memcg_path on write Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 082/218] ASoC: amd: yc: Add DMI quirk for Lenovo IdeaPad Slim 5 15 Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 083/218] s390/pkey: Prevent overflow in size calculation for memdup_user() Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 084/218] fs/proc/task_mmu: fix PAGE_IS_PFNZERO detection for the huge zero folio Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 085/218] lib/group_cpus: fix NULL pointer dereference from group_cpus_evenly() Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 086/218] Revert "riscv: Define TASK_SIZE_MAX for __access_ok()" Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 087/218] Revert "riscv: misaligned: fix sleeping function called during misaligned access handling" Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 088/218] drm/dp: Change AUX DPCD probe address from DPCD_REV to LANE0_1_STATUS Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 089/218] drm/xe/display: Add check for alloc_ordered_workqueue() Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 090/218] HID: wacom: fix crash in wacom_aes_battery_handler() Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 091/218] atm: clip: prevent NULL deref in clip_push() Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 092/218] Bluetooth: hci_core: Fix use-after-free in vhci_flush() Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 093/218] ALSA: usb-audio: Fix out-of-bounds read in snd_usb_get_audioformat_uac3() Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 094/218] attach_recursive_mnt(): do not lock the covering tree when sliding something under it Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 095/218] libbpf: Fix null pointer dereference in btf_dump__free on allocation failure Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 096/218] ethernet: ionic: Fix DMA mapping tests Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 097/218] wifi: mac80211: fix beacon interval calculation overflow Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 098/218] af_unix: Dont set -ECONNRESET for consumed OOB skb Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 099/218] wifi: mac80211: Add link iteration macro for link data Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 100/218] wifi: mac80211: Create separate links for VLAN interfaces Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 101/218] wifi: mac80211: finish link init before RCU publish Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 102/218] vsock/uapi: fix linux/vm_sockets.h userspace compilation errors Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 103/218] bnxt: properly flush XDP redirect lists Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 104/218] um: ubd: Add missing error check in start_io_thread() Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 105/218] libbpf: Fix possible use-after-free for externs Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 106/218] net: enetc: Correct endianness handling in _enetc_rd_reg64 Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 107/218] netlink: specs: tc: replace underscores with dashes in names Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 108/218] atm: Release atm_dev_mutex after removing procfs in atm_dev_deregister() Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 109/218] ALSA: hda/realtek: Fix built-in mic on ASUS VivoBook X507UAR Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 110/218] net: selftests: fix TCP packet checksum Greg Kroah-Hartman
2025-07-03 14:40 ` [PATCH 6.12 111/218] drm/amdgpu/discovery: optionally use fw based ip discovery Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 112/218] drm/amd: Adjust output for discovery error handling Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 113/218] drm/i915: fix build error some more Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 114/218] drm/bridge: ti-sn65dsi86: make use of debugfs_init callback Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 115/218] drm/bridge: ti-sn65dsi86: Add HPD for DisplayPort connector type Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 116/218] drm/xe: Process deferred GGTT node removals on device unwind Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 117/218] smb: client: fix potential deadlock when reconnecting channels Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 118/218] smb: smbdirect: add smbdirect_pdu.h with protocol definitions Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 119/218] smb: client: make use of common smbdirect_pdu.h Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 120/218] smb: smbdirect: add smbdirect.h with public structures Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 121/218] smb: smbdirect: add smbdirect_socket.h Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 122/218] smb: client: make use of common smbdirect_socket Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 123/218] smb: smbdirect: introduce smbdirect_socket_parameters Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 124/218] smb: client: make use of common smbdirect_socket_parameters Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 125/218] cifs: Fix the smbd_response slab to allow usercopy Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 126/218] cifs: Fix reading into an ITER_FOLIOQ from the smbdirect code Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 127/218] EDAC/amd64: Fix size calculation for Non-Power-of-Two DIMMs Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 128/218] x86/traps: Initialize DR6 by writing its architectural reset value Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 129/218] staging: rtl8723bs: Avoid memset() in aes_cipher() and aes_decipher() Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 130/218] dt-bindings: serial: 8250: Make clocks and clock-frequency exclusive Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 131/218] serial: core: restore of_node information in sysfs Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 132/218] serial: imx: Restore original RXTL for console to fix data loss Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 133/218] Bluetooth: L2CAP: Fix L2CAP MTU negotiation Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 134/218] dm-raid: fix variable in journal device check Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 135/218] btrfs: fix a race between renames and directory logging Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 136/218] btrfs: update superblocks device bytes_used when dropping chunk Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 137/218] spi: spi-cadence-quadspi: Fix pm runtime unbalance Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 138/218] net: libwx: fix the creation of page_pool Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 139/218] maple_tree: fix MA_STATE_PREALLOC flag in mas_preallocate() Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 140/218] mm/gup: revert "mm: gup: fix infinite loop within __get_longterm_locked" Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 141/218] f2fs: fix to zero post-eof page Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 142/218] HID: lenovo: Restrict F7/9/11 mode to compact keyboards only Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 143/218] HID: wacom: fix memory leak on kobject creation failure Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 144/218] HID: wacom: fix memory leak on sysfs attribute " Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 145/218] HID: wacom: fix kobject reference count leak Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 146/218] scsi: megaraid_sas: Fix invalid node index Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 147/218] scsi: ufs: core: Fix clk scaling to be conditional in reset and restore Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 148/218] drm/ast: Fix comment on modeset lock Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 149/218] drm/cirrus-qemu: Fix pitch programming Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 150/218] drm/etnaviv: Protect the schedulers pending list with its lock Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 151/218] drm/tegra: Assign plane type before registration Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 152/218] drm/tegra: Fix a possible null pointer dereference Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 153/218] drm/udl: Unregister device before cleaning up on disconnect Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 154/218] drm/msm/gpu: Fix crash when throttling GPU immediately during boot Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 155/218] drm/amdkfd: Fix race in GWS queue scheduling Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 156/218] drm/bridge: cdns-dsi: Fix the clock variable for mode_valid() Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 157/218] drm/bridge: cdns-dsi: Fix phy de-init and flag it so Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 158/218] drm/bridge: cdns-dsi: Fix connecting to next bridge Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 159/218] drm/bridge: cdns-dsi: Check return value when getting default PHY config Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 160/218] drm/bridge: cdns-dsi: Wait for Clk and Data Lanes to be ready Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 161/218] drm/amd/display: Add null pointer check for get_first_active_display() Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 162/218] drm/amdgpu: amdgpu_vram_mgr_new(): Clamp lpfn to total vram Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 163/218] drm/amd/display: Correct non-OLED pre_T11_delay Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 164/218] drm/xe/vm: move rebind_work init earlier Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 165/218] drm/xe/sched: stop re-submitting signalled jobs Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 166/218] drm/xe/guc_submit: add back fix Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 167/218] drm/amd/display: Fix RMCM programming seq errors Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 168/218] drm/amdgpu: Add kicker device detection Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 169/218] drm/amd/display: Check dce_hwseq before dereferencing it Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 170/218] drm/xe: Fix memset on iomem Greg Kroah-Hartman
2025-07-03 14:41 ` [PATCH 6.12 171/218] drm/xe: Fix taking invalid lock on wedge Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 172/218] drm/xe: Fix early wedge on GuC load failure Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 173/218] drm/i915/dsi: Fix off by one in BXT_MIPI_TRANS_VTOTAL Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 174/218] drm/amdgpu: Fix SDMA UTC_L1 handling during start/stop sequences Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 175/218] drm/amdgpu: switch job hw_fence to amdgpu_fence Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 176/218] drm/amd/display: Fix mpv playback corruption on weston Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 177/218] media: uvcvideo: Rollback non processed entities on error Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 178/218] x86/fpu: Refactor xfeature bitmask update code for sigframe XSAVE Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 179/218] x86/pkeys: Simplify PKRU update in signal frame Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 180/218] net: libwx: fix Tx L4 checksum Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 181/218] io_uring: fix potential page leak in io_sqe_buffer_register() Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 182/218] io_uring/rsrc: fix folio unpinning Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 183/218] io_uring/rsrc: dont rely on user vaddr alignment Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 184/218] io_uring/net: improve recv bundles Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 185/218] io_uring/net: only retry recv bundle for a full transfer Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 186/218] io_uring/net: only consider msg_inq if larger than 1 Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 187/218] io_uring/net: always use current transfer count for buffer put Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 188/218] io_uring/net: mark iov as dynamically allocated even for single segments Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 189/218] io_uring/kbuf: flag partial buffer mappings Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 190/218] mm/vma: reset VMA iterator on commit_merge() OOM failure Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 191/218] r8169: add support for RTL8125D Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 192/218] net: phy: realtek: merge the drivers for internal NBase-T PHYs Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 193/218] net: phy: realtek: add RTL8125D-internal PHY Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 194/218] btrfs: do proper folio cleanup when cow_file_range() failed Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 195/218] iio: dac: ad3552r: changes to use FIELD_PREP Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 196/218] iio: dac: ad3552r: extract common code (no changes in behavior intended) Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 197/218] iio: dac: ad3552r-common: fix ad3541/2r ranges Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 198/218] drm/xe: Carve out wopcm portion from the stolen memory Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 199/218] usb: typec: tcpm: PSSourceOffTimer timeout in PR_Swap enters ERROR_RECOVERY Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 200/218] drm/msm/dp: account for widebus and yuv420 during mode validation Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 201/218] drm/fbdev-dma: Add shadow buffering for deferred I/O Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 202/218] btrfs: skip inodes without loaded extent maps when shrinking extent maps Greg Kroah-Hartman
2025-07-03 14:42 ` Greg Kroah-Hartman [this message]
2025-07-03 14:42 ` [PATCH 6.12 204/218] btrfs: do regular iput instead of delayed iput during extent map shrinking Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 205/218] riscv/atomic: Do proper sign extension also for unsigned in arch_cmpxchg Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 206/218] LoongArch: Set hugetlb mmap base address aligned with pmd size Greg Kroah-Hartman
2025-07-05 11:45 ` Miguel Ojeda
2025-07-05 14:34 ` Sasha Levin
2025-07-03 14:42 ` [PATCH 6.12 207/218] arm64: dts: rockchip: Add avdd HDMI supplies to RockPro64 board dtsi Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 208/218] ALSA: hda/realtek: Bass speaker fixup for ASUS UM5606KA Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 209/218] drm/amdkfd: remove gfx 12 trap handler page size cap Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 210/218] drm/amdkfd: Fix instruction hazard in gfx12 trap handler Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 211/218] net: stmmac: Fix accessing freed irq affinity_hint Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 212/218] spi: spi-mem: Extend spi-mem operations with a per-operation maximum frequency Greg Kroah-Hartman
2025-07-04 11:55 ` Pratyush Yadav
2025-07-04 12:17 ` Greg Kroah-Hartman
2025-07-04 14:39 ` Mark Brown
2025-07-04 16:43 ` Greg Kroah-Hartman
2025-07-04 15:45 ` Pratyush Yadav
2025-07-04 16:43 ` Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 213/218] spi: spi-mem: Add a new controller capability Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 214/218] spi: fsl-qspi: Support per spi-mem operation frequency switches Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 215/218] spi: fsl-qspi: use devm function instead of driver remove Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 216/218] btrfs: zoned: fix extent range end unlock in cow_file_range() Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 217/218] btrfs: fix use-after-free on inode when scanning root during em shrinking Greg Kroah-Hartman
2025-07-03 14:42 ` [PATCH 6.12 218/218] spi: fsl-qspi: Fix double cleanup in probe error path Greg Kroah-Hartman
2025-07-03 18:06 ` [PATCH 6.12 000/218] 6.12.36-rc1 review Florian Fainelli
2025-07-03 19:55 ` Hardik Garg
2025-07-03 22:14 ` Shuah Khan
2025-07-04 5:57 ` Ron Economos
2025-07-04 11:13 ` Jon Hunter
2025-07-04 12:14 ` Mark Brown
2025-07-04 12:51 ` Naresh Kamboju
2025-07-04 23:10 ` Miguel Ojeda
2025-07-06 6:51 ` Greg KH
2025-07-05 3:05 ` Peter Schneider
2025-07-05 13:50 ` Pascal Ernster
2025-07-06 6:51 ` Greg Kroah-Hartman
2025-07-06 6:56 ` Pascal Ernster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250703144004.340406402@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=dsterba@suse.com \
--cc=fdmanana@suse.com \
--cc=josef@toxicpanda.com \
--cc=patches@lists.linux.dev \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.