All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Tyler Sanderson <tysand@google.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Wei Wang <wei.w.wang@intel.com>,
	Alexander Duyck <alexander.h.duyck@linux.intel.com>,
	David Rientjes <rientjes@google.com>,
	Nadav Amit <namit@vmware.com>, Michal Hocko <mhocko@kernel.org>,
	David Hildenbrand <david@redhat.com>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.6 130/166] virtio-balloon: Switch back to OOM handler for VIRTIO_BALLOON_F_DEFLATE_ON_OOM
Date: Wed, 22 Apr 2020 11:57:37 +0200	[thread overview]
Message-ID: <20200422095102.393216309@linuxfoundation.org> (raw)
In-Reply-To: <20200422095047.669225321@linuxfoundation.org>

From: David Hildenbrand <david@redhat.com>

[ Upstream commit 5a6b4cc5b7a1892a8d7f63d6cbac6e0ae2a9d031 ]

Commit 71994620bb25 ("virtio_balloon: replace oom notifier with shrinker")
changed the behavior when deflation happens automatically. Instead of
deflating when called by the OOM handler, the shrinker is used.

However, the balloon is not simply some slab cache that should be
shrunk when under memory pressure. The shrinker does not have a concept of
priorities, so this behavior cannot be configured.

There was a report that this results in undesired side effects when
inflating the balloon to shrink the page cache. [1]
	"When inflating the balloon against page cache (i.e. no free memory
	 remains) vmscan.c will both shrink page cache, but also invoke the
	 shrinkers -- including the balloon's shrinker. So the balloon
	 driver allocates memory which requires reclaim, vmscan gets this
	 memory by shrinking the balloon, and then the driver adds the
	 memory back to the balloon. Basically a busy no-op."

The name "deflate on OOM" makes it pretty clear when deflation should
happen - after other approaches to reclaim memory failed, not while
reclaiming. This allows to minimize the footprint of a guest - memory
will only be taken out of the balloon when really needed.

Especially, a drop_slab() will result in the whole balloon getting
deflated - undesired. While handling it via the OOM handler might not be
perfect, it keeps existing behavior. If we want a different behavior, then
we need a new feature bit and document it properly (although, there should
be a clear use case and the intended effects should be well described).

Keep using the shrinker for VIRTIO_BALLOON_F_FREE_PAGE_HINT, because
this has no such side effects. Always register the shrinker with
VIRTIO_BALLOON_F_FREE_PAGE_HINT now. We are always allowed to reuse free
pages that are still to be processed by the guest. The hypervisor takes
care of identifying and resolving possible races between processing a
hinting request and the guest reusing a page.

