backport two bugfix patches from 5.10

This commit is contained in:
zhoukaiqi 2023-11-17 16:23:28 +08:00
parent 007cb01a63
commit 94329052cd
4 changed files with 112 additions and 2 deletions

View File

@ -32,7 +32,7 @@
Name: kernel
Version: 4.19.90
Release: %{hulkrelease}.0245
Release: %{hulkrelease}.0246
Summary: Linux Kernel
License: GPLv2
URL: http://www.kernel.org/
@ -850,7 +850,11 @@ fi
%changelog
* Fri Nov 17 2023 Luo Shengwei <luoshengwei@huawei.com> - 4.19.90-2311.3.0.0245
* Fri Nov 17 2023 Zhou Kaiqi <zhoukaiqi@huawei.com> - 4.19.90-2311.3.0.0246
- genirq: Increase the number of IRQ descriptors
- irqchip: gic-v3: Collection table support muti pages
* Fri Nov 17 2023 Li Xiaodong <lixiaodong67@huawei.com> - 4.19.90-2311.3.0.0245
- net: hns3: Fix unreasonable modifications caused by rollback extension ringparam parameters
- net: hns3: Fix ethtool_ Ops&gen_ Improper modification of kabi changes caused by adding members in the ops structure
- net: hns3: Fix Kabi issue caused by ptp introducing gettimex64()

View File

@ -0,0 +1,40 @@
From 182c9a59569b2f7adcd0473a1871a9899224d95d Mon Sep 17 00:00:00 2001
From: wangwudi <wangwudi@hisilicon.com>
Date: Mon, 12 Jun 2023 22:51:24 +0800
Subject: [PATCH 1/2] irqchip: gic-v3: Collection table support muti pages
driver inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7CX6S
CVE: NA
--------------------------------------------------------------------------
Only one page is allocated to the collection table.
Recalculate the page number of collection table based on the number of
CPUs.
Signed-off-by: wangwudi <wangwudi@hisilicon.com>
Signed-off-by: Shengwei Luo <luoshengwei@huawei.com>
---
drivers/irqchip/irq-gic-v3-its.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index 73ce248da42c..46012ad327e7 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -2180,6 +2180,10 @@ static int its_alloc_tables(struct its_node *its)
indirect = its_parse_indirect_baser(its, baser, &order,
ITS_MAX_VPEID_BITS);
break;
+ case GITS_BASER_TYPE_COLLECTION:
+ indirect = its_parse_indirect_baser(its, baser, &order,
+ order_base_2(num_possible_cpus()));
+ break;
}
err = its_setup_baser(its, baser, cache, shr, order, indirect);
--
2.27.0

View File

@ -0,0 +1,64 @@
From e5a8fe52b7e6506767f457f34ed237ae16f1d73f Mon Sep 17 00:00:00 2001
From: Kunkun Jiang <jiangkunkun@huawei.com>
Date: Wed, 7 Jun 2023 19:23:45 +0800
Subject: [PATCH 2/2] genirq: Increase the number of IRQ descriptors
virt inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7BQMW
CVE: NA
-----------------------------------------------------------------
The default value of NR_IRQS is not sufficient to support GICv4.1
features and ~56K LPIs. This parameter would be too small for certain
server platforms where it has many IO devices and is capable of
direct injection of vSGI and vLPI features.
Currently, maximum of 64 + 8192 (IRQ_BITMAP_BITS) IRQ descriptors
are allowed. The vCPU creation fails after reaching count ~400 with
kvm-arm.vgic_v4_enable=1.
This patch increases NR_IRQS to 1^19 to cover 56K LPIs and 262144
vSGIs (16vPEs x 16).
------------------------------------------------------------------
Tips: This is a temporary fix[1], but it has been able to solve the
problem. The latest upstream version[2] depends on the 'maple tree',
which is inappropriately introduced to the current kernel.
-------------------------------------------------------------------
Another Tips: According to Chao Liu and Chang Liao's suggestion,
modifying IRQ_BITMAP_BITS can achieve the same effect with less
impact. Compared with solution[2], solution[1] has a disadvantage:
the memory foot print increases as the number of VMs increases.
Link: https://lore.kernel.org/linux-arm-kernel/20230104023738.1258925-1-sdonthineni@nvidia.com/ [1]
Link: https://lore.kernel.org/all/20230519134902.1495562-1-sdonthineni@nvidia.com/#t [2]
Signed-off-by: Shanker Donthineni <sdonthineni@nvidia.com>
Signed-off-by: Chao Liu <liuchao173@huawei.com>
Signed-off-by: Chang Liao <liaochang1@huawei.com>
Signed-off-by: Kunkun Jiang <jiangkunkun@huawei.com>
Signed-off-by: Shengwei Luo <luoshengwei@huawei.com>
---
kernel/irq/internals.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
index f29d6982b3ce..176daa503ad5 100644
--- a/kernel/irq/internals.h
+++ b/kernel/irq/internals.h
@@ -12,7 +12,7 @@
#include <linux/sched/clock.h>
#ifdef CONFIG_SPARSE_IRQ
-# define IRQ_BITMAP_BITS (NR_IRQS + 8196)
+# define IRQ_BITMAP_BITS (1 << 19)
#else
# define IRQ_BITMAP_BITS NR_IRQS
#endif
--
2.27.0

View File

@ -645,3 +645,5 @@ patches/0641-Fallback-ethtool-about-nla_-Modification-of-kabi-cha.patch
patches/0642-net-hns3-Fix-Kabi-issue-caused-by-ptp-introducing-ge.patch
patches/0643-net-hns3-Fix-ethtool_-Ops-gen_-Improper-modification.patch
patches/0644-net-hns3-Fix-unreasonable-modifications-caused-by-ro.patch
patches/0645-irqchip-gic-v3-Collection-table-support-muti-pages.patch
patches/0646-genirq-Increase-the-number-of-IRQ-descriptors.patch