** Description changed: + [Impact] + kernel oops on hns3 driver when GRO is enabled. + + [Fix] + Cherry-pick patches from upstream + d474d88f8826 net: hns3: add hns3_gro_complete for HW GRO process + a4d2cdcbb878 net: hns3: minor refactor for hns3_rx_checksum + + [Test] + No known way to reproduce it in our lab. Regression test only. + + [Regression Potential] + Patchset only affects hns3 driver. Minimal risk for other drivers and platform. + Stress test on hns3 driver looks good and we also have positive + feedback from different lab. + Patches also in Ubuntu kernel since Eoan and no regression observed. + + ------------------------ [Bug Description] When a GRO packet is received by driver, the cwr field in the struct tcphdr needs to be checked to decide whether to set the SKB_GSO_TCP_ECN for skb_shinfo(skb)->gso_type. [Steps to Reproduce] 1.load PF driver 2.turn off GRO of stack, turn on HW GRO [Actual Results] [ 32.597752] bond-dcn: link status definitely up for interface enp189s0f0, 10000 Mbps full duplex [1048422.589438] Unable to handle kernel paging request at virtual address ffff806000005d0c [1048422.597506] Mem abort info: [1048422.600463] ESR = 0x96000005 [1048422.603679] Exception class = DABT (current EL), IL = 32 bits [1048422.609747] SET = 0, FnV = 0 [1048422.612963] EA = 0, S1PTW = 0 [1048422.616265] Data abort info: [1048422.619309] ISV = 0, ISS = 0x00000005 [1048422.623301] CM = 0, WnR = 0 [1048422.626431] swapper pgtable: 4k pages, 48-bit VAs, pgd = 0000000096615bf4 [1048422.633360] [ffff806000005d0c] *pgd=0000205fffff6003, *pud=0000000000000000 [1048422.640465] Internal error: Oops: 96000005 [#1] SMP [1048422.645496] Modules linked in: bonding zfs(PO) zunicode(PO) zavl(PO) icp(PO) nls_iso8859_1 zcommon(PO) znvpair(PO) spl(O) joydev input_leds ipmi_ssif ipmi_si ipmi_devintf shpchp ipmi_msghandler cppc_cpufreq sch_fq_codel ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi ip_tables x_tables autofs4 xfs btrfs zstd_compress raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear ses enclosure hibmc_drm aes_ce_blk aes_ce_cipher ttm realtek crc32_ce drm_kms_helper crct10dif_ce syscopyarea ghash_ce hisi_sas_v3_hw sysfillrect sha2_ce sysimgblt hns3 nvme hisi_sas_main sha256_arm64 fb_sys_fops sha1_ce drm hclge libsas nvme_core ahci megaraid_sas hnae3 scsi_transport_sas libahci gpio_dwapb hid_generic [1048422.715911] usbhid hid aes_neon_bs aes_neon_blk crypto_simd cryptd aes_arm64 [1048422.723192] Process swapper/22 (pid: 0, stack limit = 0x00000000dc9798e5) [1048422.730122] CPU: 22 PID: 0 Comm: swapper/22 Tainted: P O 4.15.0-96-generic #97-Ubuntu [1048422.739297] Hardware name: Huawei TaiShan 200 (Model 2280)/BC82AMDDA, BIOS 1.35 04/30/2020 [1048422.747695] pstate: 80400009 (Nzcv daif +PAN -UAO) [1048422.752641] pc : tcp_gro_complete+0x4c/0x80 [1048422.756988] lr : hns3_clean_rx_ring+0x63c/0x6f0 [hns3] [1048422.762274] sp : ffff000009893d00 - [1048422.765746] x29: ffff000009893d00 x28: ffffa05de384d900 - [1048422.771207] x27: ffffa05dc660c6c0 x26: ffffa05dc7a6c280 - [1048422.776668] x25: 0000000000000040 x24: ffffa05dc7a4e000 - [1048422.782130] x23: 0000000000000002 x22: 0000000000000000 - [1048422.787590] x21: 0000000000000000 x20: 0000000000000000 - [1048422.793051] x19: ffffa05de384d900 x18: 0000ffffa3bf2a70 - [1048422.798512] x17: 0000ffffa3b68698 x16: ffff000008307aa0 - [1048422.803973] x15: 00000d920112ac4e x14: 0c96b6405c2a0a08 - [1048422.809435] x13: 010100001cc0f601 x12: 188058b201fc85fd - [1048422.814896] x11: cd979f72c04ce5db x10: 2087e1db2087679d - [1048422.820358] x9 : 0640004090cff807 x8 : 00450008f034d971 - [1048422.825820] x7 : 1502726647903506 x6 : 0000000000000002 - [1048422.831281] x5 : ffffa05dc7ad0480 x4 : 0000000000000002 - [1048422.836743] x3 : ffff805fffff5d00 x2 : 0000000000000060 - [1048422.842203] x1 : ffff805fffff5f00 x0 : ffff806000005cff + [1048422.765746] x29: ffff000009893d00 x28: ffffa05de384d900 + [1048422.771207] x27: ffffa05dc660c6c0 x26: ffffa05dc7a6c280 + [1048422.776668] x25: 0000000000000040 x24: ffffa05dc7a4e000 + [1048422.782130] x23: 0000000000000002 x22: 0000000000000000 + [1048422.787590] x21: 0000000000000000 x20: 0000000000000000 + [1048422.793051] x19: ffffa05de384d900 x18: 0000ffffa3bf2a70 + [1048422.798512] x17: 0000ffffa3b68698 x16: ffff000008307aa0 + [1048422.803973] x15: 00000d920112ac4e x14: 0c96b6405c2a0a08 + [1048422.809435] x13: 010100001cc0f601 x12: 188058b201fc85fd + [1048422.814896] x11: cd979f72c04ce5db x10: 2087e1db2087679d + [1048422.820358] x9 : 0640004090cff807 x8 : 00450008f034d971 + [1048422.825820] x7 : 1502726647903506 x6 : 0000000000000002 + [1048422.831281] x5 : ffffa05dc7ad0480 x4 : 0000000000000002 + [1048422.836743] x3 : ffff805fffff5d00 x2 : 0000000000000060 + [1048422.842203] x1 : ffff805fffff5f00 x0 : ffff806000005cff [1048422.847665] Call trace: [1048422.850276] tcp_gro_complete+0x4c/0x80 [1048422.854274] hns3_clean_rx_ring+0x63c/0x6f0 [hns3] [1048422.859217] hns3_nic_common_poll+0x98/0x220 [hns3] [1048422.864247] net_rx_action+0x160/0x3d8 [1048422.868153] __do_softirq+0x134/0x330 [1048422.871973] irq_exit+0xcc/0xe0 [1048422.875275] __handle_domain_irq+0x6c/0xc0 [1048422.879526] gic_handle_irq+0x84/0x180 [1048422.883431] el1_irq+0xe8/0x180 [1048422.886733] arch_cpu_idle+0x30/0x180 [1048422.890553] do_idle+0x138/0x1f0 [1048422.893941] cpu_startup_entry+0x28/0x30 [1048422.898022] secondary_start_kernel+0x114/0x128 - [1048422.902705] Code: 79407a64 8b202060 39024262 79000c24 (39c03400) + [1048422.902705] Code: 79407a64 8b202060 39024262 79000c24 (39c03400) [1048422.909033] SMP: stopping secondary CPUs [1048422.918364] Starting crashdump kernel... [1048422.922444] Bye! - [Expected Results] GRO run ok [Reproducibility] Inevitably [Additional information] Hardware: D06 Firmware: NA Kernel: NA [Resolution] Adds hns3_gro_complete to do that, and adds the hns3_handle_bdinfo to handle the hns3_gro_complete and hns3_rx_checksum. net: hns3: add hns3_gro_complete for HW GRO process net: hns3: minor refactor for hns3_rx_checksum
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1893711 Title: [hns3-0901]add hns3_gro_complete for HW GRO process To manage notifications about this bug go to: https://bugs.launchpad.net/kunpeng920/+bug/1893711/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
