stable.vger.kernel.org archive mirror
 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,
	Matthieu Baerts <matthieu.baerts@tessares.net>,
	Dave Chinner <david@fromorbit.com>,
	Matthew Wilcox <willy@infradead.org>, Chris Mason <clm@fb.com>,
	Jan Kara <jack@suse.cz>, Amir Goldstein <amir73il@gmail.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Saeed Mirzamohammadi <saeed.mirzamohammadi@oracle.com>,
	Michael Larabel <Michael@michaellarabel.com>
Subject: [PATCH 5.4 146/158] mm: allow a controlled amount of unfairness in the page lock
Date: Mon, 28 Aug 2023 12:14:03 +0200	[thread overview]
Message-ID: <20230828101202.549408518@linuxfoundation.org> (raw)
In-Reply-To: <20230828101157.322319621@linuxfoundation.org>

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

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

From: Linus Torvalds <torvalds@linux-foundation.org>

commit 5ef64cc8987a9211d3f3667331ba3411a94ddc79 upstream.

Commit 2a9127fcf229 ("mm: rewrite wait_on_page_bit_common() logic") made
the page locking entirely fair, in that if a waiter came in while the
lock was held, the lock would be transferred to the lockers strictly in
order.

That was intended to finally get rid of the long-reported watchdog
failures that involved the page lock under extreme load, where a process
could end up waiting essentially forever, as other page lockers stole
the lock from under it.

It also improved some benchmarks, but it ended up causing huge
performance regressions on others, simply because fair lock behavior
doesn't end up giving out the lock as aggressively, causing better
worst-case latency, but potentially much worse average latencies and
throughput.

Instead of reverting that change entirely, this introduces a controlled
amount of unfairness, with a sysctl knob to tune it if somebody needs
to.  But the default value should hopefully be good for any normal load,
allowing a few rounds of lock stealing, but enforcing the strict
ordering before the lock has been stolen too many times.

There is also a hint from Matthieu Baerts that the fair page coloring
may end up exposing an ABBA deadlock that is hidden by the usual
optimistic lock stealing, and while the unfairness doesn't fix the
fundamental issue (and I'm still looking at that), it avoids it in
practice.

The amount of unfairness can be modified by writing a new value to the
'sysctl_page_lock_unfairness' variable (default value of 5, exposed
through /proc/sys/vm/page_lock_unfairness), but that is hopefully
something we'd use mainly for debugging rather than being necessary for
any deep system tuning.

This whole issue has exposed just how critical the page lock can be, and
how contended it gets under certain locks.  And the main contention
doesn't really seem to be anything related to IO (which was the origin
of this lock), but for things like just verifying that the page file
mapping is stable while faulting in the page into a page table.

Link: https://lore.kernel.org/linux-fsdevel/ed8442fd-6f54-dd84-cd4a-941e8b7ee603@MichaelLarabel.com/
Link: https://www.phoronix.com/scan.php?page=article&item=linux-50-59&num=1
Link: https://lore.kernel.org/linux-fsdevel/c560a38d-8313-51fb-b1ec-e904bd8836bc@tessares.net/
Reported-and-tested-by: Michael Larabel <Michael@michaellarabel.com>
Tested-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Chris Mason <clm@fb.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Saeed Mirzamohammadi <saeed.mirzamohammadi@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 include/linux/mm.h   |    2 
 include/linux/wait.h |    2 
 kernel/sysctl.c      |    8 ++
 mm/filemap.c         |  160 +++++++++++++++++++++++++++++++++++++++++----------
 4 files changed, 141 insertions(+), 31 deletions(-)

--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -37,6 +37,8 @@ struct user_struct;
 struct writeback_control;
 struct bdi_writeback;
 
+extern int sysctl_page_lock_unfairness;
+
 void init_mm_internals(void);
 
 #ifndef CONFIG_NEED_MULTIPLE_NODES	/* Don't use mapnrs, do it properly */
