From 7c0483e8cdebf5591487bda2192a728dec6d1e92 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Tue, 7 Feb 2023 14:05:01 +0100 Subject: [PATCH] update to Proxmox-6.1.10-1 Signed-off-by: Thomas Lamprecht --- ...-smm-use-smram-structs-in-the-common.patch | 6 +- ...ortify-Do-not-cast-to-unsigned-char.patch} | 0 ...upport-of-hw-gro-packets-to-gro-stac.patch | 122 ------------------ ...evert-mm-compatction-fix-set-skip-in.patch | 58 --------- submodules/ubuntu-kernel | 2 +- 5 files changed, 4 insertions(+), 184 deletions(-) rename patches/kernel/{0017-Revert-fortify-Do-not-cast-to-unsigned-char.patch => 0016-Revert-fortify-Do-not-cast-to-unsigned-char.patch} (100%) delete mode 100644 patches/kernel/0016-Revert-gro-add-support-of-hw-gro-packets-to-gro-stac.patch delete mode 100644 patches/kernel/0019-revert-mm-compatction-fix-set-skip-in.patch diff --git a/patches/kernel/0009-KVM-x86-emulator-smm-use-smram-structs-in-the-common.patch b/patches/kernel/0009-KVM-x86-emulator-smm-use-smram-structs-in-the-common.patch index cabb73e..768690f 100644 --- a/patches/kernel/0009-KVM-x86-emulator-smm-use-smram-structs-in-the-common.patch +++ b/patches/kernel/0009-KVM-x86-emulator-smm-use-smram-structs-in-the-common.patch @@ -147,10 +147,10 @@ index ce362e88a567..45c4def86cd3 100644 return 0; diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c -index 63247c57c72c..4319f65181f7 100644 +index 4ae248e87f5e..a850ea04514e 100644 --- a/arch/x86/kvm/vmx/vmx.c +++ b/arch/x86/kvm/vmx/vmx.c -@@ -7914,7 +7914,7 @@ static int vmx_smi_allowed(struct kvm_vcpu *vcpu, bool for_injection) +@@ -7911,7 +7911,7 @@ static int vmx_smi_allowed(struct kvm_vcpu *vcpu, bool for_injection) return !is_smm(vcpu); } @@ -159,7 +159,7 @@ index 63247c57c72c..4319f65181f7 100644 { struct vcpu_vmx *vmx = to_vmx(vcpu); -@@ -7935,7 +7935,7 @@ static int vmx_enter_smm(struct kvm_vcpu *vcpu, char *smstate) +@@ -7932,7 +7932,7 @@ static int vmx_enter_smm(struct kvm_vcpu *vcpu, char *smstate) return 0; } diff --git a/patches/kernel/0017-Revert-fortify-Do-not-cast-to-unsigned-char.patch b/patches/kernel/0016-Revert-fortify-Do-not-cast-to-unsigned-char.patch similarity index 100% rename from patches/kernel/0017-Revert-fortify-Do-not-cast-to-unsigned-char.patch rename to patches/kernel/0016-Revert-fortify-Do-not-cast-to-unsigned-char.patch diff --git a/patches/kernel/0016-Revert-gro-add-support-of-hw-gro-packets-to-gro-stac.patch b/patches/kernel/0016-Revert-gro-add-support-of-hw-gro-packets-to-gro-stac.patch deleted file mode 100644 index a18708e..0000000 --- a/patches/kernel/0016-Revert-gro-add-support-of-hw-gro-packets-to-gro-stac.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Thomas Lamprecht -Date: Sat, 7 Jan 2023 13:50:22 +0100 -Subject: [PATCH] Revert "gro: add support of (hw)gro packets to gro stack" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Seems to be the cause of a regression in network performance: -https://lore.kernel.org/netdev/CAK8fFZ5pzMaw3U1KXgC_OK4shKGsN=HDcR62cfPOuL0umXE1Ww@mail.gmail.com/ - -This reverts commit 5eddb24901ee49eee23c0bfce6af2e83fd5679bd. - -Signed-off-by: Thomas Lamprecht -Signed-off-by: Fabian Grünbichler ---- - net/core/gro.c | 18 ++++-------------- - net/ipv4/tcp_offload.c | 17 ++--------------- - 2 files changed, 6 insertions(+), 29 deletions(-) - -diff --git a/net/core/gro.c b/net/core/gro.c -index bc9451743307..b4190eb08467 100644 ---- a/net/core/gro.c -+++ b/net/core/gro.c -@@ -160,7 +160,6 @@ int skb_gro_receive(struct sk_buff *p, struct sk_buff *skb) - unsigned int gro_max_size; - unsigned int new_truesize; - struct sk_buff *lp; -- int segs; - - /* pairs with WRITE_ONCE() in netif_set_gro_max_size() */ - gro_max_size = READ_ONCE(p->dev->gro_max_size); -@@ -176,7 +175,6 @@ int skb_gro_receive(struct sk_buff *p, struct sk_buff *skb) - return -E2BIG; - } - -- segs = NAPI_GRO_CB(skb)->count; - lp = NAPI_GRO_CB(p)->last; - pinfo = skb_shinfo(lp); - -@@ -267,7 +265,7 @@ int skb_gro_receive(struct sk_buff *p, struct sk_buff *skb) - lp = p; - - done: -- NAPI_GRO_CB(p)->count += segs; -+ NAPI_GRO_CB(p)->count++; - p->data_len += len; - p->truesize += delta_truesize; - p->len += len; -@@ -498,15 +496,8 @@ static enum gro_result dev_gro_receive(struct napi_struct *napi, struct sk_buff - BUILD_BUG_ON(!IS_ALIGNED(offsetof(struct napi_gro_cb, zeroed), - sizeof(u32))); /* Avoid slow unaligned acc */ - *(u32 *)&NAPI_GRO_CB(skb)->zeroed = 0; -- NAPI_GRO_CB(skb)->flush = skb_has_frag_list(skb); -+ NAPI_GRO_CB(skb)->flush = skb_is_gso(skb) || skb_has_frag_list(skb); - NAPI_GRO_CB(skb)->is_atomic = 1; -- NAPI_GRO_CB(skb)->count = 1; -- if (unlikely(skb_is_gso(skb))) { -- NAPI_GRO_CB(skb)->count = skb_shinfo(skb)->gso_segs; -- /* Only support TCP at the moment. */ -- if (!skb_is_gso_tcp(skb)) -- NAPI_GRO_CB(skb)->flush = 1; -- } - - /* Setup for GRO checksum validation */ - switch (skb->ip_summed) { -@@ -554,10 +545,10 @@ static enum gro_result dev_gro_receive(struct napi_struct *napi, struct sk_buff - else - gro_list->count++; - -+ NAPI_GRO_CB(skb)->count = 1; - NAPI_GRO_CB(skb)->age = jiffies; - NAPI_GRO_CB(skb)->last = skb; -- if (!skb_is_gso(skb)) -- skb_shinfo(skb)->gso_size = skb_gro_len(skb); -+ skb_shinfo(skb)->gso_size = skb_gro_len(skb); - list_add(&skb->list, &gro_list->list); - ret = GRO_HELD; - -@@ -669,7 +660,6 @@ static void napi_reuse_skb(struct napi_struct *napi, struct sk_buff *skb) - - skb->encapsulation = 0; - skb_shinfo(skb)->gso_type = 0; -- skb_shinfo(skb)->gso_size = 0; - if (unlikely(skb->slow_gro)) { - skb_orphan(skb); - skb_ext_reset(skb); -diff --git a/net/ipv4/tcp_offload.c b/net/ipv4/tcp_offload.c -index 45dda7889387..a844a0d38482 100644 ---- a/net/ipv4/tcp_offload.c -+++ b/net/ipv4/tcp_offload.c -@@ -255,15 +255,7 @@ struct sk_buff *tcp_gro_receive(struct list_head *head, struct sk_buff *skb) - - mss = skb_shinfo(p)->gso_size; - -- /* If skb is a GRO packet, make sure its gso_size matches prior packet mss. -- * If it is a single frame, do not aggregate it if its length -- * is bigger than our mss. -- */ -- if (unlikely(skb_is_gso(skb))) -- flush |= (mss != skb_shinfo(skb)->gso_size); -- else -- flush |= (len - 1) >= mss; -- -+ flush |= (len - 1) >= mss; - flush |= (ntohl(th2->seq) + skb_gro_len(p)) ^ ntohl(th->seq); - #ifdef CONFIG_TLS_DEVICE - flush |= p->decrypted ^ skb->decrypted; -@@ -277,12 +269,7 @@ struct sk_buff *tcp_gro_receive(struct list_head *head, struct sk_buff *skb) - tcp_flag_word(th2) |= flags & (TCP_FLAG_FIN | TCP_FLAG_PSH); - - out_check_final: -- /* Force a flush if last segment is smaller than mss. */ -- if (unlikely(skb_is_gso(skb))) -- flush = len != NAPI_GRO_CB(skb)->count * skb_shinfo(skb)->gso_size; -- else -- flush = len < mss; -- -+ flush = len < mss; - flush |= (__force int)(flags & (TCP_FLAG_URG | TCP_FLAG_PSH | - TCP_FLAG_RST | TCP_FLAG_SYN | - TCP_FLAG_FIN)); diff --git a/patches/kernel/0019-revert-mm-compatction-fix-set-skip-in.patch b/patches/kernel/0019-revert-mm-compatction-fix-set-skip-in.patch deleted file mode 100644 index b50d949..0000000 --- a/patches/kernel/0019-revert-mm-compatction-fix-set-skip-in.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 025cbf4866306fe4823e8c316c20bdaddc6a0340 Mon Sep 17 00:00:00 2001 -From: Vlastimil Babka -Date: Fri, 13 Jan 2023 18:33:45 +0100 -Subject: Revert "mm/compaction: fix set skip in fast_find_migrateblock" - -commit 95e7a450b8190673675836bfef236262ceff084a upstream. - -This reverts commit 7efc3b7261030da79001c00d92bc3392fd6c664c. - -We have got openSUSE reports (Link 1) for 6.1 kernel with khugepaged -stalling CPU for long periods of time. Investigation of tracepoint data -shows that compaction is stuck in repeating fast_find_migrateblock() -based migrate page isolation, and then fails to migrate all isolated -pages. - -Commit 7efc3b726103 ("mm/compaction: fix set skip in fast_find_migrateblock") -was suspected as it was merged in 6.1 and in theory can indeed remove a -termination condition for fast_find_migrateblock() under certain -conditions, as it removes a place that always marks a scanned pageblock -from being re-scanned. There are other such places, but those can be -skipped under certain conditions, which seems to match the tracepoint -data. - -Testing of revert also appears to have resolved the issue, thus revert -the commit until a more robust solution for the original problem is -developed. - -It's also likely this will fix qemu stalls with 6.1 kernel reported in -Link 2, but that is not yet confirmed. - -Link: https://bugzilla.suse.com/show_bug.cgi?id=1206848 -Link: https://lore.kernel.org/kvm/b8017e09-f336-3035-8344-c549086c2340@kernel.org/ -Link: https://lore.kernel.org/lkml/20230125134434.18017-1-mgorman@techsingularity.net/ -Fixes: 7efc3b726103 ("mm/compaction: fix set skip in fast_find_migrateblock") -Cc: -Tested-by: Pedro Falcato -Acked-by: Mel Gorman -Signed-off-by: Vlastimil Babka -Signed-off-by: Linus Torvalds -Signed-off-by: Greg Kroah-Hartman ---- - mm/compaction.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/mm/compaction.c b/mm/compaction.c -index ca1603524bbe0..8238e83385a79 100644 ---- a/mm/compaction.c -+++ b/mm/compaction.c -@@ -1839,6 +1839,7 @@ static unsigned long fast_find_migrateblock(struct compact_control *cc) - pfn = cc->zone->zone_start_pfn; - cc->fast_search_fail = 0; - found_block = true; -+ set_pageblock_skip(freepage); - break; - } - } --- -cgit diff --git a/submodules/ubuntu-kernel b/submodules/ubuntu-kernel index 0494104..6f98879 160000 --- a/submodules/ubuntu-kernel +++ b/submodules/ubuntu-kernel @@ -1 +1 @@ -Subproject commit 0494104b474afb771d7b8da8b90818e8316b387f +Subproject commit 6f988794b04904ea15e156bfe766e30280553b0e