All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Nikos Tsironis <ntsironis@arrikto.com>,
	Ilias Tsitsimpis <iliastsi@arrikto.com>,
	Mike Snitzer <snitzer@redhat.com>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH AUTOSEL 4.20 089/117] dm kcopyd: Fix bug causing workqueue stalls
Date: Tue,  8 Jan 2019 14:25:57 -0500	[thread overview]
Message-ID: <20190108192628.121270-89-sashal@kernel.org> (raw)
In-Reply-To: <20190108192628.121270-1-sashal@kernel.org>

From: Nikos Tsironis <ntsironis@arrikto.com>

[ Upstream commit d7e6b8dfc7bcb3f4f3a18313581f67486a725b52 ]

When using kcopyd to run callbacks through dm_kcopyd_do_callback() or
submitting copy jobs with a source size of 0, the jobs are pushed
directly to the complete_jobs list, which could be under processing by
the kcopyd thread. As a result, the kcopyd thread can continue running
completed jobs indefinitely, without releasing the CPU, as long as
someone keeps submitting new completed jobs through the aforementioned
paths. Processing of work items, queued for execution on the same CPU as
the currently running kcopyd thread, is thus stalled for excessive
amounts of time, hurting performance.

Running the following test, from the device mapper test suite [1],

  dmtest run --suite snapshot -n parallel_io_to_many_snaps_N

, with 8 active snapshots, we get, in dmesg, messages like the
following:

[68899.948523] BUG: workqueue lockup - pool cpus=0 node=0 flags=0x0 nice=0 stuck for 95s!
[68899.949282] Showing busy workqueues and worker pools:
[68899.949288] workqueue events: flags=0x0
[68899.949295]   pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=2/256
[68899.949306]     pending: vmstat_shepherd, cache_reap
[68899.949331] workqueue mm_percpu_wq: flags=0x8
[68899.949337]   pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=1/256
[68899.949345]     pending: vmstat_update
[68899.949387] workqueue dm_bufio_cache: flags=0x8
[68899.949392]   pwq 4: cpus=2 node=0 flags=0x0 nice=0 active=1/256
[68899.949400]     pending: work_fn [dm_bufio]
[68899.949423] workqueue kcopyd: flags=0x8
[68899.949429]   pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=1/256
[68899.949437]     pending: do_work [dm_mod]
[68899.949452] workqueue kcopyd: flags=0x8
[68899.949458]   pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=2/256
[68899.949466]     in-flight: 13:do_work [dm_mod]
[68899.949474]     pending: do_work [dm_mod]
[68899.949487] workqueue kcopyd: flags=0x8
[68899.949493]   pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=1/256
[68899.949501]     pending: do_work [dm_mod]
[68899.949515] workqueue kcopyd: flags=0x8
[68899.949521]   pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=1/256
[68899.949529]     pending: do_work [dm_mod]
[68899.949541] workqueue kcopyd: flags=0x8
[68899.949547]   pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=1/256
[68899.949555]     pending: do_work [dm_mod]
[68899.949568] pool 0: cpus=0 node=0 flags=0x0 nice=0 hung=95s workers=4 idle: 27130 27223 1084

Fix this by splitting the complete_jobs list into two parts: A user
facing part, named callback_jobs, and one used internally by kcopyd,
retaining the name complete_jobs. dm_kcopyd_do_callback() and
dispatch_job() now push their jobs to the callback_jobs list, which is
spliced to the complete_jobs list once, every time the kcopyd thread
wakes up. This prevents kcopyd from hogging the CPU indefinitely and
causing workqueue stalls.

Re-running the aforementioned test:

  * Workqueue stalls are eliminated
  * The maximum writing time among all targets is reduced from 09m37.10s
    to 06m04.85s and the total run time of the test is reduced from
    10m43.591s to 7m19.199s

[1] https://github.com/jthornber/device-mapper-test-suite

