linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Brian Chen <brianchen118@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Sasha Levin <sashal@kernel.org>,
	mingo@redhat.com, juri.lelli@redhat.com,
	vincent.guittot@linaro.org
Subject: [PATCH AUTOSEL 5.15 026/188] psi: Fix PSI_MEM_FULL state when tasks are in memstall and doing reclaim
Date: Mon, 17 Jan 2022 21:29:10 -0500	[thread overview]
Message-ID: <20220118023152.1948105-26-sashal@kernel.org> (raw)
In-Reply-To: <20220118023152.1948105-1-sashal@kernel.org>

From: Brian Chen <brianchen118@gmail.com>

[ Upstream commit cb0e52b7748737b2cf6481fdd9b920ce7e1ebbdf ]

We've noticed cases where tasks in a cgroup are stalled on memory but
there is little memory FULL pressure since tasks stay on the runqueue
in reclaim.

A simple example involves a single threaded program that keeps leaking
and touching large amounts of memory. It runs in a cgroup with swap
enabled, memory.high set at 10M and cpu.max ratio set at 5%. Though
there is significant CPU pressure and memory SOME, there is barely any
memory FULL since the task enters reclaim and stays on the runqueue.
However, this memory-bound task is effectively stalled on memory and
we expect memory FULL to match memory SOME in this scenario.

The code is confused about memstall && running, thinking there is a
stalled task and a productive task when there's only one task: a
reclaimer that's counted as both. To fix this, we redefine the
condition for PSI_MEM_FULL to check that all running tasks are in an
active memstall instead of checking that there are no running tasks.

        case PSI_MEM_FULL:
-               return unlikely(tasks[NR_MEMSTALL] && !tasks[NR_RUNNING]);
+               return unlikely(tasks[NR_MEMSTALL] &&
+                       tasks[NR_RUNNING] == tasks[NR_MEMSTALL_RUNNING]);

This will capture reclaimers. It will also capture tasks that called
psi_memstall_enter() and are about to sleep, but this should be
negligible noise.

Signed-off-by: Brian Chen <brianchen118@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Link: https://lore.kernel.org/r/20211110213312.310243-1-brianchen118@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/linux/psi_types.h | 13 ++++++++++-
 kernel/sched/psi.c        | 45 ++++++++++++++++++++++++---------------
 kernel/sched/stats.h      |  5 ++++-
 3 files changed, 44 insertions(+), 19 deletions(-)

diff --git a/include/linux/psi_types.h b/include/linux/psi_types.h
index 0a23300d49af7..0819c82dba920 100644
--- a/include/linux/psi_types.h
+++ b/include/linux/psi_types.h
@@ -21,7 +21,17 @@ enum psi_task_count {
 	 * don't have to special case any state tracking for it.
 	 */
 	NR_ONCPU,
-	NR_PSI_TASK_COUNTS = 4,
+	/*
+	 * For IO and CPU stalls the presence of running/oncpu tasks
+	 * in the domain means a partial rather than a full stall.
+	 * For memory it's not so simple because of page reclaimers:
+	 * they are running/oncpu while representing a stall. To tell
+	 * whether a domain has productivity left or not, we need to
+	 * distinguish between regular running (i.e. productive)
+	 * threads and memstall ones.
+	 */
+	NR_MEMSTALL_RUNNING,
+	NR_PSI_TASK_COUNTS = 5,
 };
 
 /* Task state bitmasks */
@@ -29,6 +39,7 @@ enum psi_task_count {
 #define TSK_MEMSTALL	(1 << NR_MEMSTALL)
 #define TSK_RUNNING	(1 << NR_RUNNING)
 #define TSK_ONCPU	(1 << NR_ONCPU)
+#define TSK_MEMSTALL_RUNNING	(1 << NR_MEMSTALL_RUNNING)
 
 /* Resources that workloads could be stalled on */
 enum psi_res {
diff --git a/kernel/sched/psi.c b/kernel/sched/psi.c
index 1652f2bb54b79..69b19d3af690f 100644
--- a/kernel/sched/psi.c
+++ b/kernel/sched/psi.c
@@ -34,13 +34,19 @@
  * delayed on that resource such that nobody is advancing and the CPU
  * goes idle. This leaves both workload and CPU unproductive.
  *
- * Naturally, the FULL state doesn't exist for the CPU resource at the
- * system level, but exist at the cgroup level, means all non-idle tasks
- * in a cgroup are delayed on the CPU resource which used by others outside
- * of the cgroup or throttled by the cgroup cpu.max configuration.
- *
  *	SOME = nr_delayed_tasks != 0
- *	FULL = nr_delayed_tasks != 0 && nr_running_tasks == 0
+ *	FULL = nr_delayed_tasks != 0 && nr_productive_tasks == 0
+ *
+ * What it means for a task to be productive is defined differently
+ * for each resource. For IO, productive means a running task. For
+ * memory, productive means a running task that isn't a reclaimer. For
+ * CPU, productive means an oncpu task.
+ *
+ * Naturally, the FULL state doesn't exist for the CPU resource at the
+ * system level, but exist at the cgroup level. At the cgroup level,
+ * FULL means all non-idle tasks in the cgroup are delayed on the CPU
+ * resource which is being used by others outside of the cgroup or
+ * throttled by the cgroup cpu.max configuration.
  *
  * The percentage of wallclock time spent in those compound stall
  * states gives pressure numbers between 0 and 100 for each resource,
@@ -81,13 +87,13 @@
  *
  *	threads = min(nr_nonidle_tasks, nr_cpus)
  *	   SOME = min(nr_delayed_tasks / threads, 1)
- *	   FULL = (threads - min(nr_running_tasks, threads)) / threads
+ *	   FULL = (threads - min(nr_productive_tasks, threads)) / threads
  *
  * For the 257 number crunchers on 256 CPUs, this yields:
  *
  *	threads = min(257, 256)
  *	   SOME = min(1 / 256, 1)             = 0.4%
- *	   FULL = (256 - min(257, 256)) / 256 = 0%
+ *	   FULL = (256 - min(256, 256)) / 256 = 0%
  *
  * For the 1 out of 4 memory-delayed tasks, this yields:
  *
@@ -112,7 +118,7 @@
  * For each runqueue, we track:
  *
  *	   tSOME[cpu] = time(nr_delayed_tasks[cpu] != 0)
- *	   tFULL[cpu] = time(nr_delayed_tasks[cpu] && !nr_running_tasks[cpu])
+ *	   tFULL[cpu] = time(nr_delayed_tasks[cpu] && !nr_productive_tasks[cpu])
  *	tNONIDLE[cpu] = time(nr_nonidle_tasks[cpu] != 0)
  *
  * and then periodically aggregate:
@@ -233,7 +239,8 @@ static bool test_state(unsigned int *tasks, enum psi_states state)
 	case PSI_MEM_SOME:
 		return unlikely(tasks[NR_MEMSTALL]);
 	case PSI_MEM_FULL:
-		return unlikely(tasks[NR_MEMSTALL] && !tasks[NR_RUNNING]);
+		return unlikely(tasks[NR_MEMSTALL] &&
+			tasks[NR_RUNNING] == tasks[NR_MEMSTALL_RUNNING]);
 	case PSI_CPU_SOME:
 		return unlikely(tasks[NR_RUNNING] > tasks[NR_ONCPU]);
 	case PSI_CPU_FULL:
@@ -710,10 +717,11 @@ static void psi_group_change(struct psi_group *group, int cpu,
 		if (groupc->tasks[t]) {
 			groupc->tasks[t]--;
 		} else if (!psi_bug) {
-			printk_deferred(KERN_ERR "psi: task underflow! cpu=%d t=%d tasks=[%u %u %u %u] clear=%x set=%x\n",
+			printk_deferred(KERN_ERR "psi: task underflow! cpu=%d t=%d tasks=[%u %u %u %u %u] clear=%x set=%x\n",
 					cpu, t, groupc->tasks[0],
 					groupc->tasks[1], groupc->tasks[2],
-					groupc->tasks[3], clear, set);
+					groupc->tasks[3], groupc->tasks[4],
+					clear, set);
 			psi_bug = 1;
 		}
 	}
@@ -854,12 +862,15 @@ void psi_task_switch(struct task_struct *prev, struct task_struct *next,
 		int clear = TSK_ONCPU, set = 0;
 
 		/*
-		 * When we're going to sleep, psi_dequeue() lets us handle
-		 * TSK_RUNNING and TSK_IOWAIT here, where we can combine it
-		 * with TSK_ONCPU and save walking common ancestors twice.
+		 * When we're going to sleep, psi_dequeue() lets us
+		 * handle TSK_RUNNING, TSK_MEMSTALL_RUNNING and
+		 * TSK_IOWAIT here, where we can combine it with
+		 * TSK_ONCPU and save walking common ancestors twice.
 		 */
 		if (sleep) {
 			clear |= TSK_RUNNING;
+			if (prev->in_memstall)
+				clear |= TSK_MEMSTALL_RUNNING;
 			if (prev->in_iowait)
 				set |= TSK_IOWAIT;
 		}
@@ -908,7 +919,7 @@ void psi_memstall_enter(unsigned long *flags)
 	rq = this_rq_lock_irq(&rf);
 
 	current->in_memstall = 1;
-	psi_task_change(current, 0, TSK_MEMSTALL);
+	psi_task_change(current, 0, TSK_MEMSTALL | TSK_MEMSTALL_RUNNING);
 
 	rq_unlock_irq(rq, &rf);
 }
@@ -937,7 +948,7 @@ void psi_memstall_leave(unsigned long *flags)
 	rq = this_rq_lock_irq(&rf);
 
 	current->in_memstall = 0;
-	psi_task_change(current, TSK_MEMSTALL, 0);
+	psi_task_change(current, TSK_MEMSTALL | TSK_MEMSTALL_RUNNING, 0);
 
 	rq_unlock_irq(rq, &rf);
 }
diff --git a/kernel/sched/stats.h b/kernel/sched/stats.h
index d8f8eb0c655ba..606a3982d13a5 100644
--- a/kernel/sched/stats.h
+++ b/kernel/sched/stats.h
@@ -69,6 +69,9 @@ static inline void psi_enqueue(struct task_struct *p, bool wakeup)
 	if (static_branch_likely(&psi_disabled))
 		return;
 
+	if (p->in_memstall)
+		set |= TSK_MEMSTALL_RUNNING;
+
 	if (!wakeup || p->sched_psi_wake_requeue) {
 		if (p->in_memstall)
 			set |= TSK_MEMSTALL;
@@ -99,7 +102,7 @@ static inline void psi_dequeue(struct task_struct *p, bool sleep)
 		return;
 
 	if (p->in_memstall)
-		clear |= TSK_MEMSTALL;
+		clear |= (TSK_MEMSTALL | TSK_MEMSTALL_RUNNING);
 
 	psi_task_change(p, clear, 0);
 }
-- 
2.34.1


  parent reply	other threads:[~2022-01-18  2:48 UTC|newest]

Thread overview: 193+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-18  2:28 [PATCH AUTOSEL 5.15 001/188] Bluetooth: Fix debugfs entry leak in hci_register_dev() Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 002/188] Bluetooth: Fix memory leak of hci device Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 003/188] drm/panel: Delete panel on mipi_dsi_attach() failure Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 004/188] Bluetooth: Fix removing adv when processing cmd complete Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 005/188] fs: dlm: filter user dlm messages for kernel locks Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 006/188] libbpf: Validate that .BTF and .BTF.ext sections contain data Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 007/188] drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 008/188] selftests/bpf: Fix memory leaks in btf_type_c_dump() helper Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 009/188] selftests/bpf: Destroy XDP link correctly Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 010/188] selftests/bpf: Fix bpf_object leak in skb_ctx selftest Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 011/188] ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 012/188] drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 013/188] drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 014/188] media: atomisp: add NULL check for asd obtained from atomisp_video_pipe Sasha Levin
2022-01-18  2:28 ` [PATCH AUTOSEL 5.15 015/188] media: atomisp: fix try_fmt logic Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 016/188] media: atomisp: set per-device's default mode Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 017/188] media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 018/188] media: atomisp: check before deference asd variable Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 019/188] ARM: shmobile: rcar-gen2: Add missing of_node_put() Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 020/188] batman-adv: allow netlink usage in unprivileged containers Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 021/188] media: atomisp: handle errors at sh_css_create_isp_params() Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 022/188] ath11k: Fix crash caused by uninitialized TX ring Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 023/188] usb: dwc3: meson-g12a: fix shared reset control use Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 024/188] USB: ehci_brcm_hub_control: Improve port index sanitizing Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 025/188] usb: gadget: f_fs: Use stream_open() for endpoint files Sasha Levin
2022-01-18  2:29 ` Sasha Levin [this message]
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 027/188] drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 028/188] amd: lance: use eth_hw_addr_set() Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 029/188] amd: ni65: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 030/188] amd: a2065/ariadne: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 031/188] amd: hplance: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 032/188] amd: atarilance: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 033/188] amd: mvme147: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 034/188] 8390: smc-ultra: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 035/188] 8390: hydra: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 036/188] 8390: mac8390: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 037/188] 8390: wd: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 038/188] smc9194: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 039/188] lasi_82594: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 040/188] apple: macmace: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 041/188] cirrus: mac89x0: " Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 042/188] HID: magicmouse: Report battery level over USB Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 043/188] HID: apple: Do not reset quirks when the Fn key is not found Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 044/188] media: b2c2: Add missing check in flexcop_pci_isr: Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 045/188] libbpf: Accommodate DWARF/compiler bug with duplicated structs Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 046/188] ethernet: renesas: Use div64_ul instead of do_div Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 047/188] 82596: use eth_hw_addr_set() Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 048/188] EDAC/synopsys: Use the quirk for version instead of ddr version Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 049/188] arm64: dts: qcom: sm8350: Shorten camera-thermal-bottom name Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 050/188] soc: imx: gpcv2: Synchronously suspend MIX domains Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 051/188] ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 052/188] drm/amd/display: check top_pipe_to_program pointer Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 053/188] drm/amdgpu/display: set vblank_disable_immediate for DC Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 054/188] soc: ti: pruss: fix referenced node in error message Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 055/188] mlxsw: pci: Add shutdown method in PCI driver Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 056/188] drm/amd/display: add else to avoid double destroy clk_mgr Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 057/188] drm/bridge: megachips: Ensure both bridges are probed before registration Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 058/188] mxser: keep only !tty test in ISR Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 059/188] tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown() Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 060/188] gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 061/188] HSI: core: Fix return freed object in hsi_new_client Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 062/188] crypto: jitter - consider 32 LSB for APT Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 063/188] rtw88: add quirk to disable pci caps on HP 250 G7 Notebook PC Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 064/188] mwifiex: Fix skb_over_panic in mwifiex_usb_recv() Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 065/188] rsi: Fix use-after-free in rsi_rx_done_handler() Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 066/188] rsi: Fix out-of-bounds read in rsi_read_pkt() Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 067/188] ath11k: Avoid NULL ptr access during mgmt tx cleanup Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 068/188] media: venus: avoid calling core_clk_setrate() concurrently during concurrent video sessions Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 069/188] regulator: da9121: Prevent current limit change when enabled Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 070/188] drm/vmwgfx: Release ttm memory if probe fails Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 071/188] drm/vmwgfx: Introduce a new placement for MOB page tables Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 072/188] ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 073/188] ACPI: Change acpi_device_always_present() into acpi_device_override_status() Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 074/188] ACPI / x86: Allow specifying acpi_device_override_status() quirks by path Sasha Levin
2022-01-18  2:29 ` [PATCH AUTOSEL 5.15 075/188] ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the GPD win Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 076/188] arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 077/188] arm64: dts: ti: j721e-main: Fix 'dtbs_check' in " Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 078/188] usb: uhci: add aspeed ast2600 uhci support Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 079/188] floppy: Add max size check for user space request Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 080/188] x86/mm: Flush global TLB when switching to trampoline page-table Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 081/188] s390/nmi: add missing __pa/__va address conversion of extended save area Sasha Levin
2022-01-18  8:18   ` Christian Borntraeger
2022-01-22 19:18     ` Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 082/188] drm: rcar-du: Fix CRTC timings when CMM is used Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 083/188] media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 084/188] media: rcar-vin: Update format alignment constraints Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 085/188] media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach() Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 086/188] media: atomisp: fix "variable dereferenced before check 'asd'" Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 087/188] media: m920x: don't use stack on USB reads Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 088/188] thunderbolt: Runtime PM activate both ends of the device link Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 089/188] arm64: dts: renesas: Fix thermal bindings Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 090/188] iwlwifi: mvm: synchronize with FW after multicast commands Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 091/188] iwlwifi: mvm: avoid clearing a just saved session protection id Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 092/188] rcutorture: Avoid soft lockup during cpu stall Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 093/188] net: dsa: ocelot: felix: Remove requirement for PCS in felix devices Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 094/188] ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 095/188] ath10k: Fix tx hanging Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 096/188] net-sysfs: update the queue counts in the unregistration path Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 097/188] net: phy: prefer 1000baseT over 1000baseKX Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 098/188] gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 099/188] gpio: aspeed-sgpio: Convert aspeed_sgpio.lock " Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 100/188] selftests/ftrace: make kprobe profile testcase description unique Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 101/188] net: Enable neighbor sysctls that is save for userns root Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 102/188] ath11k: Avoid false DEADLOCK warning reported by lockdep Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 103/188] ARM: dts: qcom: sdx55: fix IPA interconnect definitions Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 104/188] x86/mce: Allow instrumentation during task work queueing Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 105/188] x86/mce: Mark mce_panic() noinstr Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 106/188] x86/mce: Mark mce_end() noinstr Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 107/188] x86/mce: Mark mce_read_aux() noinstr Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 108/188] net: bonding: debug: avoid printing debug logs when bond is not notifying peers Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 109/188] kunit: Don't crash if no parameters are generated Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 110/188] bpf: Do not WARN in bpf_warn_invalid_xdp_action() Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 111/188] drm/amdkfd: Fix error handling in svm_range_add Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 112/188] HID: quirks: Allow inverting the absolute X/Y values Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 113/188] HID: i2c-hid-of: Expose the touchscreen-inverted properties Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 114/188] media: igorplugusb: receiver overflow should be reported Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 115/188] media: rockchip: rkisp1: use device name for debugfs subdir name Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 116/188] media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach() Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 117/188] mmc: tmio: reinit card irqs in reset routine Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 118/188] mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 119/188] drm/amd/amdgpu: fix psp tmr bo pin count leak in SRIOV Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 120/188] drm/amd/amdgpu: fix gmc " Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 121/188] audit: ensure userspace is penalized the same as the kernel when under pressure Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 122/188] arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 123/188] drm/tegra: dc: rgb: Allow changing PLLD rate on Tegra30+ Sasha Levin
2022-01-18  9:37   ` Dmitry Osipenko
2022-01-18  9:39     ` Dmitry Osipenko
2022-01-22 19:19       ` Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 124/188] arm64: tegra: Adjust length of CCPLEX cluster MMIO region Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 125/188] crypto: ccp - Move SEV_INIT retry for corrupted data Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 126/188] crypto: hisilicon/hpre - fix memory leak in hpre_curve25519_src_init() Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 127/188] PM: runtime: Add safety net to supplier device release Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 128/188] cpufreq: Fix initialization of min and max frequency QoS requests Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 129/188] usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0 Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 130/188] mt76: mt7615: fix possible deadlock while mt7615_register_ext_phy() Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 131/188] mt76: do not pass the received frame with decryption error Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 132/188] mt76: mt7615: improve wmm index allocation Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 133/188] ath9k_htc: fix NULL pointer dereference at ath9k_htc_rxep() Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 134/188] ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet() Sasha Levin
2022-01-18  2:30 ` [PATCH AUTOSEL 5.15 135/188] ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 136/188] rtw88: 8822c: update rx settings to prevent potential hw deadlock Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 137/188] PM: AVS: qcom-cpr: Use div64_ul instead of do_div Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 138/188] iwlwifi: fix leaks/bad data after failed firmware load Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 139/188] iwlwifi: remove module loading failure message Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 140/188] iwlwifi: mvm: Fix calculation of frame length Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 141/188] iwlwifi: mvm: fix AUX ROC removal Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 142/188] iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 143/188] mmc: sdhci-pci-gli: GL9755: Support for CD/WP inversion on OF platforms Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 144/188] block: check minor range in device_add_disk() Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 145/188] um: registers: Rename function names to avoid conflicts and build problems Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 146/188] ath11k: Fix napi related hang Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 147/188] Bluetooth: btintel: Add missing quirks and msft ext for legacy bootloader Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 148/188] Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 149/188] xfrm: rate limit SA mapping change message to user space Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 150/188] drm/etnaviv: consider completed fence seqno in hang check Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 151/188] jffs2: GC deadlock reading a page that is used in jffs2_write_begin() Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 152/188] ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 153/188] ACPICA: Utilities: Avoid deleting the same object twice in a row Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 154/188] ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R() Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 155/188] ACPICA: Fix wrong interpretation of PCC address Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 156/188] ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5 Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 157/188] mmc: mtk-sd: Use readl_poll_timeout instead of open-coded polling Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 158/188] drm/amdgpu: Don't inherit GEM object VMAs in child process Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 159/188] drm/amdgpu: fixup bad vram size on gmc v8 Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 160/188] mfd: intel_soc_pmic: Use CPU-id check instead of _HRV check to differentiate variants Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 161/188] amdgpu/pm: Make sysfs pm attributes as read-only for VFs Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 162/188] ACPI: battery: Add the ThinkPad "Not Charging" quirk Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 163/188] ACPI: CPPC: Check present CPUs for determining _CPC is valid Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 164/188] btrfs: remove BUG_ON() in find_parent_nodes() Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 165/188] btrfs: remove BUG_ON(!eie) in find_parent_nodes Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 166/188] net: mdio: Demote probed message to debug print Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 167/188] mac80211: allow non-standard VHT MCS-10/11 Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 168/188] dm btree: add a defensive bounds check to insert_at() Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 169/188] dm space map common: add bounds check to sm_ll_lookup_bitmap() Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 170/188] bpf/selftests: Fix namespace mount setup in tc_redirect Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 171/188] mlxsw: pci: Avoid flow control for EMAD packets Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 172/188] net: phy: marvell: configure RGMII delays for 88E1118 Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 173/188] net: gemini: allow any RGMII interface mode Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 174/188] net: dsa: hold rtnl_mutex when calling dsa_master_{setup,teardown} Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 175/188] regulator: qcom_smd: Align probe function with rpmh-regulator Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 176/188] serial: pl010: Drop CR register reset on set_termios Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 177/188] serial: pl011: " Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 178/188] serial: core: Keep mctrl register state and cached copy in sync Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 179/188] random: do not throw away excess input to crng_fast_load Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 180/188] net/mlx5: Update log_max_qp value to FW max capability Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 181/188] net/mlx5e: Unblock setting vid 0 for VF in case PF isn't eswitch manager Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 182/188] parisc: Avoid calling faulthandler_disabled() twice Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 183/188] scripts: sphinx-pre-install: Fix ctex support on Debian Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 184/188] can: flexcan: allow to change quirks at runtime Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 185/188] can: flexcan: rename RX modes Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 186/188] can: flexcan: add more quirks to describe RX path capabilities Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 187/188] x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs Sasha Levin
2022-01-18  2:31 ` [PATCH AUTOSEL 5.15 188/188] ext4: allow to change s_last_trim_minblks via sysfs Sasha Levin

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=20220118023152.1948105-26-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=brianchen118@gmail.com \
    --cc=hannes@cmpxchg.org \
    --cc=juri.lelli@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=stable@vger.kernel.org \
    --cc=vincent.guittot@linaro.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).