Comment 0 for bug 1893711

Revision history for this message
Fred Kimmy (kongzizaixian) wrote :

[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.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.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