Signed-off-by: Nikos Tsironis <ntsironis@arrikto.com>
Signed-off-by: Ilias Tsitsimpis <iliastsi@arrikto.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/md/dm-kcopyd.c | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/drivers/md/dm-kcopyd.c b/drivers/md/dm-kcopyd.c
index 2fc4213e02b5..671c24332802 100644
--- a/drivers/md/dm-kcopyd.c
+++ b/drivers/md/dm-kcopyd.c
@@ -56,15 +56,17 @@ struct dm_kcopyd_client {
 	atomic_t nr_jobs;
 
 /*
- * We maintain three lists of jobs:
+ * We maintain four lists of jobs:
  *
  * i)   jobs waiting for pages
  * ii)  jobs that have pages, and are waiting for the io to be issued.
- * iii) jobs that have completed.
+ * iii) jobs that don't need to do any IO and just run a callback
+ * iv) jobs that have completed.
  *
- * All three of these are protected by job_lock.
+ * All four of these are protected by job_lock.
  */
 	spinlock_t job_lock;
+	struct list_head callback_jobs;
 	struct list_head complete_jobs;
 	struct list_head io_jobs;
 	struct list_head pages_jobs;
@@ -625,6 +627,7 @@ static void do_work(struct work_struct *work)
 	struct dm_kcopyd_client *kc = container_of(work,
 					struct dm_kcopyd_client, kcopyd_work);
 	struct blk_plug plug;
+	unsigned long flags;
 
 	/*
 	 * The order that these are called is *very* important.
@@ -633,6 +636,10 @@ static void do_work(struct work_struct *work)
 	 * list.  io jobs call wake when they complete and it all
 	 * starts again.
 	 */
+	spin_lock_irqsave(&kc->job_lock, flags);
+	list_splice_tail_init(&kc->callback_jobs, &kc->complete_jobs);
+	spin_unlock_irqrestore(&kc->job_lock, flags);
+
 	blk_start_plug(&plug);
 	process_jobs(&kc->complete_jobs, kc, run_complete_job);
 	process_jobs(&kc->pages_jobs, kc, run_pages_job);
@@ -650,7 +657,7 @@ static void dispatch_job(struct kcopyd_job *job)
 	struct dm_kcopyd_client *kc = job->kc;
 	atomic_inc(&kc->nr_jobs);
 	if (unlikely(!job->source.count))
-		push(&kc->complete_jobs, job);
+		push(&kc->callback_jobs, job);
 	else if (job->pages == &zero_page_list)
 		push(&kc->io_jobs, job);
 	else
@@ -858,7 +865,7 @@ void dm_kcopyd_do_callback(void *j, int read_err, unsigned long write_err)
 	job->read_err = read_err;
 	job->write_err = write_err;
 
-	push(&kc->complete_jobs, job);
+	push(&kc->callback_jobs, job);
 	wake(kc);
 }
 EXPORT_SYMBOL(dm_kcopyd_do_callback);
