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

[oerv_24.03sp1] 特性测试-用户态协议栈Gazelle #1557

Open
jiewu9823 opened this issue Dec 5, 2024 · 3 comments
Open

[oerv_24.03sp1] 特性测试-用户态协议栈Gazelle #1557

jiewu9823 opened this issue Dec 5, 2024 · 3 comments
Assignees
Labels

Comments

@jiewu9823
Copy link
Collaborator

jiewu9823 commented Dec 5, 2024

需求:

  1. openEuler RISC-V 24.03 SP1 镜像 ,按照官方文档验证
    1)Gazelle 用户态协议栈功能
    2)Gazelle特性增强

要求:

  1. 将测试中发现的问题和测试结果更新在本 issue 的评论里
  2. 需要产出测试报告和日志,可参考 https://gitee.com/laokz/oerv/tree/master/syscare/QA
  3. 测试报告和日志上传到 oerv QA github仓库
  4. DDL:2024/12/22
@jiewu9823 jiewu9823 changed the title [oerv_24.03sp1] 特性测试之用户态协议栈Gazelle [oerv_24.03sp1] 特性测试-用户态协议栈Gazelle Dec 9, 2024
@Jvlegod
Copy link
Contributor

Jvlegod commented Dec 24, 2024

目前遇到的问题是:

  1. 使用 https://repo.tarsier-infra.isrc.ac.cn/openEuler-RISC-V/devel/[2](https://gitee.com/jvle/works/commit/22305a33110676028e7770657332e6d483008d62#bb88c3031d7fefc8440993ca3748a31d63ac22c9_0_2)0241126/v0.1/QEMU/ 去验证发现无法成功绑定到网卡,猜测是不支持虚拟网卡的问题.
  2. 使用荔枝派4A去验证的时候,https://repo.tarsier-infra.isrc.ac.cn/openEuler-RISC-V/devel/20241126/v0.1/lpi4a/ 找不到vfio-pci, igb_uio相关的模块(可能是内核版本太低了 5.10),正在尝试换成最新的镜像去测试 https://repo.tarsier-infra.isrc.ac.cn/openEuler-RISC-V/devel/20241223/v0.1/lpi4a/

@Jvlegod
Copy link
Contributor

Jvlegod commented Dec 24, 2024

按照 https://docs.openeuler.org/zh/docs/24.03_LTS/docs/Gazelle/Gazelle.html 操作

相关issue: https://gitee.com/openeuler/gazelle/issues/IBDCCL?from=project-issue

对比测试

x86_64

# x86_64 24.03-LTS 
[root@localhost ~]# ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::a00:27ff:fed6:f09a  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:d6:f0:9a  txqueuelen 1000  (Ethernet)
        RX packets 418  bytes 35481 (34.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 292  bytes 35085 (34.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost ~]# modprobe igb_uio
[root@localhost ~]# dpdk-devbind -b igb_uio enp3s0
Traceback (most recent call last):
  File "/usr/bin/dpdk-devbind", line 798, in <module>
    main()
  File "/usr/bin/dpdk-devbind", line 794, in main
    do_arg_actions()
  File "/usr/bin/dpdk-devbind", line 755, in do_arg_actions
    bind_all(args, b_flag, force_flag)
  File "/usr/bin/dpdk-devbind", line 503, in bind_all
    for d in dev_list:
  File "/usr/bin/dpdk-devbind", line 321, in dev_id_from_dev_name
    raise ValueError("Unknown device: %s. "
ValueError: Unknown device: enp3s0. Please specify device in "bus:slot.func" format
[root@localhost ~]# dpdk-devbind -b igb_uio enp0s3
Warning: routing table indicates that interface 0000:00:03.0 is active. Not modifying

riscv64

荔枝派4A

# on 荔枝派4A 16G https://repo.tarsier-infra.isrc.ac.cn/openEuler-RISC-V/devel/20241223/v0.1/QEMU/
[root@openeuler-riscv64 ~]# ifconfig
end0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 48:da:35:60:0d:12  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 35  base 0x2000  

end1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 48:da:35:60:0d:13  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 36  base 0x2000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 136  bytes 10552 (10.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 136  bytes 10552 (10.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.43.79  netmask 255.255.255.0  broadcast 192.168.43.255
        inet6 fe80::e601:23c8:1995:cae8  prefixlen 64  scopeid 0x20<link>
        inet6 240e:45e:3650:24ca:7584:9efa:ea6d:4ecc  prefixlen 64  scopeid 0x0<global>
        ether 2c:05:47:e8:15:64  txqueuelen 1000  (Ethernet)
        RX packets 78765  bytes 110603292 (105.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 39018  bytes 3707391 (3.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@openeuler-riscv64 ~]# dpdk-devbind -b vfio-pci end0                                                                                                                           
Traceback (most recent call last):
  File "/usr/bin/dpdk-devbind", line 798, in <module>
    main()
  File "/usr/bin/dpdk-devbind", line 794, in main
    do_arg_actions()
  File "/usr/bin/dpdk-devbind", line 755, in do_arg_actions
    bind_all(args, b_flag, force_flag)
  File "/usr/bin/dpdk-devbind", line 503, in bind_all
    for d in dev_list:
  File "/usr/bin/dpdk-devbind", line 321, in dev_id_from_dev_name
    raise ValueError("Unknown device: %s. "
ValueError: Unknown device: end0. Please specify device in "bus:slot.func" format

QEMU

[root@openeuler-riscv64 ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fec0::60d3:eff2:6620:5e9  prefixlen 64  scopeid 0x40<site>
        inet6 fe80::dc98:3ec2:cbb2:8961  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:12:34:56  txqueuelen 1000  (Ethernet)
        RX packets 76697  bytes 109560324 (104.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9961  bytes 583218 (569.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 30  bytes 2144 (2.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 30  bytes 2144 (2.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@openeuler-riscv64 ~]# dpdk-devbind -b vfio-pci eth0
Traceback (most recent call last):
  File "/usr/bin/dpdk-devbind", line 798, in <module>
    main()
  File "/usr/bin/dpdk-devbind", line 794, in main
    do_arg_actions()
  File "/usr/bin/dpdk-devbind", line 755, in do_arg_actions
    bind_all(args, b_flag, force_flag)
  File "/usr/bin/dpdk-devbind", line 503, in bind_all
    for d in dev_list:
  File "/usr/bin/dpdk-devbind", line 321, in dev_id_from_dev_name
    raise ValueError("Unknown device: %s. "
ValueError: Unknown device: eth0. Please specify device in "bus:slot.func" format

不太明白这是出现了什么问题,x86使用的是igb_uio, riscv64上使用的是vfio-pci(不存在igb_uio模块),x86可以正常绑定,riscv64不太可行.

@Jvlegod
Copy link
Contributor

Jvlegod commented Dec 26, 2024

x86我是使用的igb_uio,x86本身也没有vfio-pci,riscv64在测试的版本上内核貌似没igb_uio模块,riscv64要不尝试支持一下这个模块?可能就能绑定上了.

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

No branches or pull requests

2 participants