Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XDP_REDIRECT_MAP support #5

Open
janrueth opened this issue Apr 27, 2020 · 1 comment
Open

XDP_REDIRECT_MAP support #5

janrueth opened this issue Apr 27, 2020 · 1 comment

Comments

@janrueth
Copy link

Hi,

it seems that currently netronome driver does not support XDP_REDIRECT_MAP.
When trying to use an AF_XDP program that uses xks_maps I get this:

[274149.242013] WARNING: CPU: 0 PID: 0 at net/core/filter.c:6905 bpf_warn_invalid_xdp_action+0x3d/0x50
[274149.242028] Modules linked in: netlink_diag veth iptable_filter xt_set bpfilter ip_set_hash_net ip_set nfnetlink rpcsec_gss_krb5 auth_rpcgss nfsv4 nfs lockd grace fscache intel_rapl_msr intel_rapl_common sb_edac x86_pkg_temp_thermal intel_powerclamp coretemp ipmi_ssif dcdbas kvm_intel binfmt_misc kvm intel_cstate intel_rapl_perf mei_me mei ipmi_si ipmi_devintf ipmi_msghandler acpi_power_meter mac_hid openvswitch nsh nf_conncount nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 sch_fq_codel sunrpc ip_tables x_tables autofs4 btrfs zstd_compress raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear mgag200 crct10dif_pclmul drm_vram_helper i2c_algo_bit crc32_pclmul ttm drm_kms_helper syscopyarea ghash_clmulni_intel sysfillrect aesni_intel sysimgblt crypto_simd fb_sys_fops cryptd nfp ahci drm mxm_wmi glue_helper tls i40e lpc_ich libahci megaraid_sas tg3 wmi
[274149.242148] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.4.0-26-generic #30-Ubuntu
[274149.242151] Hardware name: Dell Inc. PowerEdge R830/0VVT0H, BIOS 1.5.4 08/17/2017
[274149.242156] RIP: 0010:bpf_warn_invalid_xdp_action+0x3d/0x50
[274149.242161] Code: 48 c7 c0 e2 4d c3 84 89 fa 48 c7 c6 da 4d c3 84 48 c7 c7 30 4d c3 84 c6 05 11 5e eb 00 01 48 0f 46 f0 48 89 e5 e8 ee 96 74 ff <0f> 0b 5d c3 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 0f 1f 44
[274149.242163] RSP: 0000:ffff9b4800003d98 EFLAGS: 00010282
[274149.242167] RAX: 0000000000000000 RBX: ffff88fc41340520 RCX: 0000000000000000
[274149.242169] RDX: ffff88fc7f627740 RSI: ffff88fc7f6178c8 RDI: 0000000000000300
[274149.242172] RBP: ffff9b4800003d98 R08: ffff88fc7f6178c8 R09: 0000000000000004
[274149.242173] R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000004
[274149.242175] R13: ffff890c5bb10290 R14: ffff88fc69490780 R15: ffff890c72f008c0
[274149.242178] FS:  0000000000000000(0000) GS:ffff88fc7f600000(0000) knlGS:0000000000000000
[274149.242181] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[274149.242183] CR2: 00007f3ee2ed17d0 CR3: 000000149800a006 CR4: 00000000003606f0
[274149.242185] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[274149.242187] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[274149.242189] Call Trace:
[274149.242194]  <IRQ>
[274149.242232]  nfp_net_rx+0x8bc/0xe00 [nfp]
[274149.242257]  nfp_net_poll+0x39/0x90 [nfp]
[274149.242265]  net_rx_action+0x13a/0x370
[274149.242275]  __do_softirq+0xe1/0x2d6
[274149.242290]  ? update_ts_time_stats+0x58/0x80
[274149.242302]  irq_exit+0xae/0xb0
[274149.242311]  scheduler_ipi+0xe4/0x130
[274149.242314]  smp_reschedule_interrupt+0x39/0xe0
[274149.242322]  reschedule_interrupt+0xf/0x20
[274149.242324]  </IRQ>
[274149.242332] RIP: 0010:cpuidle_enter_state+0xc5/0x450
[274149.242336] Code: ff e8 df 0d 81 ff 80 7d c7 00 74 17 9c 58 0f 1f 44 00 00 f6 c4 02 0f 85 65 03 00 00 31 ff e8 32 7a 87 ff fb 66 0f 1f 44 00 00 <45> 85 ed 0f 88 8f 02 00 00 49 63 cd 4c 8b 7d d0 4c 2b 7d c8 48 8d
[274149.242338] RSP: 0000:ffffffff84e03de0 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff02
[274149.242343] RAX: ffff88fc7f62ad00 RBX: ffffffff84f59dc0 RCX: 000000000000001f
[274149.242345] RDX: 0000000000000000 RSI: 000000004746ace4 RDI: 0000000000000000
[274149.242348] RBP: ffffffff84e03e20 R08: 0000f9565825f25c R09: 0000f9563af9a6c7
[274149.242351] R10: ffff88fc7f629a00 R11: ffff88fc7f6299e0 R12: ffffbb17ff8029c8
[274149.242353] R13: 0000000000000004 R14: 0000000000000004 R15: ffffbb17ff8029c8
[274149.242361]  cpuidle_enter+0x2e/0x40
[274149.242369]  call_cpuidle+0x23/0x40
[274149.242373]  do_idle+0x1dd/0x270
[274149.242379]  cpu_startup_entry+0x20/0x30
[274149.242388]  rest_init+0xae/0xb0
[274149.242402]  arch_call_rest_init+0xe/0x1b
[274149.242408]  start_kernel+0x54e/0x56c
[274149.242414]  x86_64_start_reservations+0x24/0x26
[274149.242418]  x86_64_start_kernel+0x75/0x79
[274149.242432]  secondary_startup_64+0xa4/0xb0
[274149.242437] ---[ end trace 57d7a3a59a2ba86d ]---

Is support planned?

@jmalcaraz
Copy link

jmalcaraz commented Apr 7, 2021

This functionality would be really great to have and in my humble opinion almost a must for the success of the company. Otherwise, one of their biggest innovations which is the eBPF HW offloaded is diluted by the kernel performance limitations since we cannot perform XDP_REDIRECT to allow AF_XDP kernel bypass and thus addressing scalability. The feature would open a lot of use cases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants