public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	kernel test robot <oliver.sang@intel.com>,
	Sandeep Patil <sspatil@android.com>,
	Mel Gorman <mgorman@techsingularity.net>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.13 073/127] pipe: avoid unnecessary EPOLLET wakeups under normal loads
Date: Tue, 24 Aug 2021 12:55:13 -0400	[thread overview]
Message-ID: <20210824165607.709387-74-sashal@kernel.org> (raw)
In-Reply-To: <20210824165607.709387-1-sashal@kernel.org>

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

[ Upstream commit 3b844826b6c6affa80755254da322b017358a2f4 ]

I had forgotten just how sensitive hackbench is to extra pipe wakeups,
and commit 3a34b13a88ca ("pipe: make pipe writes always wake up
readers") ended up causing a quite noticeable regression on larger
machines.

Now, hackbench isn't necessarily a hugely meaningful benchmark, and it's
not clear that this matters in real life all that much, but as Mel
points out, it's used often enough when comparing kernels and so the
performance regression shows up like a sore thumb.

It's easy enough to fix at least for the common cases where pipes are
used purely for data transfer, and you never have any exciting poll
usage at all.  So set a special 'poll_usage' flag when there is polling
activity, and make the ugly "EPOLLET has crazy legacy expectations"
semantics explicit to only that case.

I would love to limit it to just the broken EPOLLET case, but the pipe
code can't see the difference between epoll and regular select/poll, so
any non-read/write waiting will trigger the extra wakeup behavior.  That
is sufficient for at least the hackbench case.

Apart from making the odd extra wakeup cases more explicitly about
EPOLLET, this also makes the extra wakeup be at the _end_ of the pipe
write, not at the first write chunk.  That is actually much saner
semantics (as much as you can call any of the legacy edge-triggered
expectations for EPOLLET "sane") since it means that you know the wakeup
will happen once the write is done, rather than possibly in the middle
of one.

[ For stable people: I'm putting a "Fixes" tag on this, but I leave it
  up to you to decide whether you actually want to backport it or not.
  It likely has no impact outside of synthetic benchmarks  - Linus ]

Link: https://lore.kernel.org/lkml/20210802024945.GA8372@xsang-OptiPlex-9020/
Fixes: 3a34b13a88ca ("pipe: make pipe writes always wake up readers")
Reported-by: kernel test robot <oliver.sang@intel.com>
Tested-by: Sandeep Patil <sspatil@android.com>
Tested-by: Mel Gorman <mgorman@techsingularity.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/pipe.c                 | 15 +++++++++------
 include/linux/pipe_fs_i.h |  2 ++
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/fs/pipe.c b/fs/pipe.c
index 8e6ef62aeb1c..678dee2a8228 100644
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -444,9 +444,6 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
 #endif
 
 	/*
-	 * Epoll nonsensically wants a wakeup whether the pipe
-	 * was already empty or not.
-	 *
 	 * If it wasn't empty we try to merge new data into
 	 * the last buffer.
 	 *
@@ -455,9 +452,9 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
 	 * spanning multiple pages.
 	 */
 	head = pipe->head;
-	was_empty = true;
+	was_empty = pipe_empty(head, pipe->tail);
 	chars = total_len & (PAGE_SIZE-1);
-	if (chars && !pipe_empty(head, pipe->tail)) {
+	if (chars && !was_empty) {
 		unsigned int mask = pipe->ring_size - 1;
 		struct pipe_buffer *buf = &pipe->bufs[(head - 1) & mask];
 		int offset = buf->offset + buf->len;
@@ -590,8 +587,11 @@ out:
 	 * This is particularly important for small writes, because of
 	 * how (for example) the GNU make jobserver uses small writes to
 	 * wake up pending jobs
+	 *
+	 * Epoll nonsensically wants a wakeup whether the pipe
+	 * was already empty or not.
 	 */
-	if (was_empty) {
+	if (was_empty || pipe->poll_usage) {
 		wake_up_interruptible_sync_poll(&pipe->rd_wait, EPOLLIN | EPOLLRDNORM);
 		kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
 	}
@@ -654,6 +654,9 @@ pipe_poll(struct file *filp, poll_table *wait)
 	struct pipe_inode_info *pipe = filp->private_data;
 	unsigned int head, tail;
 
+	/* Epoll has some historical nasty semantics, this enables them */
+	pipe->poll_usage = 1;
+
 	/*
 	 * Reading pipe state only -- no need for acquiring the semaphore.
 	 *
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
index 5d2705f1d01c..fc5642431b92 100644
--- a/include/linux/pipe_fs_i.h
+++ b/include/linux/pipe_fs_i.h
@@ -48,6 +48,7 @@ struct pipe_buffer {
  *	@files: number of struct file referring this pipe (protected by ->i_lock)
  *	@r_counter: reader counter
  *	@w_counter: writer counter
+ *	@poll_usage: is this pipe used for epoll, which has crazy wakeups?
  *	@fasync_readers: reader side fasync
  *	@fasync_writers: writer side fasync
  *	@bufs: the circular array of pipe buffers
@@ -70,6 +71,7 @@ struct pipe_inode_info {
 	unsigned int files;
 	unsigned int r_counter;
 	unsigned int w_counter;
+	unsigned int poll_usage;
 	struct page *tmp_page;
 	struct fasync_struct *fasync_readers;
 	struct fasync_struct *fasync_writers;
-- 
2.30.2


  parent reply	other threads:[~2021-08-24 17:01 UTC|newest]

Thread overview: 143+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-24 16:54 [PATCH 5.13 000/127] 5.13.13-rc1 review Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 001/127] mtd: cfi_cmdset_0002: fix crash when erasing/writing AMD cards Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 002/127] io_uring: Use WRITE_ONCE() when writing to sq_flags Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 003/127] USB: core: Avoid WARNings for 0-length descriptor requests Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 004/127] USB: core: Fix incorrect pipe calculation in do_proc_control() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 005/127] dmaengine: xilinx_dma: Fix read-after-free bug when terminating transfers Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 006/127] dmaengine: usb-dmac: Fix PM reference leak in usb_dmac_probe() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 007/127] spi: spi-mux: Add module info needed for autoloading Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 008/127] net: xfrm: Fix end of loop tests for list_for_each_entry Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 009/127] ARM: dts: am43x-epos-evm: Reduce i2c0 bus speed for tps65218 Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 010/127] dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not yet available Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 011/127] scsi: pm80xx: Fix TMF task completion race condition Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 012/127] scsi: megaraid_mm: Fix end of loop tests for list_for_each_entry() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 013/127] scsi: scsi_dh_rdac: Avoid crash during rdac_bus_attach() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 014/127] scsi: core: Avoid printing an error if target_alloc() returns -ENXIO Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 015/127] scsi: core: Fix capacity set to zero after offlinining device Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 016/127] drm/amdgpu: fix the doorbell missing when in CGPG issue for renoir Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 017/127] qede: fix crash in rmmod qede while automatic debug collection Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 018/127] ARM: dts: nomadik: Fix up interrupt controller node names Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 019/127] net: usb: pegasus: Check the return value of get_geristers() and friends; Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 020/127] net: usb: lan78xx: don't modify phy_device state concurrently Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 021/127] perf/x86: Fix out of bound MSR access Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 022/127] spi: cadence-quadspi: Fix check condition for DTR ops Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 023/127] drm/amd/display: Fix Dynamic bpp issue with 8K30 with Navi 1X Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 024/127] drm/amd/display: workaround for hard hang on HPD on native DP Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 025/127] kyber: make trace_block_rq call consistent with documentation Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 026/127] mtd: rawnand: Add a check in of_get_nand_secure_regions() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 027/127] arm64: dts: qcom: c630: fix correct powerdown pin for WSA881x Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 028/127] arm64: dts: qcom: msm8992-bullhead: Remove PSCI Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 029/127] arm64: dts: qcom: msm8992-bullhead: Fix cont_splash_mem mapping Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 030/127] iommu: Check if group is NULL before remove device Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 031/127] cpufreq: arm_scmi: Fix error path when allocation failed Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 032/127] arm64: dts: qcom: msm8994-angler: Disable cont_splash_mem Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 033/127] arm64: dts: qcom: sdm845-oneplus: fix reserved-mem Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 034/127] mt76: fix enum type mismatch Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 035/127] mtd: rawnand: Fix probe failure due to of_get_nand_secure_regions() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 036/127] soc: fsl: qe: convert QE interrupt controller to platform_device Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 037/127] cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 038/127] dccp: add do-while-0 stubs for dccp_pr_debug macros Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 039/127] virtio: Protect vqs list access Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 040/127] vhost-vdpa: Fix integer overflow in vhost_vdpa_process_iotlb_update() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 041/127] bus: ti-sysc: Fix error handling for sysc_check_active_timer() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 042/127] vhost: Fix the calculation in vhost_overflow() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 043/127] vdpa_sim: Fix return value check for vdpa_alloc_device() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 044/127] vp_vdpa: " Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 045/127] vDPA/ifcvf: " Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 046/127] vdpa/mlx5: Avoid destroying MR on empty iotlb Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 047/127] vdpa/mlx5: Fix queue type selection logic Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 048/127] drm/mediatek: Add AAL output size configuration Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 049/127] drm/mediatek: Add component_del in OVL and COLOR remove function Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 050/127] bpf: Clear zext_dst of dead insns Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 051/127] bnxt: don't lock the tx queue from napi poll Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 052/127] bnxt: disable napi before canceling DIM Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 053/127] bnxt: make sure xmit_more + errors does not miss doorbells Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 054/127] bnxt: count Tx drops Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 055/127] soc: fsl: qe: fix static checker warning Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 056/127] net: 6pack: fix slab-out-of-bounds in decode_data Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 057/127] ptp_pch: Restore dependency on PCI Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 058/127] bnxt_en: Disable aRFS if running on 212 firmware Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 059/127] bnxt_en: Add missing DMA memory barriers Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 060/127] vrf: Reset skb conntrack connection on VRF rcv Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 061/127] virtio-net: use NETIF_F_GRO_HW instead of NETIF_F_LRO Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 062/127] mac80211: fix locking in ieee80211_restart_work() Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 063/127] net: qlcnic: add missed unlock in qlcnic_83xx_flash_read32 Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 064/127] ixgbe, xsk: clean up the resources in ixgbe_xsk_pool_enable error path Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 065/127] sch_cake: fix srchost/dsthost hashing mode Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 066/127] net: mdio-mux: Don't ignore memory allocation errors Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 067/127] net: mdio-mux: Handle -EPROBE_DEFER correctly Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 068/127] ovs: clear skb->tstamp in forwarding path Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 069/127] net: usb: asix: refactor asix_read_phy_addr() and handle errors on return Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 070/127] iommu/vt-d: Fix incomplete cache flush in intel_pasid_tear_down_entry() Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 071/127] drm/i915: Skip display interruption setup when display is not available Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 072/127] drm/i915: Tweaked Wa_14010685332 for all PCHs Sasha Levin
2021-08-24 16:55 ` Sasha Levin [this message]
2021-08-24 17:00   ` [PATCH 5.13 073/127] pipe: avoid unnecessary EPOLLET wakeups under normal loads Linus Torvalds
2021-08-24 17:35     ` Sasha Levin
2021-08-24 18:01       ` Linus Torvalds
2021-08-25 18:08     ` Linus Torvalds
2021-08-24 16:55 ` [PATCH 5.13 074/127] drm/amd/display: Use DCN30 watermark calc for DCN301 Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 075/127] net: mscc: ocelot: allow forwarding from bridge ports to the tag_8021q CPU port Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 076/127] mptcp: fix memory leak on address flush Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 077/127] mptcp: full fully established support after ADD_ADDR Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 078/127] r8152: fix writing USB_BP2_EN Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 079/127] r8152: fix the maximum number of PLA bp for RTL8153C Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 080/127] PCI/sysfs: Use correct variable for the legacy_mem sysfs object Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 081/127] i40e: Fix ATR queue selection Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 082/127] iavf: Fix ping is lost after untrusted VF had tried to change MAC Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 083/127] Revert "flow_offload: action should not be NULL when it is referenced" Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 084/127] net: dpaa2-switch: disable the control interface on error path Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 085/127] iommu/dma: Fix leak in non-contiguous API Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 086/127] mmc: dw_mmc: Fix hang on data CRC error Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 087/127] mmc: mmci: stm32: Check when the voltage switch procedure should be done Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 088/127] mmc: sdhci-msm: Update the software timeout value for sdhc Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 089/127] clk: imx6q: fix uart earlycon unwork Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 090/127] clk: qcom: gdsc: Ensure regulator init state matches GDSC state Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 091/127] arm64: clean vdso & vdso32 files Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 092/127] cfi: Use rcu_read_{un}lock_sched_notrace Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 093/127] ALSA: hda - fix the 'Capture Switch' value change notifications Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 094/127] tracing: define needed config DYNAMIC_FTRACE_WITH_ARGS Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 095/127] tracing / histogram: Fix NULL pointer dereference on strcmp() on NULL event name Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 096/127] slimbus: messaging: start transaction ids from 1 instead of zero Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 097/127] slimbus: messaging: check for valid transaction id Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 098/127] slimbus: ngd: set correct device for pm Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 099/127] slimbus: ngd: reset dma setup during runtime pm Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 100/127] ipack: tpci200: fix many double free issues in tpci200_pci_probe Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 101/127] ipack: tpci200: fix memory leak in the tpci200_register Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 102/127] io_uring: fix code style problems Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 103/127] io_uring: only assign io_uring_enter() SQPOLL error in actual error case Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 104/127] ALSA: hda/realtek: Enable 4-speaker output for Dell XPS 15 9510 laptop Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 105/127] opp: Drop empty-table checks from _put functions Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 106/127] mmc: sdhci-iproc: Cap min clock frequency on BCM2711 Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 107/127] mmc: sdhci-iproc: Set SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN " Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 108/127] btrfs: prevent rename2 from exchanging a subvol with a directory from different parents Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 109/127] tracing: Apply trace filters on all output channels Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 110/127] ALSA: hda/via: Apply runtime PM workaround for ASUS B23E Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 111/127] s390/pci: fix use after free of zpci_dev Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 112/127] usb: typec: tcpm: Fix VDMs sometimes not being forwarded to alt-mode drivers Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 113/127] powerpc/32s: Move setup_{kuep/kuap}() into {kuep/kuap}.c Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 114/127] powerpc/32s: Refactor update of user segment registers Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 115/127] powerpc/32s: Fix random crashes by adding isync() after locking/unlocking KUEP Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 116/127] PCI: Increase D3 delay for AMD Renoir/Cezanne XHCI Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 117/127] ALSA: hda/realtek: Limit mic boost on HP ProBook 445 G8 Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 118/127] ASoC: intel: atom: Fix breakage for PCM buffer address setup Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 119/127] riscv: Fix a number of free'd resources in init_resources() Sasha Levin
2021-08-24 16:56 ` [PATCH 5.13 120/127] mm: memcontrol: fix occasional OOMs due to proportional memory.low reclaim Sasha Levin
2021-08-24 16:56 ` [PATCH 5.13 121/127] mm,hwpoison: make get_hwpoison_page() call get_any_page() Sasha Levin
2021-08-24 16:56 ` [PATCH 5.13 122/127] mm/hwpoison: retry with shake_page() for unhandlable pages Sasha Levin
2021-08-24 16:56 ` [PATCH 5.13 123/127] kfence: fix is_kfence_address() for addresses below KFENCE_POOL_SIZE Sasha Levin
2021-08-24 16:56 ` [PATCH 5.13 124/127] hugetlb: don't pass page cache pages to restore_reserve_on_error Sasha Levin
2021-08-24 16:56 ` [PATCH 5.13 125/127] io_uring: fix xa_alloc_cycle() error return value check Sasha Levin
2021-08-24 16:56 ` [PATCH 5.13 126/127] fs: warn about impending deprecation of mandatory locks Sasha Levin
2021-09-02 13:20   ` Naresh Kamboju
2021-09-02 13:27     ` Jeff Layton
2021-09-02 13:39       ` Naresh Kamboju
2021-09-02 13:31     ` Greg Kroah-Hartman
2021-09-02 13:38       ` Naresh Kamboju
2021-08-24 16:56 ` [PATCH 5.13 127/127] Linux 5.13.13-rc1 Sasha Levin
2021-08-25 16:21 ` [PATCH 5.13 000/127] 5.13.13-rc1 review Daniel Díaz
2021-08-26 12:49   ` Sasha Levin
2021-08-25 20:24 ` Guenter Roeck
2021-08-26 12:50   ` Sasha Levin
2021-08-25 22:34 ` Shuah Khan
2021-08-26 12:50   ` 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=20210824165607.709387-74-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mgorman@techsingularity.net \
    --cc=oliver.sang@intel.com \
    --cc=sspatil@android.com \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.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