diff --git a/kernel.spec b/kernel.spec index 6b3719d..21a246f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -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 - 4.19.90-2311.3.0.0245 +* Fri Nov 17 2023 Zhou Kaiqi - 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 - 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() diff --git a/patches/0645-irqchip-gic-v3-Collection-table-support-muti-pages.patch b/patches/0645-irqchip-gic-v3-Collection-table-support-muti-pages.patch new file mode 100644 index 0000000..b61cfc7 --- /dev/null +++ b/patches/0645-irqchip-gic-v3-Collection-table-support-muti-pages.patch @@ -0,0 +1,40 @@ +From 182c9a59569b2f7adcd0473a1871a9899224d95d Mon Sep 17 00:00:00 2001 +From: wangwudi +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 +Signed-off-by: Shengwei Luo +--- + 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 + diff --git a/patches/0646-genirq-Increase-the-number-of-IRQ-descriptors.patch b/patches/0646-genirq-Increase-the-number-of-IRQ-descriptors.patch new file mode 100644 index 0000000..f482d08 --- /dev/null +++ b/patches/0646-genirq-Increase-the-number-of-IRQ-descriptors.patch @@ -0,0 +1,64 @@ +From e5a8fe52b7e6506767f457f34ed237ae16f1d73f Mon Sep 17 00:00:00 2001 +From: Kunkun Jiang +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 +Signed-off-by: Chao Liu +Signed-off-by: Chang Liao +Signed-off-by: Kunkun Jiang +Signed-off-by: Shengwei Luo +--- + 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 + + #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 + diff --git a/series.conf b/series.conf index 27625bb..06e45f5 100644 --- a/series.conf +++ b/series.conf @@ -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