In contrast to pre commit 71994620bb25 ("virtio_balloon: replace oom
notifier with shrinker"), don't add a moodule parameter to configure the
number of pages to deflate on OOM. Can be re-added if really needed.
Also, pay attention that leak_balloon() returns the number of 4k pages -
convert it properly in virtio_balloon_oom_notify().

Note1: using the OOM handler is frowned upon, but it really is what we
       need for this feature.

Note2: without VIRTIO_BALLOON_F_MUST_TELL_HOST (iow, always with QEMU) we
       could actually skip sending deflation requests to our hypervisor,
       making the OOM path *very* simple. Besically freeing pages and
       updating the balloon. If the communication with the host ever
       becomes a problem on this call path.

[1] https://www.spinics.net/lists/linux-virtualization/msg40863.html

Test report by Tyler Sanderson:

Test setup: VM with 16 CPU, 64GB RAM. Running Debian 10. We have a 42
GB file full of random bytes that we continually cat to /dev/null.
This fills the page cache as the file is read. Meanwhile we trigger
the balloon to inflate, with a target size of 53 GB. This setup causes
the balloon inflation to pressure the page cache as the page cache is
also trying to grow. Afterwards we shrink the balloon back to zero (so
total deflate = total inflate).

Without patch (kernel 4.19.0-5):
Inflation never reaches the target until we stop the "cat file >
/dev/null" process. Total inflation time was 542 seconds. The longest
period that made no net forward progress was 315 seconds (see attached
graph).
Result of "grep balloon /proc/vmstat" after the test:
balloon_inflate 154828377
balloon_deflate 154828377

With patch (kernel 5.6.0-rc4+):
Total inflation duration was 63 seconds. No deflate-queue activity
occurs when pressuring the page-cache.
Result of "grep balloon /proc/vmstat" after the test:
balloon_inflate 12968539
balloon_deflate 12968539

Conclusion: This patch fixes the issue. In the test it reduced
inflate/deflate activity by 12x, and reduced inflation time by 8.6x.
But more importantly, if we hadn't killed the "grep balloon
/proc/vmstat" process then, without the patch, the inflation process
would never reach the target.

Attached [1] is a png of a graph showing the problematic behavior without
this patch. It shows deflate-queue activity increasing linearly while
balloon size stays constant over the course of more than 8 minutes of
the test.

[1] https://lore.kernel.org/linux-mm/CAJuQAmphPcfew1v_EOgAdSFiprzjiZjmOf3iJDmFX0gD6b9TYQ@mail.gmail.com/2-without_patch.png

Full test report and discussion [2]:

[2] https://lore.kernel.org/r/CAJuQAmphPcfew1v_EOgAdSFiprzjiZjmOf3iJDmFX0gD6b9TYQ@mail.gmail.com

Tested-by: Tyler Sanderson <tysand@google.com>
Reported-by: Tyler Sanderson <tysand@google.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Wei Wang <wei.w.wang@intel.com>
Cc: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Nadav Amit <namit@vmware.com>
Cc: Michal Hocko <mhocko@kernel.org>
Signed-off-by: David Hildenbrand <david@redhat.com>
Link: https://lore.kernel.org/r/20200205163402.42627-4-david@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/virtio/virtio_balloon.c | 107 +++++++++++++-------------------
 1 file changed, 44 insertions(+), 63 deletions(-)

diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
index 341458fd95ca4..44375a22307b3 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -14,6 +14,7 @@
 #include <linux/slab.h>
 #include <linux/module.h>
 #include <linux/balloon_compaction.h>
+#include <linux/oom.h>
 #include <linux/wait.h>
 #include <linux/mm.h>
 #include <linux/mount.h>
@@ -27,7 +28,9 @@
  */
 #define VIRTIO_BALLOON_PAGES_PER_PAGE (unsigned)(PAGE_SIZE >> VIRTIO_BALLOON_PFN_SHIFT)
 #define VIRTIO_BALLOON_ARRAY_PFNS_MAX 256
-#define VIRTBALLOON_OOM_NOTIFY_PRIORITY 80
+/* Maximum number of (4k) pages to deflate on OOM notifications. */
+#define VIRTIO_BALLOON_OOM_NR_PAGES 256
+#define VIRTIO_BALLOON_OOM_NOTIFY_PRIORITY 80
 
 #define VIRTIO_BALLOON_FREE_PAGE_ALLOC_FLAG (__GFP_NORETRY | __GFP_NOWARN | \
 					     __GFP_NOMEMALLOC)
@@ -112,8 +115,11 @@ struct virtio_balloon {
 	/* Memory statistics */
 	struct virtio_balloon_stat stats[VIRTIO_BALLOON_S_NR];
 
-	/* To register a shrinker to shrink memory upon memory pressure */
+	/* Shrinker to return free pages - VIRTIO_BALLOON_F_FREE_PAGE_HINT */
 	struct shrinker shrinker;
+
+	/* OOM notifier to deflate on OOM - VIRTIO_BALLOON_F_DEFLATE_ON_OOM */
+	struct notifier_block oom_nb;
 };
 
 static struct virtio_device_id id_table[] = {
@@ -788,50 +794,13 @@ static unsigned long shrink_free_pages(struct virtio_balloon *vb,
 	return blocks_freed * VIRTIO_BALLOON_HINT_BLOCK_PAGES;
 }
 
-static unsigned long leak_balloon_pages(struct virtio_balloon *vb,
-                                          unsigned long pages_to_free)
-{
-	return leak_balloon(vb, pages_to_free * VIRTIO_BALLOON_PAGES_PER_PAGE) /
-		VIRTIO_BALLOON_PAGES_PER_PAGE;
-}
-
-static unsigned long shrink_balloon_pages(struct virtio_balloon *vb,
-					  unsigned long pages_to_free)
-{
-	unsigned long pages_freed = 0;
-
-	/*
-	 * One invocation of leak_balloon can deflate at most
-	 * VIRTIO_BALLOON_ARRAY_PFNS_MAX balloon pages, so we call it
-	 * multiple times to deflate pages till reaching pages_to_free.
-	 */
-	while (vb->num_pages && pages_freed < pages_to_free)
-		pages_freed += leak_balloon_pages(vb,
-						  pages_to_free - pages_freed);
-
-	update_balloon_size(vb);
-
-	return pages_freed;
-}
-
 static unsigned long virtio_balloon_shrinker_scan(struct shrinker *shrinker,
 						  struct shrink_control *sc)
 {
-	unsigned long pages_to_free, pages_freed = 0;
 	struct virtio_balloon *vb = container_of(shrinker,
 					struct virtio_balloon, shrinker);
 
-	pages_to_free = sc->nr_to_scan;
-
-	if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_FREE_PAGE_HINT))
-		pages_freed = shrink_free_pages(vb, pages_to_free);
-
-	if (pages_freed >= pages_to_free)
-		return pages_freed;
-
-	pages_freed += shrink_balloon_pages(vb, pages_to_free - pages_freed);
-
-	return pages_freed;
+	return shrink_free_pages(vb, sc->nr_to_scan);
 }
 
 static unsigned long virtio_balloon_shrinker_count(struct shrinker *shrinker,
@@ -839,26 +808,22 @@ static unsigned long virtio_balloon_shrinker_count(struct shrinker *shrinker,
 {
 	struct virtio_balloon *vb = container_of(shrinker,
 					struct virtio_balloon, shrinker);
-	unsigned long count;
-
-	count = vb->num_pages / VIRTIO_BALLOON_PAGES_PER_PAGE;
-	count += vb->num_free_page_blocks * VIRTIO_BALLOON_HINT_BLOCK_PAGES;
 
-	return count;
+	return vb->num_free_page_blocks * VIRTIO_BALLOON_HINT_BLOCK_PAGES;
 }
 
-static void virtio_balloon_unregister_shrinker(struct virtio_balloon *vb)
+static int virtio_balloon_oom_notify(struct notifier_block *nb,
+				     unsigned long dummy, void *parm)
 {
-	unregister_shrinker(&vb->shrinker);
-}
+	struct virtio_balloon *vb = container_of(nb,
+						 struct virtio_balloon, oom_nb);
+	unsigned long *freed = parm;
 
-static int virtio_balloon_register_shrinker(struct virtio_balloon *vb)
-{
-	vb->shrinker.scan_objects = virtio_balloon_shrinker_scan;
-	vb->shrinker.count_objects = virtio_balloon_shrinker_count;
-	vb->shrinker.seeks = DEFAULT_SEEKS;
+	*freed += leak_balloon(vb, VIRTIO_BALLOON_OOM_NR_PAGES) /
+		  VIRTIO_BALLOON_PAGES_PER_PAGE;
+	update_balloon_size(vb);
 
-	return register_shrinker(&vb->shrinker);
+	return NOTIFY_OK;
 }
 
 static int virtballoon_probe(struct virtio_device *vdev)
@@ -935,22 +900,35 @@ static int virtballoon_probe(struct virtio_device *vdev)
 			virtio_cwrite(vb->vdev, struct virtio_balloon_config,
 				      poison_val, &poison_val);
 		}
-	}
-	/*
-	 * We continue to use VIRTIO_BALLOON_F_DEFLATE_ON_OOM to decide if a
-	 * shrinker needs to be registered to relieve memory pressure.
-	 */
-	if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_DEFLATE_ON_OOM)) {
-		err = virtio_balloon_register_shrinker(vb);
+
+		/*
+		 * We're allowed to reuse any free pages, even if they are
+		 * still to be processed by the host.
+		 */
+		vb->shrinker.scan_objects = virtio_balloon_shrinker_scan;
+		vb->shrinker.count_objects = virtio_balloon_shrinker_count;
+		vb->shrinker.seeks = DEFAULT_SEEKS;
+		err = register_shrinker(&vb->shrinker);
 		if (err)
 			goto out_del_balloon_wq;
 	}
+	if (virtio_has_feature(vdev, VIRTIO_BALLOON_F_DEFLATE_ON_OOM)) {
+		vb->oom_nb.notifier_call = virtio_balloon_oom_notify;
+		vb->oom_nb.priority = VIRTIO_BALLOON_OOM_NOTIFY_PRIORITY;
+		err = register_oom_notifier(&vb->oom_nb);
+		if (err < 0)
+			goto out_unregister_shrinker;
+	}
+
 	virtio_device_ready(vdev);
 
 	if (towards_target(vb))
 		virtballoon_changed(vdev);
 	return 0;
 
+out_unregister_shrinker:
+	if (virtio_has_feature(vdev, VIRTIO_BALLOON_F_FREE_PAGE_HINT))
+		unregister_shrinker(&vb->shrinker);
 out_del_balloon_wq:
 	if (virtio_has_feature(vdev, VIRTIO_BALLOON_F_FREE_PAGE_HINT))
 		destroy_workqueue(vb->balloon_wq);
@@ -989,8 +967,11 @@ static void virtballoon_remove(struct virtio_device *vdev)
 {
 	struct virtio_balloon *vb = vdev->priv;
 
-	if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_DEFLATE_ON_OOM))
-		virtio_balloon_unregister_shrinker(vb);
+	if (virtio_has_feature(vdev, VIRTIO_BALLOON_F_DEFLATE_ON_OOM))
+		unregister_oom_notifier(&vb->oom_nb);
+	if (virtio_has_feature(vdev, VIRTIO_BALLOON_F_FREE_PAGE_HINT))
+		unregister_shrinker(&vb->shrinker);
+
 	spin_lock_irq(&vb->stop_update_lock);
 	vb->stop_update = true;
 	spin_unlock_irq(&vb->stop_update_lock);
-- 
2.20.1




  parent reply	other threads:[~2020-04-22 10:31 UTC|newest]