@@ -888,6 +895,7 @@ struct dm_kcopyd_client *dm_kcopyd_client_create(struct dm_kcopyd_throttle *thro
 		return ERR_PTR(-ENOMEM);
 
 	spin_lock_init(&kc->job_lock);
+	INIT_LIST_HEAD(&kc->callback_jobs);
 	INIT_LIST_HEAD(&kc->complete_jobs);
 	INIT_LIST_HEAD(&kc->io_jobs);
 	INIT_LIST_HEAD(&kc->pages_jobs);
@@ -939,6 +947,7 @@ void dm_kcopyd_client_destroy(struct dm_kcopyd_client *kc)
 	/* Wait for completion of all jobs submitted by this client. */
 	wait_event(kc->destroyq, !atomic_read(&kc->nr_jobs));
 
+	BUG_ON(!list_empty(&kc->callback_jobs));
 	BUG_ON(!list_empty(&kc->complete_jobs));
 	BUG_ON(!list_empty(&kc->io_jobs));
 	BUG_ON(!list_empty(&kc->pages_jobs));
-- 
2.19.1


  parent reply	other threads:[~2019-01-08 20:02 UTC|newest]

Thread overview: 167+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-08 19:24 [PATCH AUTOSEL 4.20 001/117] netfilter: ipset: Allow matching on destination MAC address for mac and ipmac sets Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 002/117] gpio: pl061: Move irq_chip definition inside struct pl061 Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 003/117] ASoC: wm97xx: fix uninitialized regmap pointer problem Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 004/117] drm/amd/display: Guard against null stream_state in set_crc_source Sasha Levin
2019-01-08 19:24   ` Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 005/117] drm/amdkfd: fix interrupt spin lock Sasha Levin
2019-01-08 19:24   ` Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 006/117] qtnfmac: fix error handling in control path Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 007/117] ixgbe: allow IPsec Tx offload in VEPA mode Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 008/117] platform/x86: asus-wmi: Tell the EC the OS will handle the display off hotkey Sasha Levin
2019-01-09  0:49   ` João Paulo Rechi Vita
2019-01-09  0:49     ` João Paulo Rechi Vita
2019-01-23 13:55     ` Sasha Levin
2019-01-23 13:55       ` Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 009/117] e1000e: allow non-monotonic SYSTIM readings Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 010/117] usb: typec: tcpm: Do not disconnect link for self powered devices Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 011/117] selftests/bpf: enable (uncomment) all tests in test_libbpf.sh Sasha Levin
2019-01-08 19:24   ` Sasha Levin
2019-01-08 19:24   ` sashal
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 012/117] of: overlay: add missing of_node_put() after add new node to changeset Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 013/117] writeback: don't decrement wb->refcnt if !wb->bdi Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 014/117] serial: set suppress_bind_attrs flag only if builtin Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 015/117] bpf: Allow narrow loads with offset > 0 Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 016/117] fanotify: return only user requested event types in event mask Sasha Levin
2019-01-09  6:50   ` Amir Goldstein
2019-01-09 11:32     ` Jan Kara
2019-01-23 13:56       ` Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 017/117] ALSA: oxfw: add support for APOGEE duet FireWire Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 018/117] x86/mce: Fix -Wmissing-prototypes warnings Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 019/117] MIPS: SiByte: Enable swiotlb for SWARM, LittleSur and BigSur Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 020/117] crypto: ecc - regularize scalar for scalar multiplication Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 021/117] drm/scheduler: Fix bad job be re-processed in TDR Sasha Levin
2019-01-08 19:24   ` Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 022/117] arm64: perf: set suppress_bind_attrs flag to true Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 023/117] MIPS: Loongson: Add Loongson-3A R2.1 basic support Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 024/117] x86/fault: Don't try to recover from an implicit supervisor access Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 025/117] USB: serial: ftdi_sio: use rounding when calculating baud rate divisors Sasha Levin
2019-01-09  8:24   ` Johan Hovold
2019-01-23 13:58     ` Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 026/117] drm/atomic-helper: Complete fake_commit->flip_done potentially earlier Sasha Levin
2019-01-08 19:24   ` Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 027/117] clk: meson: meson8b: add support for more M/N values in sys_pll Sasha Levin
2019-01-08 19:24   ` Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 028/117] clk: meson: meson8b: fix incorrect divider mapping in cpu_scale_table Sasha Levin
2019-01-08 19:24   ` Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 029/117] samples: bpf: fix: error handling regarding kprobe_events Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 030/117] usb: gadget: udc: renesas_usb3: add a safety connection way for forced_b_device Sasha Levin
2019-01-08 19:24 ` [PATCH AUTOSEL 4.20 031/117] fpga: altera-cvp: fix probing for multiple FPGAs on the bus Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 032/117] selinux: always allow mounting submounts Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 033/117] arm64: Use a raw spinlock in __install_bp_hardening_cb() Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 034/117] drm/amdgpu: Correct get_crtc_scanoutpos behavior when vpos >= vtotal Sasha Levin
2019-01-08 19:25   ` Sasha Levin
2019-01-09  9:20   ` Michel Dänzer
2019-01-09  9:20     ` Michel Dänzer
2019-01-23 14:03     ` Sasha Levin
2019-01-23 14:03       ` Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 035/117] block: use rcu_work instead of call_rcu to avoid sleep in softirq Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 036/117] ASoC: pcm3168a: Don't disable pcm3168a when CONFIG_PM defined Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 037/117] scsi: qedi: Check for session online before getting iSCSI TLV data Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 038/117] net: ethernet: ave: Set initial wol state to disabled Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 039/117] drm/amdgpu: Reorder uvd ring init before uvd resume Sasha Levin
2019-01-08 19:25   ` Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 040/117] rxe: IB_WR_REG_MR does not capture MR's iova field Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 041/117] efi/libstub: Disable some warnings for x86{,_64} Sasha Levin
2019-01-08 19:25   ` Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 042/117] jffs2: Fix use of uninitialized delayed_work, lockdep breakage Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 043/117] kbuild: let fixdep directly write to .*.cmd files Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 044/117] clk: imx: make mux parent strings const Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 045/117] pstore/ram: Do not treat empty buffers as valid Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 046/117] media: uvcvideo: Refactor teardown of uvc on USB disconnect Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 047/117] powerpc/xmon: Fix invocation inside lock region Sasha Levin
2019-01-08 19:25   ` Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 048/117] powerpc/pseries/cpuidle: Fix preempt warning Sasha Levin
2019-01-08 19:25   ` Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 049/117] arm64: relocatable: fix inconsistencies in linker script and options Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 050/117] media: firewire: Fix app_info parameter type in avc_ca{,_app}_info Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 051/117] ASoC: use dma_ops of parent device for acp_audio_dma Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 052/117] coresight: tmc: Fix bad register address for CLAIM Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 053/117] IB/hfi1: Incorrect sizing of sge for PIO will OOPs Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 054/117] media: venus: core: Set dma maximum segment size Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 055/117] staging: erofs: fix use-after-free of on-stack `z_erofs_vle_unzip_io' Sasha Levin
2019-01-08 19:25   ` Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 056/117] media: cedrus: don't initialize pointers with zero Sasha Levin
2019-01-09  8:48   ` Dan Carpenter
2019-01-23 14:04     ` Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 057/117] net: call sk_dst_reset when set SO_DONTROUTE Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 058/117] scsi: target: use consistent left-aligned ASCII INQUIRY data Sasha Levin
2019-01-08 19:25   ` Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 059/117] scsi: target/core: Make sure that target_wait_for_sess_cmds() waits long enough Sasha Levin
2019-01-08 19:25   ` [PATCH AUTOSEL 4.20 059/117] scsi: target/core: Make sure that target_wait_for_sess_cmds() waits lon Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 060/117] selftests: do not macro-expand failed assertion expressions Sasha Levin
2019-01-08 19:25   ` Sasha Levin
2019-01-08 19:25   ` sashal
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 061/117] arm64: kasan: Increase stack size for KASAN_EXTRA Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 062/117] clk: imx6q: reset exclusive gates on init Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 063/117] arm64: Fix minor issues with the dcache_by_line_op macro Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 064/117] bpf: relax verifier restriction on BPF_MOV | BPF_ALU Sasha Levin
2019-01-08 19:25   ` Sasha Levin
2019-01-08 19:25   ` sashal
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 065/117] usb: dwc2: Fix disable all EP's on disconnect Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 066/117] x86/resctrl: Fix rdt_find_domain() return value and checks Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 067/117] kconfig: fix file name and line number of warn_ignored_character() Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 068/117] kconfig: fix memory leak when EOF is encountered in quotation Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 069/117] iio: adc: qcom-spmi-adc5: Initialize prescale properly Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 070/117] mmc: atmel-mci: do not assume idle after atmci_request_end Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 071/117] btrfs: volumes: Make sure there is no overlap of dev extents at mount time Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 072/117] btrfs: alloc_chunk: fix more DUP stripe size handling Sasha Levin
2019-01-08 23:52   ` Hans van Kranenburg
2019-01-23 14:37     ` Sasha Levin
2019-01-23 15:54       ` Hans van Kranenburg
2019-01-23 17:41         ` David Sterba
2019-01-23 18:18         ` Sasha Levin
2019-01-23 19:32           ` Hans van Kranenburg
2019-11-19 15:23             ` Ben Hutchings
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 073/117] btrfs: fix use-after-free due to race between replace start and cancel Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 074/117] Btrfs: fix deadlock when enabling quotas due to concurrent snapshot creation Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 075/117] Btrfs: fix access to available allocation bits when starting balance Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 076/117] btrfs: improve error handling of btrfs_add_link Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 077/117] tty/serial: do not free trasnmit buffer page under port lock Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 078/117] tools lib traceevent: Fix compile warnings in tools/lib/traceevent/event-parse.c Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 079/117] perf intel-pt: Fix error with config term "pt=0" Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 080/117] perf tests ARM: Disable breakpoint tests 32-bit Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 081/117] perf svghelper: Fix unchecked usage of strncpy() Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 082/117] perf parse-events: " Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 083/117] perf vendor events intel: Fix Load_Miss_Real_Latency on SKL/SKX Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 084/117] netfilter: ipt_CLUSTERIP: check MAC address when duplicate config is set Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 085/117] netfilter: ipt_CLUSTERIP: remove wrong WARN_ON_ONCE in netns exit routine Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 086/117] netfilter: ipt_CLUSTERIP: fix deadlock " Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 087/117] x86/topology: Use total_cpus for max logical packages calculation Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 088/117] dm crypt: use u64 instead of sector_t to store iv_offset Sasha Levin
2019-01-08 19:25 ` Sasha Levin [this message]
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 090/117] perf stat: Avoid segfaults caused by negated options Sasha Levin
2019-01-08 19:25 ` [PATCH AUTOSEL 4.20 091/117] tools lib subcmd: Don't add the kernel sources to the include path Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 092/117] dm snapshot: Fix excessive memory usage and workqueue stalls Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 093/117] perf cs-etm: Correct packets swapping in cs_etm__flush() Sasha Levin
2019-01-08 19:26   ` Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 094/117] perf tools: Add missing sigqueue() prototype for systems lacking it Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 095/117] perf tools: Add missing open_memstream() " Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 096/117] quota: Lock s_umount in exclusive mode for Q_XQUOTA{ON,OFF} quotactls Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 097/117] clocksource/drivers/integrator-ap: Add missing of_node_put() Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 098/117] dm: Check for device sector overflow if CONFIG_LBDAF is not set Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 099/117] Bluetooth: btusb: Add support for Intel bluetooth device 8087:0029 Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 100/117] ALSA: bebob: fix model-id of unit for Apogee Ensemble Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 101/117] sysfs: Disable lockdep for driver bind/unbind files Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 102/117] IB/usnic: Fix potential deadlock Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 103/117] scsi: mpt3sas: fix memory ordering on 64bit writes Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 104/117] scsi: smartpqi: correct lun reset issues Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 105/117] ath10k: fix peer stats null pointer dereference Sasha Levin
2019-01-08 19:26   ` Sasha Levin
2019-01-08 19:26   ` Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 106/117] scsi: smartpqi: call pqi_free_interrupts() in pqi_shutdown() Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 107/117] KVM: PPC: Book3S HV: Align gfn to L1 page size when inserting nest-rmap entry Sasha Levin
2019-01-08 19:26   ` [PATCH AUTOSEL 4.20 107/117] KVM: PPC: Book3S HV: Align gfn to L1 page size when inserting nest-rmap Sasha Levin
2019-01-08 19:26   ` [PATCH AUTOSEL 4.20 107/117] KVM: PPC: Book3S HV: Align gfn to L1 page size when inserting nest-rmap entry Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 108/117] KVM: PPC: Book3S HV: Apply combination of host and l1 pte rc for nested guest Sasha Levin
2019-01-08 19:26   ` [PATCH AUTOSEL 4.20 108/117] KVM: PPC: Book3S HV: Apply combination of host and l1 pte rc for nested Sasha Levin
2019-01-08 19:26   ` [PATCH AUTOSEL 4.20 108/117] KVM: PPC: Book3S HV: Apply combination of host and l1 pte rc for nested guest Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 109/117] scsi: megaraid: fix out-of-bound array accesses Sasha Levin
2019-01-08 19:26   ` Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 110/117] iomap: don't search past page end in iomap_is_partially_uptodate Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 111/117] bnx2x: Fix NULL pointer dereference in bnx2x_del_all_vlans() on some hw Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 112/117] ocfs2: fix panic due to unrecovered local alloc Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 113/117] mm/page-writeback.c: don't break integrity writeback on ->writepage() error Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 114/117] mm/swap: use nr_node_ids for avail_lists in swap_info_struct Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 115/117] userfaultfd: clear flag if remap event not enabled Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 116/117] mm, proc: be more verbose about unstable VMA flags in /proc/<pid>/smaps Sasha Levin
2019-01-08 19:26 ` [PATCH AUTOSEL 4.20 117/117] mm/memblock.c: skip kmemleak for kasan_init() 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=20190108192628.121270-89-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=iliastsi@arrikto.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ntsironis@arrikto.com \
    --cc=snitzer@redhat.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.