--- a/include/linux/wait.h
+++ b/include/linux/wait.h
@@ -20,6 +20,8 @@ int default_wake_function(struct wait_qu
 #define WQ_FLAG_EXCLUSIVE	0x01
 #define WQ_FLAG_WOKEN		0x02
 #define WQ_FLAG_BOOKMARK	0x04
+#define WQ_FLAG_CUSTOM		0x08
+#define WQ_FLAG_DONE		0x10
 
 /*
  * A single wait-queue entry structure:
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1563,6 +1563,14 @@ static struct ctl_table vm_table[] = {
 		.proc_handler	= percpu_pagelist_fraction_sysctl_handler,
 		.extra1		= SYSCTL_ZERO,
 	},
+	{
+		.procname	= "page_lock_unfairness",
+		.data		= &sysctl_page_lock_unfairness,
+		.maxlen		= sizeof(sysctl_page_lock_unfairness),
+		.mode		= 0644,
+		.proc_handler	= proc_dointvec_minmax,
+		.extra1		= SYSCTL_ZERO,
+	},
 #ifdef CONFIG_MMU
 	{
 		.procname	= "max_map_count",
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -1044,9 +1044,43 @@ struct wait_page_queue {
 	wait_queue_entry_t wait;
 };
 
+/*
+ * The page wait code treats the "wait->flags" somewhat unusually, because
+ * we have multiple different kinds of waits, not just he usual "exclusive"
+ * one.
+ *
+ * We have:
+ *
+ *  (a) no special bits set:
+ *
+ *	We're just waiting for the bit to be released, and when a waker
+ *	calls the wakeup function, we set WQ_FLAG_WOKEN and wake it up,
+ *	and remove it from the wait queue.
+ *
+ *	Simple and straightforward.
+ *
+ *  (b) WQ_FLAG_EXCLUSIVE:
+ *
+ *	The waiter is waiting to get the lock, and only one waiter should
+ *	be woken up to avoid any thundering herd behavior. We'll set the
+ *	WQ_FLAG_WOKEN bit, wake it up, and remove it from the wait queue.
+ *
+ *	This is the traditional exclusive wait.
+ *
+ *  (b) WQ_FLAG_EXCLUSIVE | WQ_FLAG_CUSTOM:
+ *
+ *	The waiter is waiting to get the bit, and additionally wants the
+ *	lock to be transferred to it for fair lock behavior. If the lock
+ *	cannot be taken, we stop walking the wait queue without waking
+ *	the waiter.
+ *
+ *	This is the "fair lock handoff" case, and in addition to setting
+ *	WQ_FLAG_WOKEN, we set WQ_FLAG_DONE to let the waiter easily see
+ *	that it now has the lock.
+ */
 static int wake_page_function(wait_queue_entry_t *wait, unsigned mode, int sync, void *arg)
 {
-	int ret;
+	unsigned int flags;
 	struct wait_page_key *key = arg;
 	struct wait_page_queue *wait_page
 		= container_of(wait, struct wait_page_queue, wait);
@@ -1059,35 +1093,44 @@ static int wake_page_function(wait_queue
 		return 0;
 
 	/*
-	 * If it's an exclusive wait, we get the bit for it, and
-	 * stop walking if we can't.
-	 *
-	 * If it's a non-exclusive wait, then the fact that this
-	 * wake function was called means that the bit already
-	 * was cleared, and we don't care if somebody then
-	 * re-took it.
+	 * If it's a lock handoff wait, we get the bit for it, and
+	 * stop walking (and do not wake it up) if we can't.
 	 */
-	ret = 0;
-	if (wait->flags & WQ_FLAG_EXCLUSIVE) {
-		if (test_and_set_bit(key->bit_nr, &key->page->flags))
+	flags = wait->flags;
+	if (flags & WQ_FLAG_EXCLUSIVE) {
+		if (test_bit(key->bit_nr, &key->page->flags))
 			return -1;
-		ret = 1;
+		if (flags & WQ_FLAG_CUSTOM) {
+			if (test_and_set_bit(key->bit_nr, &key->page->flags))
+				return -1;
+			flags |= WQ_FLAG_DONE;
+		}
 	}
-	wait->flags |= WQ_FLAG_WOKEN;
 
+	/*
+	 * We are holding the wait-queue lock, but the waiter that
+	 * is waiting for this will be checking the flags without
+	 * any locking.
+	 *
+	 * So update the flags atomically, and wake up the waiter
+	 * afterwards to avoid any races. This store-release pairs
+	 * with the load-acquire in wait_on_page_bit_common().
+	 */
+	smp_store_release(&wait->flags, flags | WQ_FLAG_WOKEN);
 	wake_up_state(wait->private, mode);
 
 	/*
 	 * Ok, we have successfully done what we're waiting for,
 	 * and we can unconditionally remove the wait entry.
 	 *
-	 * Note that this has to be the absolute last thing we do,
-	 * since after list_del_init(&wait->entry) the wait entry
+	 * Note that this pairs with the "finish_wait()" in the
+	 * waiter, and has to be the absolute last thing we do.
+	 * After this list_del_init(&wait->entry) the wait entry
 	 * might be de-allocated and the process might even have
 	 * exited.
 	 */
 	list_del_init_careful(&wait->entry);
-	return ret;
+	return (flags & WQ_FLAG_EXCLUSIVE) != 0;
 }
 
 static void wake_up_page_bit(struct page *page, int bit_nr)
@@ -1167,8 +1210,8 @@ enum behavior {
 };
 
 /*
- * Attempt to check (or get) the page bit, and mark the
- * waiter woken if successful.
+ * Attempt to check (or get) the page bit, and mark us done
+ * if successful.
  */
 static inline bool trylock_page_bit_common(struct page *page, int bit_nr,
 					struct wait_queue_entry *wait)
@@ -1179,13 +1222,17 @@ static inline bool trylock_page_bit_comm
 	} else if (test_bit(bit_nr, &page->flags))
 		return false;
 
-	wait->flags |= WQ_FLAG_WOKEN;
+	wait->flags |= WQ_FLAG_WOKEN | WQ_FLAG_DONE;
 	return true;
 }
 
+/* How many times do we accept lock stealing from under a waiter? */
+int sysctl_page_lock_unfairness = 5;
+
 static inline int wait_on_page_bit_common(wait_queue_head_t *q,
 	struct page *page, int bit_nr, int state, enum behavior behavior)
 {
+	int unfairness = sysctl_page_lock_unfairness;
 	struct wait_page_queue wait_page;
 	wait_queue_entry_t *wait = &wait_page.wait;
 	bool thrashing = false;
@@ -1203,11 +1250,18 @@ static inline int wait_on_page_bit_commo
 	}
 
 	init_wait(wait);
-	wait->flags = behavior == EXCLUSIVE ? WQ_FLAG_EXCLUSIVE : 0;
 	wait->func = wake_page_function;
 	wait_page.page = page;
 	wait_page.bit_nr = bit_nr;
 
+repeat:
+	wait->flags = 0;
+	if (behavior == EXCLUSIVE) {
+		wait->flags = WQ_FLAG_EXCLUSIVE;
+		if (--unfairness < 0)
+			wait->flags |= WQ_FLAG_CUSTOM;
+	}
+
 	/*
 	 * Do one last check whether we can get the
 	 * page bit synchronously.
@@ -1230,27 +1284,63 @@ static inline int wait_on_page_bit_commo
 
 	/*
 	 * From now on, all the logic will be based on
-	 * the WQ_FLAG_WOKEN flag, and the and the page
-	 * bit testing (and setting) will be - or has
-	 * already been - done by the wake function.
+	 * the WQ_FLAG_WOKEN and WQ_FLAG_DONE flag, to
+	 * see whether the page bit testing has already
+	 * been done by the wake function.
 	 *
 	 * We can drop our reference to the page.
 	 */
 	if (behavior == DROP)
 		put_page(page);
 
+	/*
+	 * Note that until the "finish_wait()", or until
+	 * we see the WQ_FLAG_WOKEN flag, we need to
+	 * be very careful with the 'wait->flags', because
+	 * we may race with a waker that sets them.
+	 */
 	for (;;) {
+		unsigned int flags;
+
 		set_current_state(state);
 
-		if (signal_pending_state(state, current))
+		/* Loop until we've been woken or interrupted */
+		flags = smp_load_acquire(&wait->flags);
+		if (!(flags & WQ_FLAG_WOKEN)) {
+			if (signal_pending_state(state, current))
+				break;
+
+			io_schedule();
+			continue;
+		}
+
+		/* If we were non-exclusive, we're done */
+		if (behavior != EXCLUSIVE)
 			break;
 
-		if (wait->flags & WQ_FLAG_WOKEN)
+		/* If the waker got the lock for us, we're done */
+		if (flags & WQ_FLAG_DONE)
 			break;
 
-		io_schedule();
+		/*
+		 * Otherwise, if we're getting the lock, we need to
+		 * try to get it ourselves.
+		 *
+		 * And if that fails, we'll have to retry this all.
+		 */
+		if (unlikely(test_and_set_bit(bit_nr, &page->flags)))
+			goto repeat;
+
+		wait->flags |= WQ_FLAG_DONE;
+		break;
 	}
 
+	/*
+	 * If a signal happened, this 'finish_wait()' may remove the last
+	 * waiter from the wait-queues, but the PageWaiters bit will remain
+	 * set. That's ok. The next wakeup will take care of it, and trying
+	 * to do it here would be difficult and prone to races.
+	 */
 	finish_wait(q, wait);
 
 	if (thrashing) {
@@ -1260,12 +1350,20 @@ static inline int wait_on_page_bit_commo
 	}
 
 	/*
-	 * A signal could leave PageWaiters set. Clearing it here if
-	 * !waitqueue_active would be possible (by open-coding finish_wait),
-	 * but still fail to catch it in the case of wait hash collision. We
-	 * already can fail to clear wait hash collision cases, so don't
-	 * bother with signals either.
+	 * NOTE! The wait->flags weren't stable until we've done the
+	 * 'finish_wait()', and we could have exited the loop above due
+	 * to a signal, and had a wakeup event happen after the signal
+	 * test but before the 'finish_wait()'.
+	 *
+	 * So only after the finish_wait() can we reliably determine
+	 * if we got woken up or not, so we can now figure out the final
+	 * return value based on that state without races.
+	 *
+	 * Also note that WQ_FLAG_WOKEN is sufficient for a non-exclusive
+	 * waiter, but an exclusive one requires WQ_FLAG_DONE.
 	 */
+	if (behavior == EXCLUSIVE)
+		return wait->flags & WQ_FLAG_DONE ? 0 : -EINTR;
 
 	return wait->flags & WQ_FLAG_WOKEN ? 0 : -EINTR;
 }



  parent reply	other threads:[~2023-08-28 10:42 UTC|newest]

Thread overview: 168+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-28 10:11 [PATCH 5.4 000/158] 5.4.255-rc1 review Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 001/158] mmc: sdhci_f_sdh30: convert to devm_platform_ioremap_resource Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 002/158] mmc: sdhci-f-sdh30: Replace with sdhci_pltfm Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 003/158] selftests: forwarding: tc_flower: Relax success criterion Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 004/158] macsec: Fix traffic counters/statistics Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 005/158] macsec: use DEV_STATS_INC() Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 006/158] drm/radeon: Fix integer overflow in radeon_cs_parser_init Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 007/158] ALSA: emu10k1: roll up loops in DSP setup code for Audigy Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 008/158] quota: Properly disable quotas when add_dquot_ref() fails Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 009/158] quota: fix warning in dqgrab() Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 010/158] HID: add quirk for 03f0:464a HP Elite Presenter Mouse Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 011/158] ovl: check type and offset of struct vfsmount in ovl_entry Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 012/158] udf: Fix uninitialized array access for some pathnames Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 013/158] fs: jfs: Fix UBSAN: array-index-out-of-bounds in dbAllocDmapLev Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 014/158] MIPS: dec: prom: Address -Warray-bounds warning Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 015/158] FS: JFS: Fix null-ptr-deref Read in txBegin Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 016/158] FS: JFS: Check for read-only mounted filesystem " Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 017/158] media: v4l2-mem2mem: add lock to protect parameter num_rdy Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 018/158] media: platform: mediatek: vpu: fix NULL ptr dereference Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 019/158] usb: chipidea: imx: dont request QoS for imx8ulp Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 020/158] gfs2: Fix possible data races in gfs2_show_options() Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 021/158] pcmcia: rsrc_nonstatic: Fix memory leak in nonstatic_release_resource_db() Greg Kroah-Hartman
2023-08-28 10:11 ` [PATCH 5.4 022/158] Bluetooth: L2CAP: Fix use-after-free Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 023/158] drm/amdgpu: Fix potential fence use-after-free v2 Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 024/158] ALSA: hda/realtek: Add quirks for Unis H3C Desktop B760 & Q760 Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 025/158] ALSA: hda: fix a possible null-pointer dereference due to data race in snd_hdac_regmap_sync() Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 026/158] powerpc/kasan: Disable KCOV in KASAN code Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 027/158] IMA: allow/fix UML builds Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 028/158] iio: add addac subdirectory Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 029/158] iio: adc: stx104: Utilize iomap interface Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 030/158] iio: adc: stx104: Implement and utilize register structures Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 031/158] iio: stx104: Move to addac subdirectory Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 032/158] iio: addac: stx104: Fix race condition for stx104_write_raw() Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 033/158] iio: addac: stx104: Fix race condition when converting analog-to-digital Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 034/158] iommu/amd: Fix "Guest Virtual APIC Table Root Pointer" configuration in IRTE Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 035/158] PM-runtime: add tracepoints for usage_count changes Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 036/158] PM: runtime: Add pm_runtime_get_if_active() Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 037/158] ALSA: hda: Fix unhandled register update during auto-suspend period Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 038/158] irqchip/mips-gic: Get rid of the reliance on irq_cpu_online() Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 039/158] irqchip/mips-gic: Use raw spinlock for gic_lock Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 040/158] interconnect: Move internal structs into a separate file Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 041/158] interconnect: Add helpers for enabling/disabling a path Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 042/158] usb: dwc3: qcom: Add helper functions to enable,disable wake irqs Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 043/158] USB: dwc3: qcom: fix NULL-deref on suspend Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 044/158] mmc: bcm2835: fix deferred probing Greg Kroah-Hartman
2023-08-30 15:52   ` Sergey Shtylyov
2023-08-28 10:12 ` [PATCH 5.4 045/158] mmc: sunxi: " Greg Kroah-Hartman
2023-08-30 15:54   ` Sergey Shtylyov
2023-08-28 10:12 ` [PATCH 5.4 046/158] leds: trigger: netdev: Recheck NETDEV_LED_MODE_LINKUP on dev rename Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 047/158] tracing/probes: Have process_fetch_insn() take a void * instead of pt_regs Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 048/158] tracing/probes: Fix to update dynamic data counter if fetcharg uses it Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 049/158] net/ncsi: Fix gma flag setting after response Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 050/158] nfsd4: kill warnings on testing stateids with mismatched clientids Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 051/158] nfsd: Remove incorrect check in nfsd4_validate_stateid Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 052/158] virtio-mmio: convert to devm_platform_ioremap_resource Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 053/158] virtio-mmio: Use to_virtio_mmio_device() to simply code Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 054/158] virtio-mmio: dont break lifecycle of vm_dev Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 055/158] i2c: bcm-iproc: Fix bcm_iproc_i2c_isr deadlock issue Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 056/158] fbdev: mmp: fix value check in mmphw_probe() Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 057/158] powerpc/rtas_flash: allow user copy to flash block cache objects Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 058/158] tty: serial: fsl_lpuart: Clear the error flags by writing 1 for lpuart32 platforms Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 059/158] btrfs: fix BUG_ON condition in btrfs_cancel_balance Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 060/158] net: xfrm: Fix xfrm_address_filter OOB read Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 061/158] net: af_key: fix sadb_x_filter validation Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 062/158] xfrm: interface: rename xfrm_interface.c to xfrm_interface_core.c Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 063/158] xfrm: fix slab-use-after-free in decode_session6 Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 064/158] ip6_vti: " Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 065/158] ip_vti: fix potential " Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 066/158] xfrm: add NULL check in xfrm_update_ae_params Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 067/158] selftests: mirror_gre_changes: Tighten up the TTL test match Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 068/158] ipvs: fix racy memcpy in proc_do_sync_threshold Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 069/158] netfilter: nft_dynset: disallow object maps Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 070/158] team: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 071/158] i40e: fix misleading debug logs Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 072/158] net: dsa: mv88e6xxx: Wait for EEPROM done before HW reset Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 073/158] sock: Fix misuse of sk_under_memory_pressure() Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 074/158] net: do not allow gso_size to be set to GSO_BY_FRAGS Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 075/158] bus: ti-sysc: Improve reset to work with modules with no sysconfig Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 076/158] bus: ti-sysc: Flush posted write on enable before reset Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 077/158] ARM: dts: imx7s: Drop dma-apb interrupt-names Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 078/158] ARM: dts: imx: Adjust dma-apbh node name Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 079/158] ARM: dts: imx: Set default tuning step for imx7d usdhc Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 080/158] ARM: dts: imx: Set default tuning step for imx6sx usdhc Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 081/158] ASoC: rt5665: add missed regulator_bulk_disable Greg Kroah-Hartman
2023-08-28 10:12 ` [PATCH 5.4 082/158] ASoC: meson: axg-tdm-formatter: fix channel slot allocation Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 083/158] serial: 8250: Fix oops for port->pm on uart_change_pm() Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 084/158] ALSA: usb-audio: Add support for Mythware XA001AU capture and playback interfaces Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 085/158] cifs: Release folio lock on fscache read hit Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 086/158] mmc: wbsd: fix double mmc_free_host() in wbsd_init() Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 087/158] mmc: block: Fix in_flight[issue_type] value error Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 088/158] netfilter: set default timeout to 3 secs for sctp shutdown send and recv state Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 089/158] af_unix: Fix null-ptr-deref in unix_stream_sendpage() Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 090/158] virtio-net: set queues after driver_ok Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 091/158] net: fix the RTO timer retransmitting skb every 1ms if linear option is enabled Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 092/158] net: xfrm: Amend XFRMA_SEC_CTX nla_policy structure Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 093/158] mmc: f-sdh30: fix order of function calls in sdhci_f_sdh30_remove Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 094/158] net: phy: broadcom: stub c45 read/write for 54810 Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 095/158] PCI: acpiphp: Reassign resources on bridge if necessary Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 096/158] dlm: improve plock logging if interrupted Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 097/158] dlm: replace usage of found with dedicated list iterator variable Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 098/158] fs: dlm: add pid to debug log Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 099/158] fs: dlm: change plock interrupted message to debug again Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 100/158] fs: dlm: use dlm_plock_info for do_unlock_close Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 101/158] fs: dlm: fix mismatch of plock results from userspace Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 102/158] MIPS: cpu-features: Enable octeon_cache by cpu_type Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 103/158] MIPS: cpu-features: Use boot_cpu_type for CPU type based features Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 104/158] fbdev: Improve performance of sys_imageblit() Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 105/158] fbdev: Fix sys_imageblit() for arbitrary image widths Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 106/158] fbdev: fix potential OOB read in fast_imageblit() Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 107/158] dm integrity: increase RECALC_SECTORS to improve recalculate speed Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 108/158] dm integrity: reduce vmalloc space footprint on 32-bit architectures Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 109/158] ALSA: pcm: Set per-card upper limit of PCM buffer allocations Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 110/158] ALSA: pcm: Use SG-buffer only when direct DMA is available Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 111/158] ALSA: pcm: Fix potential data race at PCM memory allocation helpers Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 112/158] regmap: Account for register length in SMBus I/O limits Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 113/158] ASoC: fsl_sai: Refine enable/disable TE/RE sequence in trigger() Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 114/158] ASoC: fsl_sai: Add new added registers and new bit definition Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 115/158] ASoC: fsl_sai: Disable bit clock with transmitter Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 116/158] drm/amd/display: do not wait for mpc idle if tg is disabled Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 117/158] drm/amd/display: check TG is non-null before checking if enabled Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 118/158] tracing: Fix memleak due to race between current_tracer and trace Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 119/158] octeontx2-af: SDP: fix receive link config Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 120/158] sock: annotate data-races around prot->memory_pressure Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 121/158] dccp: annotate data-races in dccp_poll() Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 122/158] ipvlan: Fix a reference count leak warning in ipvlan_ns_exit() Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 123/158] net: bgmac: Fix return value check for fixed_phy_register() Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 124/158] net: bcmgenet: " Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 125/158] net: validate veth and vxcan peer ifindexes Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 126/158] igb: Avoid starting unnecessary workqueues Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 127/158] net/sched: fix a qdisc modification with ambiguous command request Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 128/158] net: remove bond_slave_has_mac_rcu() Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 129/158] bonding: fix macvlan over alb bond support Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 130/158] ibmveth: Use dcbf rather than dcbfl Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 131/158] NFSv4: Fix dropped lock for racing OPEN and delegation return Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 132/158] clk: Fix slab-out-of-bounds error in devm_clk_release() Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 133/158] nfsd: Fix race to FREE_STATEID and cl_revoked Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 134/158] batman-adv: Trigger events for auto adjusted MTU Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 135/158] batman-adv: Dont increase MTU when set by user Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 136/158] batman-adv: Do not get eth header before batadv_check_management_packet Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 137/158] batman-adv: Fix TT global entry leak when client roamed back Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 138/158] batman-adv: Fix batadv_v_ogm_aggr_send memory leak Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 139/158] batman-adv: Hold rtnl lock during MTU update via netlink Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 140/158] lib/clz_ctz.c: Fix __clzdi2() and __ctzdi2() for 32-bit kernels Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 141/158] radix tree: remove unused variable Greg Kroah-Hartman
2023-08-28 10:13 ` [PATCH 5.4 142/158] media: vcodec: Fix potential array out-of-bounds in encoder queue_setup Greg Kroah-Hartman
2023-08-28 10:14 ` [PATCH 5.4 143/158] PCI: acpiphp: Use pci_assign_unassigned_bridge_resources() only for non-root bus Greg Kroah-Hartman
2023-08-28 10:14 ` [PATCH 5.4 144/158] drm/display/dp: Fix the DP DSC Receiver cap size Greg Kroah-Hartman
2023-08-28 10:14 ` [PATCH 5.4 145/158] x86/fpu: Set X86_FEATURE_OSXSAVE feature after enabling OSXSAVE in CR4 Greg Kroah-Hartman
2023-08-28 10:14 ` Greg Kroah-Hartman [this message]
2023-08-28 10:14 ` [PATCH 5.4 147/158] rtnetlink: Reject negative ifindexes in RTM_NEWLINK Greg Kroah-Hartman
2023-08-28 10:14 ` [PATCH 5.4 148/158] ALSA: pcm: Fix build error on m68k and others Greg Kroah-Hartman
2023-08-28 10:14 ` [PATCH 5.4 149/158] Revert "ALSA: pcm: Use SG-buffer only when direct DMA is available" Greg Kroah-Hartman
2023-08-28 10:14 ` [PATCH 5.4 150/158] interconnect: Do not skip aggregation for disabled paths Greg Kroah-Hartman
2023-08-28 10:14 ` [PATCH 5.4 151/158] ALSA: pcm: Check for null pointer of pointer substream before dereferencing it Greg Kroah-Hartman
2023-08-28 10:14 ` [PATCH 5.4 152/158] Documentation/sysctl: document page_lock_unfairness Greg Kroah-Hartman
2023-08-28 10:14 ` [PATCH 5.4 153/158] irqchip/mips-gic: Dont touch vl_map if a local interrupt is not routable Greg Kroah-Hartman
2023-08-28 10:14 ` [PATCH 5.4 154/158] scsi: snic: Fix double free in snic_tgt_create() Greg Kroah-Hartman
2023-08-28 10:14 ` [PATCH 5.4 155/158] scsi: core: raid_class: Remove raid_component_add() Greg Kroah-Hartman
2023-08-28 10:14 ` [PATCH 5.4 156/158] clk: Fix undefined reference to `clk_rate_exclusive_{get,put} Greg Kroah-Hartman
2023-08-28 10:14 ` [PATCH 5.4 157/158] pinctrl: renesas: rza2: Add lock around pinctrl_generic{{add,remove}_group,{add,remove}_function} Greg Kroah-Hartman
2023-08-28 10:14 ` [PATCH 5.4 158/158] dma-buf/sw_sync: Avoid recursive lock during fence signal Greg Kroah-Hartman
2023-08-29 11:35 ` [PATCH 5.4 000/158] 5.4.255-rc1 review Sudip Mukherjee (Codethink)
2023-08-29 11:42 ` Naresh Kamboju
2023-08-29 13:20 ` Harshit Mogalapalli
2023-08-29 14:25 ` Shuah Khan
2023-08-29 17:46 ` Florian Fainelli
2023-08-30  2:02 ` Guenter Roeck
2023-08-30 10:24 ` Jon Hunter

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=20230828101202.549408518@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=Michael@michaellarabel.com \
    --cc=amir73il@gmail.com \
    --cc=clm@fb.com \
    --cc=david@fromorbit.com \
    --cc=jack@suse.cz \
    --cc=matthieu.baerts@tessares.net \
    --cc=patches@lists.linux.dev \
    --cc=saeed.mirzamohammadi@oracle.com \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=willy@infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).