public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Yu Zhao <yuzhao@google.com>,
	"T.J. Mercier" <tjmercier@google.com>,
	Charan Teja Kalla <quic_charante@quicinc.com>,
	Hillf Danton <hdanton@sina.com>,
	Jaroslav Pulchart <jaroslav.pulchart@gooddata.com>,
	Kairui Song <ryncsn@gmail.com>,
	Kalesh Singh <kaleshsingh@google.com>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: [PATCH 6.6 139/166] mm/mglru: respect min_ttl_ms with memcgs
Date: Mon, 18 Dec 2023 14:51:45 +0100	[thread overview]
Message-ID: <20231218135111.322074337@linuxfoundation.org> (raw)
In-Reply-To: <20231218135104.927894164@linuxfoundation.org>

6.6-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Yu Zhao <yuzhao@google.com>

commit 8aa420617918d12d1f5d55030a503c9418e73c2c upstream.

While investigating kswapd "consuming 100% CPU" [1] (also see "mm/mglru:
try to stop at high watermarks"), it was discovered that the memcg LRU can
breach the thrashing protection imposed by min_ttl_ms.

Before the memcg LRU:
  kswapd()
    shrink_node_memcgs()
      mem_cgroup_iter()
        inc_max_seq()  // always hit a different memcg
    lru_gen_age_node()
      mem_cgroup_iter()
        check the timestamp of the oldest generation

After the memcg LRU:
  kswapd()
    shrink_many()
      restart:
        iterate the memcg LRU:
          inc_max_seq()  // occasionally hit the same memcg
          if raced with lru_gen_rotate_memcg():
            goto restart
    lru_gen_age_node()
      mem_cgroup_iter()
        check the timestamp of the oldest generation

Specifically, when the restart happens in shrink_many(), it needs to stick
with the (memcg LRU) generation it began with.  In other words, it should
neither re-read memcg_lru->seq nor age an lruvec of a different
generation.  Otherwise it can hit the same memcg multiple times without
giving lru_gen_age_node() a chance to check the timestamp of that memcg's
oldest generation (against min_ttl_ms).

[1] https://lore.kernel.org/CAK8fFZ4DY+GtBA40Pm7Nn5xCHy+51w3sfxPqkqpqakSXYyX+Wg@mail.gmail.com/

Link: https://lkml.kernel.org/r/20231208061407.2125867-3-yuzhao@google.com
Fixes: e4dde56cd208 ("mm: multi-gen LRU: per-node lru_gen_folio lists")
Signed-off-by: Yu Zhao <yuzhao@google.com>
Tested-by: T.J. Mercier <tjmercier@google.com>
Cc: Charan Teja Kalla <quic_charante@quicinc.com>
Cc: Hillf Danton <hdanton@sina.com>
Cc: Jaroslav Pulchart <jaroslav.pulchart@gooddata.com>
Cc: Kairui Song <ryncsn@gmail.com>
Cc: Kalesh Singh <kaleshsingh@google.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 include/linux/mmzone.h |   30 +++++++++++++++++-------------
 mm/vmscan.c            |   30 ++++++++++++++++--------------
 2 files changed, 33 insertions(+), 27 deletions(-)

--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -505,33 +505,37 @@ void lru_gen_look_around(struct page_vma
  * the old generation, is incremented when all its bins become empty.
  *
  * There are four operations:
- * 1. MEMCG_LRU_HEAD, which moves an memcg to the head of a random bin in its
+ * 1. MEMCG_LRU_HEAD, which moves a memcg to the head of a random bin in its
  *    current generation (old or young) and updates its "seg" to "head";
- * 2. MEMCG_LRU_TAIL, which moves an memcg to the tail of a random bin in its
+ * 2. MEMCG_LRU_TAIL, which moves a memcg to the tail of a random bin in its
  *    current generation (old or young) and updates its "seg" to "tail";
- * 3. MEMCG_LRU_OLD, which moves an memcg to the head of a random bin in the old
+ * 3. MEMCG_LRU_OLD, which moves a memcg to the head of a random bin in the old
  *    generation, updates its "gen" to "old" and resets its "seg" to "default";
- * 4. MEMCG_LRU_YOUNG, which moves an memcg to the tail of a random bin in the
+ * 4. MEMCG_LRU_YOUNG, which moves a memcg to the tail of a random bin in the
  *    young generation, updates its "gen" to "young" and resets its "seg" to
  *    "default".
  *
  * The events that trigger the above operations are:
  * 1. Exceeding the soft limit, which triggers MEMCG_LRU_HEAD;
- * 2. The first attempt to reclaim an memcg below low, which triggers
+ * 2. The first attempt to reclaim a memcg below low, which triggers
  *    MEMCG_LRU_TAIL;
- * 3. The first attempt to reclaim an memcg below reclaimable size threshold,
+ * 3. The first attempt to reclaim a memcg below reclaimable size threshold,
  *    which triggers MEMCG_LRU_TAIL;
- * 4. The second attempt to reclaim an memcg below reclaimable size threshold,
+ * 4. The second attempt to reclaim a memcg below reclaimable size threshold,
  *    which triggers MEMCG_LRU_YOUNG;
- * 5. Attempting to reclaim an memcg below min, which triggers MEMCG_LRU_YOUNG;
+ * 5. Attempting to reclaim a memcg below min, which triggers MEMCG_LRU_YOUNG;
  * 6. Finishing the aging on the eviction path, which triggers MEMCG_LRU_YOUNG;
- * 7. Offlining an memcg, which triggers MEMCG_LRU_OLD.
+ * 7. Offlining a memcg, which triggers MEMCG_LRU_OLD.
  *
- * Note that memcg LRU only applies to global reclaim, and the round-robin
- * incrementing of their max_seq counters ensures the eventual fairness to all
- * eligible memcgs. For memcg reclaim, it still relies on mem_cgroup_iter().
+ * Notes:
+ * 1. Memcg LRU only applies to global reclaim, and the round-robin incrementing
+ *    of their max_seq counters ensures the eventual fairness to all eligible
+ *    memcgs. For memcg reclaim, it still relies on mem_cgroup_iter().
+ * 2. There are only two valid generations: old (seq) and young (seq+1).
+ *    MEMCG_NR_GENS is set to three so that when reading the generation counter
+ *    locklessly, a stale value (seq-1) does not wraparound to young.
  */
-#define MEMCG_NR_GENS	2
+#define MEMCG_NR_GENS	3
 #define MEMCG_NR_BINS	8
 
 struct lru_gen_memcg {
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -4790,6 +4790,9 @@ static void lru_gen_rotate_memcg(struct
 	else
 		VM_WARN_ON_ONCE(true);
 
+	WRITE_ONCE(lruvec->lrugen.seg, seg);
+	WRITE_ONCE(lruvec->lrugen.gen, new);
+
 	hlist_nulls_del_rcu(&lruvec->lrugen.list);
 
 	if (op == MEMCG_LRU_HEAD || op == MEMCG_LRU_OLD)
@@ -4800,9 +4803,6 @@ static void lru_gen_rotate_memcg(struct
 	pgdat->memcg_lru.nr_memcgs[old]--;
 	pgdat->memcg_lru.nr_memcgs[new]++;
 
-	lruvec->lrugen.gen = new;
-	WRITE_ONCE(lruvec->lrugen.seg, seg);
-
 	if (!pgdat->memcg_lru.nr_memcgs[old] && old == get_memcg_gen(pgdat->memcg_lru.seq))
 		WRITE_ONCE(pgdat->memcg_lru.seq, pgdat->memcg_lru.seq + 1);
 
@@ -4825,11 +4825,11 @@ void lru_gen_online_memcg(struct mem_cgr
 
 		gen = get_memcg_gen(pgdat->memcg_lru.seq);
 
+		lruvec->lrugen.gen = gen;
+
 		hlist_nulls_add_tail_rcu(&lruvec->lrugen.list, &pgdat->memcg_lru.fifo[gen][bin]);
 		pgdat->memcg_lru.nr_memcgs[gen]++;
 
-		lruvec->lrugen.gen = gen;
-
 		spin_unlock_irq(&pgdat->memcg_lru.lock);
 	}
 }
@@ -5328,7 +5328,7 @@ static long get_nr_to_scan(struct lruvec
 	DEFINE_MAX_SEQ(lruvec);
 
 	if (mem_cgroup_below_min(sc->target_mem_cgroup, memcg))
-		return 0;
+		return -1;
 
 	if (!should_run_aging(lruvec, max_seq, sc, can_swap, &nr_to_scan))
 		return nr_to_scan;
@@ -5403,7 +5403,7 @@ static bool try_to_shrink_lruvec(struct
 		cond_resched();
 	}
 
-	/* whether try_to_inc_max_seq() was successful */
+	/* whether this lruvec should be rotated */
 	return nr_to_scan < 0;
 }
 
@@ -5457,13 +5457,13 @@ static void shrink_many(struct pglist_da
 	struct lruvec *lruvec;
 	struct lru_gen_folio *lrugen;
 	struct mem_cgroup *memcg;
-	const struct hlist_nulls_node *pos;
+	struct hlist_nulls_node *pos;
 
+	gen = get_memcg_gen(READ_ONCE(pgdat->memcg_lru.seq));
 	bin = first_bin = get_random_u32_below(MEMCG_NR_BINS);
 restart:
 	op = 0;
 	memcg = NULL;
-	gen = get_memcg_gen(READ_ONCE(pgdat->memcg_lru.seq));
 
 	rcu_read_lock();
 
@@ -5474,6 +5474,10 @@ restart:
 		}
 
 		mem_cgroup_put(memcg);
+		memcg = NULL;
+
+		if (gen != READ_ONCE(lrugen->gen))
+			continue;
 
 		lruvec = container_of(lrugen, struct lruvec, lrugen);
 		memcg = lruvec_memcg(lruvec);
@@ -5558,16 +5562,14 @@ static void set_initial_priority(struct
 	if (sc->priority != DEF_PRIORITY || sc->nr_to_reclaim < MIN_LRU_BATCH)
 		return;
 	/*
-	 * Determine the initial priority based on ((total / MEMCG_NR_GENS) >>
-	 * priority) * reclaimed_to_scanned_ratio = nr_to_reclaim, where the
-	 * estimated reclaimed_to_scanned_ratio = inactive / total.
+	 * Determine the initial priority based on
+	 * (total >> priority) * reclaimed_to_scanned_ratio = nr_to_reclaim,
+	 * where reclaimed_to_scanned_ratio = inactive / total.
 	 */
 	reclaimable = node_page_state(pgdat, NR_INACTIVE_FILE);
 	if (get_swappiness(lruvec, sc))
 		reclaimable += node_page_state(pgdat, NR_INACTIVE_ANON);
 
-	reclaimable /= MEMCG_NR_GENS;
-
 	/* round down reclaimable and round up sc->nr_to_reclaim */
 	priority = fls_long(reclaimable) - 1 - fls_long(sc->nr_to_reclaim - 1);
 



  parent reply	other threads:[~2023-12-18 14:05 UTC|newest]

Thread overview: 180+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-18 13:49 [PATCH 6.6 000/166] 6.6.8-rc1 review Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 001/166] r8152: add vendor/device ID pair for ASUS USB-C2500 Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 002/166] ext4: fix warning in ext4_dio_write_end_io() Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 003/166] ksmbd: fix memory leak in smb2_lock() Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 004/166] efi/x86: Avoid physical KASLR on older Dell systems Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 005/166] afs: Fix refcount underflow from error handling race Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 006/166] HID: lenovo: Restrict detection of patched firmware only to USB cptkbd Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 007/166] net/mlx5e: Honor user choice of IPsec replay window size Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 008/166] net/mlx5e: Ensure that IPsec sequence packet number starts from 1 Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 009/166] net/mlx5e: Unify esw and normal IPsec status table creation/destruction Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 010/166] net/mlx5e: Tidy up IPsec NAT-T SA discovery Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 011/166] net/mlx5e: Reduce eswitch mode_lock protection context Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 012/166] net/mlx5e: Check the number of elements before walk TC rhashtable Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 013/166] RDMA/mlx5: Send events from IB driver about device affiliation state Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 014/166] net/mlx5e: Disable IPsec offload support if not FW steering Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 015/166] net/mlx5e: Fix possible deadlock on mlx5e_tx_timeout_work Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 016/166] net/mlx5e: TC, Dont offload post action rule if not supported Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 017/166] net/mlx5: Nack sync reset request when HotPlug is enabled Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 018/166] net/mlx5e: Check netdev pointer before checking its net ns Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 019/166] net/mlx5: Fix a NULL vs IS_ERR() check Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 020/166] net: ipv6: support reporting otherwise unknown prefix flags in RTM_NEWPREFIX Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 021/166] qca_debug: Prevent crash on TX ring changes Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 022/166] qca_debug: Fix ethtool -G iface tx behavior Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 023/166] qca_spi: Fix reset behavior Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 024/166] bnxt_en: Clear resource reservation during resume Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 025/166] bnxt_en: Fix skb recycling logic in bnxt_deliver_skb() Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 026/166] bnxt_en: Fix wrong return value check in bnxt_close_nic() Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 027/166] bnxt_en: Fix HWTSTAMP_FILTER_ALL packet timestamp logic Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 028/166] atm: solos-pci: Fix potential deadlock on &cli_queue_lock Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 029/166] atm: solos-pci: Fix potential deadlock on &tx_queue_lock Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 030/166] net: fec: correct queue selection Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 031/166] octeontx2-af: fix a use-after-free in rvu_nix_register_reporters Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 032/166] net/sched: act_ct: Take per-cb reference to tcf_ct_flow_table Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 033/166] octeon_ep: explicitly test for firmware ready value Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 034/166] octeontx2-pf: Fix promisc mcam entry action Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 035/166] octeontx2-af: Update RSS algorithm index Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 036/166] octeontx2-af: Fix pause frame configuration Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 037/166] atm: Fix Use-After-Free in do_vcc_ioctl Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 038/166] net/rose: Fix Use-After-Free in rose_ioctl Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 039/166] iavf: Introduce new state machines for flow director Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 040/166] iavf: Handle ntuple on/off based on " Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 041/166] iavf: Fix iavf_shutdown to call iavf_remove instead iavf_close Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 042/166] qed: Fix a potential use-after-free in qed_cxt_tables_alloc Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 043/166] net: Remove acked SYN flag from packet in the transmit queue correctly Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 044/166] net: ena: Destroy correct number of xdp queues upon failure Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 045/166] net: ena: Fix xdp drops handling due to multibuf packets Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 046/166] net: ena: Fix DMA syncing in XDP path when SWIOTLB is on Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 047/166] net: ena: Fix XDP redirection error Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 048/166] stmmac: dwmac-loongson: Make sure MDIO is initialized before use Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 049/166] sign-file: Fix incorrect return values check Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 050/166] vsock/virtio: Fix unsigned integer wrap around in virtio_transport_has_space() Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 051/166] dpaa2-switch: fix size of the dma_unmap Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 052/166] dpaa2-switch: do not ask for MDB, VLAN and FDB replay Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 053/166] net: stmmac: dwmac-qcom-ethqos: Fix drops in 10M SGMII RX Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 054/166] net: stmmac: Handle disabled MDIO busses from devicetree Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 055/166] appletalk: Fix Use-After-Free in atalk_ioctl Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 056/166] net: atlantic: fix double free in ring reinit logic Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 057/166] cred: switch to using atomic_long_t Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 058/166] cred: get rid of CONFIG_DEBUG_CREDENTIALS Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 059/166] HID: i2c-hid: Add IDEA5002 to i2c_hid_acpi_blacklist[] Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 060/166] HID: Add quirk for Labtec/ODDOR/aikeec handbrake Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 061/166] fuse: Rename DIRECT_IO_RELAX to DIRECT_IO_ALLOW_MMAP Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 062/166] fuse: share lookup state between submount and its parent Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 063/166] fuse: disable FOPEN_PARALLEL_DIRECT_WRITES with FUSE_DIRECT_IO_ALLOW_MMAP Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 064/166] fuse: dax: set fc->dax to NULL in fuse_dax_conn_free() Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 065/166] io_uring/cmd: fix breakage in SOCKET_URING_OP_SIOC* implementation Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 066/166] ALSA: hda/hdmi: add force-connect quirk for NUC5CPYB Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 067/166] ALSA: hda/hdmi: add force-connect quirks for ASUSTeK Z170 variants Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 068/166] ALSA: hda/realtek: Apply mute LED quirk for HP15-db Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 069/166] ALSA: hda/tas2781: leave hda_component in usable state Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 070/166] ALSA: hda/tas2781: handle missing EFI calibration data Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 071/166] ALSA: hda/tas2781: call cleanup functions only once Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 072/166] ALSA: hda/tas2781: reset the amp before component_add Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 073/166] Revert "PCI: acpiphp: Reassign resources on bridge if necessary" Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 074/166] PCI: loongson: Limit MRRS to 256 Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 075/166] PCI/ASPM: Add pci_enable_link_state_locked() Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 076/166] ksmbd: fix wrong name of SMB2_CREATE_ALLOCATION_SIZE Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 077/166] PCI: vmd: Fix potential deadlock when enabling ASPM Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 078/166] drm/mediatek: fix kernel oops if no crtc is found Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 079/166] drm/mediatek: Add spinlock for setting vblank event in atomic_begin Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 080/166] accel/ivpu: Print information about used workarounds Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 081/166] accel/ivpu/37xx: Fix interrupt_clear_with_0 WA initialization Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 082/166] drm/i915/selftests: Fix engine reset count storage for multi-tile Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 083/166] drm/i915: Use internal class when counting engine resets Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 084/166] selftests/mm: cow: print ksft header before printing anything else Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 085/166] x86/hyperv: Fix the detection of E820_TYPE_PRAM in a Gen2 VM Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 086/166] usb: aqc111: check packet for fixup for true limit Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 087/166] stmmac: dwmac-loongson: Add architecture dependency Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 088/166] rxrpc: Fix some minor issues with bundle tracing Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 089/166] blk-throttle: fix lockdep warning of "cgroup_mutex or RCU read lock required!" Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 090/166] blk-cgroup: bypass blkcg_deactivate_policy after destroying Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 091/166] bcache: avoid oversize memory allocation by small stripe_size Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 092/166] bcache: remove redundant assignment to variable cur_idx Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 093/166] bcache: add code comments for bch_btree_node_get() and __bch_btree_node_alloc() Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 094/166] bcache: avoid NULL checking to c->root in run_cache_set() Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 095/166] nbd: fold nbd config initialization into nbd_alloc_config() Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 096/166] nbd: factor out a helper to get nbd_config without holding config_lock Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 097/166] nbd: fix null-ptr-dereference while accessing nbd->config Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 098/166] nvme-auth: set explanation code for failure2 msgs Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 099/166] nvme: catch errors from nvme_configure_metadata() Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 100/166] selftests/bpf: fix bpf_loop_bench for new callback verification scheme Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 101/166] LoongArch: Add dependency between vmlinuz.efi and vmlinux.efi Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 102/166] LoongArch: Record pc instead of offset in la_abs relocation Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 103/166] LoongArch: Silence the boot warning about nokaslr Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 104/166] LoongArch: Mark {dmw,tlb}_virt_to_page() exports as non-GPL Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 105/166] LoongArch: Implement constant timer shutdown interface Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 106/166] platform/x86: intel_telemetry: Fix kernel doc descriptions Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 107/166] HID: mcp2221: Set driver data before I2C adapter add Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 108/166] HID: mcp2221: Allow IO to start during probe Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 109/166] HID: apple: add Jamesdonkey and A3R to non-apple keyboards list Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 110/166] HID: glorious: fix Glorious Model I HID report Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 111/166] HID: add ALWAYS_POLL quirk for Apple kb Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 112/166] nbd: pass nbd_sock to nbd_read_reply() instead of index Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 113/166] HID: hid-asus: reset the backlight brightness level on resume Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 114/166] HID: multitouch: Add quirk for HONOR GLO-GXXX touchpad Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 115/166] nfc: virtual_ncidev: Add variable to check if ndev is running Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 116/166] scripts/checkstack.pl: match all stack sizes for s390 Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 117/166] asm-generic: qspinlock: fix queued_spin_value_unlocked() implementation Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 118/166] eventfs: Do not allow NULL parent to eventfs_start_creating() Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 119/166] net: usb: qmi_wwan: claim interface 4 for ZTE MF290 Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 120/166] smb: client: implement ->query_reparse_point() for SMB1 Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 121/166] smb: client: introduce ->parse_reparse_point() Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 122/166] smb: client: set correct file type from NFS reparse points Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 123/166] arm64: add dependency between vmlinuz.efi and Image Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 124/166] HID: hid-asus: add const to read-only outgoing usb buffer Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 125/166] perf: Fix perf_event_validate_size() lockdep splat Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 126/166] btrfs: do not allow non subvolume root targets for snapshot Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 127/166] cxl/hdm: Fix dpa translation locking Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 128/166] soundwire: stream: fix NULL pointer dereference for multi_link Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 129/166] ext4: prevent the normalized size from exceeding EXT_MAX_BLOCKS Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 130/166] Revert "selftests: error out if kernel header files are not yet built" Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 131/166] arm64: mm: Always make sw-dirty PTEs hw-dirty in pte_modify Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 132/166] team: Fix use-after-free when an option instance allocation fails Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 133/166] drm/amdgpu/sdma5.2: add begin/end_use ring callbacks Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 134/166] drm/mediatek: Fix access violation in mtk_drm_crtc_dma_dev_get Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 135/166] dmaengine: stm32-dma: avoid bitfield overflow assertion Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 136/166] dmaengine: fsl-edma: fix DMA channel leak in eDMAv4 Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 137/166] mm/mglru: fix underprotected page cache Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 138/166] mm/mglru: try to stop at high watermarks Greg Kroah-Hartman
2023-12-18 13:51 ` Greg Kroah-Hartman [this message]
2023-12-18 13:51 ` [PATCH 6.6 140/166] mm/mglru: reclaim offlined memcgs harder Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 141/166] mm/shmem: fix race in shmem_undo_range w/THP Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 142/166] kexec: drop dependency on ARCH_SUPPORTS_KEXEC from CRASH_DUMP Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 143/166] btrfs: free qgroup reserve when ORDERED_IOERR is set Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 144/166] btrfs: fix qgroup_free_reserved_data int overflow Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 145/166] btrfs: dont clear qgroup reserved bit in release_folio Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 146/166] drm/amdgpu: fix tear down order in amdgpu_vm_pt_free Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 147/166] drm/edid: also call add modes in EDID connector update fallback Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 148/166] drm/amd/display: Restore guard against default backlight value < 1 nit Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 149/166] drm/amd/display: Disable PSR-SU on Parade 0803 TCON again Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 150/166] drm/i915: Fix ADL+ tiled plane stride when the POT stride is smaller than the original Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 151/166] drm/i915: Fix intel_atomic_setup_scalers() plane_state handling Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 152/166] drm/i915: Fix remapped stride with CCS on ADL+ Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 153/166] smb: client: fix OOB in receive_encrypted_standard() Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 154/166] smb: client: fix potential OOBs in smb2_parse_contexts() Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 155/166] smb: client: fix NULL deref in asn1_ber_decoder() Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 156/166] smb: client: fix OOB in smb2_query_reparse_point() Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 157/166] ring-buffer: Fix memory leak of free page Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 158/166] tracing: Update snapshot buffer on resize if it is allocated Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 159/166] ring-buffer: Do not update before stamp when switching sub-buffers Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 160/166] ring-buffer: Have saved event hold the entire event Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 161/166] ring-buffer: Fix writing to the buffer with max_data_size Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 162/166] ring-buffer: Fix a race in rb_time_cmpxchg() for 32 bit archs Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 163/166] ring-buffer: Do not try to put back write_stamp Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 164/166] ring-buffer: Have rb_time_cmpxchg() set the msb counter too Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 165/166] x86/speculation, objtool: Use absolute relocations for annotations Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 166/166] RDMA/mlx5: Change the key being sent for MPV device affiliation Greg Kroah-Hartman
2023-12-18 18:50 ` [PATCH 6.6 000/166] 6.6.8-rc1 review SeongJae Park
2023-12-18 20:29 ` Conor Dooley
2023-12-18 20:54 ` Ricardo B. Marliere
2023-12-18 21:06 ` Takeshi Ogasawara
2023-12-18 23:44 ` Justin Forbes
2023-12-18 23:55 ` Shuah Khan
2023-12-19  1:06 ` Kelsey Steele
2023-12-19  3:21 ` Bagas Sanjaya
2023-12-19  6:59 ` Naresh Kamboju
2023-12-19 10:11 ` Ron Economos
2023-12-19 11:32 ` Jon Hunter
2023-12-19 22:08 ` Florian Fainelli
2024-09-03 22:17 ` Justin Forbes

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=20231218135111.322074337@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=hdanton@sina.com \
    --cc=jaroslav.pulchart@gooddata.com \
    --cc=kaleshsingh@google.com \
    --cc=patches@lists.linux.dev \
    --cc=quic_charante@quicinc.com \
    --cc=ryncsn@gmail.com \
    --cc=stable@vger.kernel.org \
    --cc=tjmercier@google.com \
    --cc=yuzhao@google.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox