From df155d1a9dea67e5476df2efe2870e544762d534 Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Thu, 7 Oct 2021 18:11:51 -0400 Subject: [PATCH] kvm-do-not-shrink-halt_poll_ns-below-grow_start.patch Signed-off-by: Sasha Levin --- ...shrink-halt_poll_ns-below-grow_start.patch | 72 ------------------- queue-4.14/series | 1 - ...shrink-halt_poll_ns-below-grow_start.patch | 72 ------------------- queue-4.19/series | 1 - ...shrink-halt_poll_ns-below-grow_start.patch | 72 ------------------- queue-4.9/series | 1 - 6 files changed, 219 deletions(-) delete mode 100644 queue-4.14/kvm-do-not-shrink-halt_poll_ns-below-grow_start.patch delete mode 100644 queue-4.19/kvm-do-not-shrink-halt_poll_ns-below-grow_start.patch delete mode 100644 queue-4.9/kvm-do-not-shrink-halt_poll_ns-below-grow_start.patch diff --git a/queue-4.14/kvm-do-not-shrink-halt_poll_ns-below-grow_start.patch b/queue-4.14/kvm-do-not-shrink-halt_poll_ns-below-grow_start.patch deleted file mode 100644 index e2e7fdde2dc..00000000000 --- a/queue-4.14/kvm-do-not-shrink-halt_poll_ns-below-grow_start.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 333999e133ff95d33f2da16b163e34e19c4fbb33 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 2 Sep 2021 12:11:00 +0900 -Subject: KVM: do not shrink halt_poll_ns below grow_start - -From: Sergey Senozhatsky - -[ 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 -Signed-off-by: Paolo Bonzini -Message-Id: <20210902031100.252080-1-senozhatsky@chromium.org> -Signed-off-by: Paolo Bonzini -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-4.14/series b/queue-4.14/series index b74d6e46ddb..592b8d1d089 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -6,4 +6,3 @@ scsi-sd-free-scsi_disk-device-via-put_device.patch 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 diff --git a/queue-4.19/kvm-do-not-shrink-halt_poll_ns-below-grow_start.patch b/queue-4.19/kvm-do-not-shrink-halt_poll_ns-below-grow_start.patch deleted file mode 100644 index b19fb8ae204..00000000000 --- a/queue-4.19/kvm-do-not-shrink-halt_poll_ns-below-grow_start.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 38e01299466ec345dc6cdc2231134971aefa41c6 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 2 Sep 2021 12:11:00 +0900 -Subject: KVM: do not shrink halt_poll_ns below grow_start - -From: Sergey Senozhatsky - -[ 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 -Signed-off-by: Paolo Bonzini -Message-Id: <20210902031100.252080-1-senozhatsky@chromium.org> -Signed-off-by: Paolo Bonzini -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-4.19/series b/queue-4.19/series index c0dd397a210..07fdc52b776 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -8,4 +8,3 @@ usb-dwc2-check-return-value-after-calling-platform_g.patch 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 diff --git a/queue-4.9/kvm-do-not-shrink-halt_poll_ns-below-grow_start.patch b/queue-4.9/kvm-do-not-shrink-halt_poll_ns-below-grow_start.patch deleted file mode 100644 index cca520ca9ca..00000000000 --- a/queue-4.9/kvm-do-not-shrink-halt_poll_ns-below-grow_start.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 1c63856b9e5070c3920816e55a9a3fe2140d9075 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 2 Sep 2021 12:11:00 +0900 -Subject: KVM: do not shrink halt_poll_ns below grow_start - -From: Sergey Senozhatsky - -[ 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 -Signed-off-by: Paolo Bonzini -Message-Id: <20210902031100.252080-1-senozhatsky@chromium.org> -Signed-off-by: Paolo Bonzini -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-4.9/series b/queue-4.9/series index e945995f4d2..f445d34b37c 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -5,4 +5,3 @@ sparc64-fix-pci_iounmap-when-config_pci-is-not-set.patch 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 -- 2.47.3