On Thu, 31 Oct 2024 17:57:04 +0800
cuyu tang <[email protected]> wrote:
> I'm having segfault issues when running pktgen in a virtualbox virtual
> machine.
>
> Here's what I run it in and some details about running the commands,
>
> and what I can do to get it to run correctly
>
>
> pktgen version: git main brunch
>
> # git log
> commit cc1d4c606dea3939adf75cc02de0f7cf2b28cf1e (HEAD -> main, tag:
> pktgen-24.07.0, origin/main, origin/HEAD)
>
> dpdk version: dpdk-24.07
>
> [root@localhost dpdk-24.07]# ./usertools/dpdk-devbind.py -s
>
> Network devices using DPDK-compatible driver
> ============================================
> 0000:00:09.0 '82540EM Gigabit Ethernet Controller 100e' drv=igb_uio
> unused=e1000,vfio-pci
> 0000:00:0a.0 '82540EM Gigabit Ethernet Controller 100e' drv=igb_uio
> unused=e1000,vfio-pci
>
> pktgen run command:
>
> gdb --args /root/pktgen-dpdk/usr/local/bin/pktgen -m 1.0
>
> Port DevName Index NUMA PCI Information Src MAC
> Promiscuous
> Thread 1 "pktgen" received signal SIGSEGV, Segmentation fault.
> 0x000000000043c38b in dump_device_info () at ../app/pktgen-port-cfg.c:102
> 102 pkt = &pinfo->seq_pkt[SINGLE_PKT];
>
> (gdb) bt
> #0 0x000000000043c38b in dump_device_info () at
> ../app/pktgen-port-cfg.c:102
> #1 0x000000000043e3cf in pktgen_config_ports () at
> ../app/pktgen-port-cfg.c:325
> #2 0x000000000043aa23 in main (argc=1, argv=0x7fffffffe2d8) at
> ../app/pktgen-main.c:465
>
> (gdb) n
> 89 bus = rte_bus_find_by_device(dev.device);
> (gdb)
> 90 if (bus && !strcmp(rte_bus_name(bus), "pci")) {
> (gdb)
> 94 vend[0] = device[0] = '\0';
> (gdb)
> 95 sscanf(rte_dev_bus_info(dev.device), "vendor_id=%4s,
> device_id=%4s", vend, device);
> (gdb)
> 97 rte_eth_dev_get_name_by_port(i, name);
> (gdb)
> 98 snprintf(buff, sizeof(buff), "%s:%s/%s", vend,
> device, rte_dev_name(dev.device));
> (gdb)
> 90 if (bus && !strcmp(rte_bus_name(bus), "pci")) {
> (gdb)
> 101 pinfo = l2p_get_port_pinfo(i);
> (gdb)
> 102 pkt = &pinfo->seq_pkt[SINGLE_PKT];
> (gdb)
>
> Thread 1 "pktgen" received signal SIGSEGV, Segmentation fault.
> 0x000000000043c38b in dump_device_info () at ../app/pktgen-port-cfg.c:102
> 102 pkt = &pinfo->seq_pkt[SINGLE_PKT];
> (gdb) p pinfo
> $3 = (port_info_t *) 0x0
> (gdb)
>
>
>
Pktgen no longer has a maintainer, so it considered abandoned at this point.
What does DPDK startup show? The problem is probably that virtualbox doesn't
fully
emulate the Intel NIC and the DPDK PMD doesn't like that.