Thread overview: 183+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-22  9:55 [PATCH 5.6 000/166] 5.6.7-rc1 review Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 001/166] netfilter: nft_set_rbtree: Drop spurious condition for overlap detection on insertion Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 002/166] arm, bpf: Fix offset overflow for BPF_MEM BPF_DW Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 003/166] objtool: Fix switch table detection in .text.unlikely Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 004/166] scsi: sg: add sg_remove_request in sg_common_write Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 005/166] ALSA: hda: Honor PM disablement in PM freeze and thaw_noirq ops Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 006/166] ext4: use non-movable memory for superblock readahead Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 007/166] watchdog: sp805: fix restart handler Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 008/166] xsk: Fix out of boundary write in __xsk_rcv_memcpy Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 009/166] libbpf: Fix bpf_get_link_xdp_id flags handling Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 010/166] arm, bpf: Fix bugs with ALU64 {RSH, ARSH} BPF_K shift by 0 Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 011/166] bpf: Prevent re-mmap()ing BPF map as writable for initially r/o mapping Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 012/166] ARM: dts: imx6: Use gpc for FEC interrupt controller to fix wake on LAN Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 013/166] kbuild, btf: Fix dependencies for DEBUG_INFO_BTF Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 014/166] netfilter: nf_tables: report EOPNOTSUPP on unsupported flags/object type Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 015/166] irqchip/mbigen: Free msi_desc on device teardown Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 016/166] rbd: avoid a deadlock on header_rwsem when flushing notifies Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 017/166] rbd: call rbd_dev_unprobe() after unwatching and " Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 018/166] rbd: dont test rbd_dev->opts in rbd_dev_image_release() Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 019/166] ALSA: hda: Dont release card at firmware loading error Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 020/166] xsk: Add missing check on user supplied headroom size Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 021/166] of: unittest: kmemleak on changeset destroy Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 022/166] of: unittest: kmemleak in of_unittest_platform_populate() Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 023/166] of: unittest: kmemleak in of_unittest_overlay_high_level() Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 024/166] of: overlay: kmemleak in dup_and_fixup_symbol_prop() Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 025/166] x86/Hyper-V: Unload vmbus channel in hv panic callback Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 026/166] x86/Hyper-V: Free hv_panic_page when fail to register kmsg dump Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 027/166] x86/Hyper-V: Trigger crash enlightenment only once during system crash Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 028/166] x86/Hyper-V: Report crash register data or kmsg before running crash kernel Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 029/166] x86/Hyper-V: Report crash register data when sysctl_record_panic_msg is not set Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 030/166] x86/Hyper-V: Report crash data in die() when panic_on_oops is set Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 031/166] afs: Fix missing XDR advance in xdr_decode_{AFS,YFS}FSFetchStatus() Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 032/166] afs: Fix decoding of inline abort codes from version 1 status records Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 033/166] afs: Fix rename operation status delivery Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 034/166] afs: Fix afs_d_validate() to set the right directory version Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 035/166] afs: Fix race between post-modification dir edit and readdir/d_revalidate Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 036/166] block, bfq: turn put_queue into release_process_ref in __bfq_bic_change_cgroup Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 037/166] block, bfq: make reparent_leaf_entity actually work only on leaf entities Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 038/166] block, bfq: invoke flush_idle_tree after reparent_active_queues in pd_offline Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 039/166] drm/ttm: flush the fence on the bo after we individualize the reservation object Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 040/166] gfs2: clear ail1 list when gfs2 withdraws Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 041/166] clk: Dont cache errors from clk_ops::get_phase() Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 042/166] clk: at91: usb: continue if clk_hw_round_rate() return zero Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 043/166] clk: imx: pll14xx: Add new frequency entries for pll1443x table Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 044/166] crypto: qce - use cryptlen when adding extra sgl Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 045/166] net/mlx5e: Enforce setting of a single FEC mode Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 046/166] s390/crypto: explicitly memzero stack key material in aes_s390.c Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 047/166] f2fs: fix to avoid potential deadlock Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 048/166] f2fs: fix the panic in do_checkpoint() Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 049/166] bpf: Reliably preserve btf_trace_xxx types Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 050/166] xfs: fix iclog release error check race with shutdown Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 051/166] f2fs: fix wrong check on F2FS_IOC_FSSETXATTR Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 052/166] f2fs: fix to avoid use-after-free in f2fs_write_multi_pages() Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 053/166] ARM: dts: rockchip: fix vqmmc-supply property name for rk3188-bqedison2qc Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 054/166] dmaengine: idxd: reflect shadow copy of traffic class programming Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 055/166] memory: tegra: Correct debugfs clk rate-range on Tegra20 Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 056/166] memory: tegra: Correct debugfs clk rate-range on Tegra30 Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 057/166] memory: tegra: Correct debugfs clk rate-range on Tegra124 Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 058/166] arm64: dts: allwinner: a64: Fix display clock register range Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 059/166] power: supply: bq27xxx_battery: Silence deferred-probe error Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 060/166] clk: tegra: Fix Tegra PMC clock out parents Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 061/166] arm64: tegra: Add PCIe endpoint controllers nodes for Tegra194 Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 062/166] arm64: tegra: Fix Tegra194 PCIe compatible string Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 063/166] xfs: fix use-after-free when aborting corrupt attr inactivation Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 064/166] xfs: fix regression in "cleanup xfs_dir2_block_getdents" Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 065/166] arm64: dts: marvell: espressobin: add ethernet alias Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 066/166] arm64: dts: clearfog-gt-8k: set gigabit PHY reset deassert delay Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 067/166] arm64: dts: marvell: Fix cpu compatible for AP807-quad Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 068/166] soc: imx: gpc: fix power up sequencing Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 069/166] dma-coherent: fix integer overflow in the reserved-memory dma allocation Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 070/166] rtc: 88pm860x: fix possible race condition Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 071/166] NFS: alloc_nfs_open_context() must use the file cred when available Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 072/166] NFSv4/pnfs: Return valid stateids in nfs_layout_find_inode_by_stateid() Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 073/166] NFSv4.2: error out when relink swapfile Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 074/166] ARM: dts: rockchip: fix lvds-encoder ports subnode for rk3188-bqedison2qc Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 075/166] xfs: fix incorrect test in xfs_alloc_ag_vextent_lastblock Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 076/166] KVM: PPC: Book3S HV: Fix H_CEDE return code for nested guests Greg Kroah-Hartman
2020-04-22  9:56   ` Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 077/166] f2fs: fix to show norecovery mount option Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 078/166] drivers: thermal: tsens: Release device in success path Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 079/166] phy: uniphier-usb3ss: Add Pro5 support Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 080/166] NFS: direct.c: Fix memory leak of dreq when nfs_get_lock_context fails Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 081/166] f2fs: fix to update f2fs_super_block fields under sb_lock Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 082/166] f2fs: Fix mount failure due to SPO after a successful online resize FS Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 083/166] f2fs: Add a new CP flag to help fsck fix resize SPO issues Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 084/166] s390/cpuinfo: fix wrong output when CPU0 is offline Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 085/166] MIPS: DTS: CI20: add DT node for IR sensor Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 086/166] thermal/drivers/cpufreq_cooling: Fix return of cpufreq_set_cur_state Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 087/166] hibernate: Allow uswsusp to write to swap Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 088/166] btrfs: add RCU locks around block group initialization Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 089/166] powerpc/prom_init: Pass the "os-term" message to hypervisor Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 090/166] powerpc/maple: Fix declaration made after definition Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 091/166] s390/cpum_sf: Fix wrong page count in error message Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 092/166] nfsroot: set tcp as the default transport protocol Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 093/166] ext4: do not commit super on read-only bdev Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 094/166] um: ubd: Prevent buffer overrun on command completion Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 095/166] cifs: Allocate encryption header through kmalloc Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 096/166] x86/xen: Make the boot CPU idle task reliable Greg Kroah-Hartman
2020-04-22 10:45   ` Jürgen Groß
2020-04-22 11:05     ` Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 097/166] drm/amd/display: Dont try hdcp1.4 when content_type is set to type1 Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 098/166] dt-bindings: thermal: tsens: Fix nvmem-cell-names schema Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 099/166] platform/x86: intel-hid: fix: Update Tiger Lake ACPI device ID Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 100/166] mm/hugetlb: fix build failure with HUGETLB_PAGE but not HUGEBTLBFS Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 101/166] macsec: fix NULL dereference in macsec_upd_offload() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 102/166] drm/nouveau/svm: check for SVM initialized before migrating Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 103/166] drm/nouveau/svm: fix vma range check for migration Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 104/166] include/linux/swapops.h: correct guards for non_swap_entry() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 105/166] percpu_counter: fix a data race at vm_committed_as Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 106/166] compiler.h: fix error in BUILD_BUG_ON() reporting Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 107/166] KVM: s390: vsie: Fix possible race when shadowing region 3 tables Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 108/166] drm/nouveau: workaround runpm fail by disabling PCI power management on certain intel bridges Greg Kroah-Hartman
2020-04-22  9:57   ` Greg Kroah-Hartman
2020-04-22  9:57   ` Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 109/166] leds: core: Fix warning message when init_data Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 110/166] x86: ACPI: fix CPU hotplug deadlock Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 111/166] csky: Fixup cpu speculative execution to IO area Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 112/166] drm/amdkfd: kfree the wrong pointer Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 113/166] NFS: Fix memory leaks in nfs_pageio_stop_mirroring() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 114/166] ACPI: Update Tiger Lake ACPI device IDs Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 115/166] csky: Fixup get wrong psr value from phyical reg Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 116/166] f2fs: compress: fix to call missing destroy_compress_ctx() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 117/166] f2fs: fix potential .flags overflow on 32bit architecture Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 118/166] f2fs: fix NULL pointer dereference in f2fs_verity_work() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 119/166] f2fs: fix NULL pointer dereference in f2fs_write_begin() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 120/166] f2fs: fix potential deadlock on compressed quota file Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 121/166] ACPICA: Fixes for acpiExec namespace init file Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 122/166] ceph: re-org copy_file_range and fix some error paths Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 123/166] mfd: cros_ec: Check DT node for usbpd-notify add Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 124/166] um: falloc.h needs to be directly included for older libc Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 125/166] drm/vc4: Fix HDMI mode validation Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 126/166] iommu/virtio: Fix freeing of incomplete domains Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 127/166] iommu/vt-d: Add build dependency on IOASID Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 128/166] iommu/vt-d: Fix mm reference leak Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 129/166] SUNRPC: fix krb5p mount to provide large enough buffer in rq_rcvsize Greg Kroah-Hartman
2020-04-22  9:57 ` Greg Kroah-Hartman [this message]
2020-04-22  9:57 ` [PATCH 5.6 131/166] ext2: fix empty body warnings when -Wextra is used Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 132/166] f2fs: fix to account compressed blocks in f2fs_compressed_blocks() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 133/166] f2fs: skip GC when section is full Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 134/166] iommu/vt-d: Silence RCU-list debugging warning in dmar_find_atsr() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 135/166] iommu/vt-d: Fix page request descriptor size Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 136/166] ext2: fix debug reference to ext2_xattr_cache Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 137/166] sunrpc: Fix gss_unwrap_resp_integ() again Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 138/166] thermal: qoriq: Fix a compiling issue Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 139/166] csky: Fixup init_fpu compile warning with __init Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 140/166] power: supply: axp288_fuel_gauge: Broaden vendor check for Intel Compute Sticks Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 141/166] libnvdimm: Out of bounds read in __nd_ioctl() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 142/166] iommu/amd: Fix the configuration of GCR3 table root pointer Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 143/166] f2fs: fix leaking uninitialized memory in compressed clusters Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 144/166] f2fs: fix to wait all node page writeback Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 145/166] platform/chrome: cros_ec: Query EC protocol version if EC transitions between RO/RW Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 146/166] drm/nouveau/gr/gp107,gp108: implement workaround for HW hanging during init Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 147/166] net: dsa: bcm_sf2: Fix overflow checks Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 148/166] cifs: ignore cached share root handle closing errors Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 149/166] dma-debug: fix displaying of dma allocation type Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 150/166] fbdev: potential information leak in do_fb_ioctl() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 151/166] ARM: dts: sunxi: Fix DE2 clocks register range Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 152/166] iio: si1133: read 24-bit signed integer for measurement Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 153/166] fbmem: Adjust indentation in fb_prepare_logo and fb_blank Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 154/166] tty: evh_bytechan: Fix out of bounds accesses Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 155/166] iio: st_sensors: handle memory allocation failure to fix null pointer dereference Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 156/166] locktorture: Print ratio of acquisitions, not failures Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 157/166] mtd: rawnand: free the nand_device object Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 158/166] mtd: spinand: Explicitly use MTD_OPS_RAW to write the bad block marker to OOB Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 159/166] docs: Fix path to MTD command line partition parser Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 160/166] mtd: lpddr: Fix a double free in probe() Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 161/166] mtd: phram: fix a double free issue in error path Greg Kroah-Hartman
2020-04-22  9:58   ` Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 162/166] KEYS: Dont write out to userspace while holding key semaphore Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 163/166] bpf: fix buggy r0 retval refinement for tracing helpers Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 164/166] bpf: Test_verifier, bpf_get_stack return value add <0 Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 165/166] bpf: Test_progs, add test to catch retval refine error handling Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 166/166] bpf, test_verifier: switch bpf_get_stacks 0 s> r8 test Greg Kroah-Hartman
2020-04-22 20:36 ` [PATCH 5.6 000/166] 5.6.7-rc1 review Guenter Roeck
2020-04-24  9:12   ` Greg Kroah-Hartman
2020-04-23  7:46 ` Naresh Kamboju
2020-04-24  9:12   ` Greg Kroah-Hartman
2020-04-23 10:23 ` Jon Hunter
2020-04-23 10:23   ` Jon Hunter
     [not found]   ` <c2447ca7-0a90-fa71-5611-8d3d7349eb2b-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2020-04-23 10:37     ` Greg Kroah-Hartman
2020-04-23 10:37       ` Greg Kroah-Hartman
2020-04-24 16:24 ` shuah
2020-04-25  8:58   ` Greg Kroah-Hartman

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=20200422095102.393216309@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=alexander.h.duyck@linux.intel.com \
    --cc=david@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mhocko@kernel.org \
    --cc=mst@redhat.com \
    --cc=namit@vmware.com \
    --cc=rientjes@google.com \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tysand@google.com \
    --cc=wei.w.wang@intel.com \
    /path/to/YOUR_REPLY

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

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is 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.