+++ /dev/null
-From 333999e133ff95d33f2da16b163e34e19c4fbb33 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 2 Sep 2021 12:11:00 +0900
-Subject: KVM: do not shrink halt_poll_ns below grow_start
-
-From: Sergey Senozhatsky <senozhatsky@chromium.org>
-
-[ Upstream commit ae232ea460888dc5a8b37e840c553b02521fbf18 ]
-
-grow_halt_poll_ns() ignores values between 0 and
-halt_poll_ns_grow_start (10000 by default). However,
-when we shrink halt_poll_ns we may fall way below
-halt_poll_ns_grow_start and endup with halt_poll_ns
-values that don't make a lot of sense: like 1 or 9,
-or 19.
-
-VCPU1 trace (halt_poll_ns_shrink equals 2):
-
-VCPU1 grow 10000
-VCPU1 shrink 5000
-VCPU1 shrink 2500
-VCPU1 shrink 1250
-VCPU1 shrink 625
-VCPU1 shrink 312
-VCPU1 shrink 156
-VCPU1 shrink 78
-VCPU1 shrink 39
-VCPU1 shrink 19
-VCPU1 shrink 9
-VCPU1 shrink 4
-
-Mirror what grow_halt_poll_ns() does and set halt_poll_ns
-to 0 as soon as new shrink-ed halt_poll_ns value falls
-below halt_poll_ns_grow_start.
-
-Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org>
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-Message-Id: <20210902031100.252080-1-senozhatsky@chromium.org>
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- virt/kvm/kvm_main.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
-index 36b9f2b29071..2f7a37e38c6d 100644
---- a/virt/kvm/kvm_main.c
-+++ b/virt/kvm/kvm_main.c
-@@ -2197,15 +2197,19 @@ static void grow_halt_poll_ns(struct kvm_vcpu *vcpu)
-
- static void shrink_halt_poll_ns(struct kvm_vcpu *vcpu)
- {
-- unsigned int old, val, shrink;
-+ unsigned int old, val, shrink, grow_start;
-
- old = val = vcpu->halt_poll_ns;
- shrink = READ_ONCE(halt_poll_ns_shrink);
-+ grow_start = READ_ONCE(halt_poll_ns_grow_start);
- if (shrink == 0)
- val = 0;
- else
- val /= shrink;
-
-+ if (val < grow_start)
-+ val = 0;
-+
- vcpu->halt_poll_ns = val;
- trace_kvm_halt_poll_ns_shrink(vcpu->vcpu_id, val, old);
- }
---
-2.33.0
-
usb-testusb-fix-for-showing-the-connection-speed.patch
usb-dwc2-check-return-value-after-calling-platform_g.patch
scsi-ses-retry-failed-send-receive-diagnostic-comman.patch
-kvm-do-not-shrink-halt_poll_ns-below-grow_start.patch
+++ /dev/null
-From 38e01299466ec345dc6cdc2231134971aefa41c6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 2 Sep 2021 12:11:00 +0900
-Subject: KVM: do not shrink halt_poll_ns below grow_start
-
-From: Sergey Senozhatsky <senozhatsky@chromium.org>
-
-[ Upstream commit ae232ea460888dc5a8b37e840c553b02521fbf18 ]
-
-grow_halt_poll_ns() ignores values between 0 and
-halt_poll_ns_grow_start (10000 by default). However,
-when we shrink halt_poll_ns we may fall way below
-halt_poll_ns_grow_start and endup with halt_poll_ns
-values that don't make a lot of sense: like 1 or 9,
-or 19.
-
-VCPU1 trace (halt_poll_ns_shrink equals 2):
-
-VCPU1 grow 10000
-VCPU1 shrink 5000
-VCPU1 shrink 2500
-VCPU1 shrink 1250
-VCPU1 shrink 625
-VCPU1 shrink 312
-VCPU1 shrink 156
-VCPU1 shrink 78
-VCPU1 shrink 39
-VCPU1 shrink 19
-VCPU1 shrink 9
-VCPU1 shrink 4
-
-Mirror what grow_halt_poll_ns() does and set halt_poll_ns
-to 0 as soon as new shrink-ed halt_poll_ns value falls
-below halt_poll_ns_grow_start.
-
-Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org>
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-Message-Id: <20210902031100.252080-1-senozhatsky@chromium.org>
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- virt/kvm/kvm_main.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
-index 86ef740763b5..edc3b02ee512 100644
---- a/virt/kvm/kvm_main.c
-+++ b/virt/kvm/kvm_main.c
-@@ -2349,15 +2349,19 @@ static void grow_halt_poll_ns(struct kvm_vcpu *vcpu)
-
- static void shrink_halt_poll_ns(struct kvm_vcpu *vcpu)
- {
-- unsigned int old, val, shrink;
-+ unsigned int old, val, shrink, grow_start;
-
- old = val = vcpu->halt_poll_ns;
- shrink = READ_ONCE(halt_poll_ns_shrink);
-+ grow_start = READ_ONCE(halt_poll_ns_grow_start);
- if (shrink == 0)
- val = 0;
- else
- val /= shrink;
-
-+ if (val < grow_start)
-+ val = 0;
-+
- vcpu->halt_poll_ns = val;
- trace_kvm_halt_poll_ns_shrink(vcpu->vcpu_id, val, old);
- }
---
-2.33.0
-
selftests-be-sure-to-make-khdr-before-other-targets.patch
scsi-ses-retry-failed-send-receive-diagnostic-comman.patch
tools-vm-page-types-remove-dependency-on-opt_file-fo.patch
-kvm-do-not-shrink-halt_poll_ns-below-grow_start.patch
+++ /dev/null
-From 1c63856b9e5070c3920816e55a9a3fe2140d9075 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 2 Sep 2021 12:11:00 +0900
-Subject: KVM: do not shrink halt_poll_ns below grow_start
-
-From: Sergey Senozhatsky <senozhatsky@chromium.org>
-
-[ Upstream commit ae232ea460888dc5a8b37e840c553b02521fbf18 ]
-
-grow_halt_poll_ns() ignores values between 0 and
-halt_poll_ns_grow_start (10000 by default). However,
-when we shrink halt_poll_ns we may fall way below
-halt_poll_ns_grow_start and endup with halt_poll_ns
-values that don't make a lot of sense: like 1 or 9,
-or 19.
-
-VCPU1 trace (halt_poll_ns_shrink equals 2):
-
-VCPU1 grow 10000
-VCPU1 shrink 5000
-VCPU1 shrink 2500
-VCPU1 shrink 1250
-VCPU1 shrink 625
-VCPU1 shrink 312
-VCPU1 shrink 156
-VCPU1 shrink 78
-VCPU1 shrink 39
-VCPU1 shrink 19
-VCPU1 shrink 9
-VCPU1 shrink 4
-
-Mirror what grow_halt_poll_ns() does and set halt_poll_ns
-to 0 as soon as new shrink-ed halt_poll_ns value falls
-below halt_poll_ns_grow_start.
-
-Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org>
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-Message-Id: <20210902031100.252080-1-senozhatsky@chromium.org>
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- virt/kvm/kvm_main.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
-index db859b595dba..538b0a369eae 100644
---- a/virt/kvm/kvm_main.c
-+++ b/virt/kvm/kvm_main.c
-@@ -2161,15 +2161,19 @@ static void grow_halt_poll_ns(struct kvm_vcpu *vcpu)
-
- static void shrink_halt_poll_ns(struct kvm_vcpu *vcpu)
- {
-- unsigned int old, val, shrink;
-+ unsigned int old, val, shrink, grow_start;
-
- old = val = vcpu->halt_poll_ns;
- shrink = READ_ONCE(halt_poll_ns_shrink);
-+ grow_start = READ_ONCE(halt_poll_ns_grow_start);
- if (shrink == 0)
- val = 0;
- else
- val /= shrink;
-
-+ if (val < grow_start)
-+ val = 0;
-+
- vcpu->halt_poll_ns = val;
- trace_kvm_halt_poll_ns_shrink(vcpu->vcpu_id, val, old);
- }
---
-2.33.0
-
ext2-fix-sleeping-in-atomic-bugs-on-error.patch
scsi-sd-free-scsi_disk-device-via-put_device.patch
usb-testusb-fix-for-showing-the-connection-speed.patch
-kvm-do-not-shrink-halt_poll_ns-below-grow_start.patch