Q1:DPU除了数据中心的应用场景,还有哪些应用场景呢?
A:从部署的角度,主要是应用在云计算、核心数据中心和边缘计算[attach]20149[/attach]
Q2:在DOCA目录下的application中,都使用的是rte_eth_rx_burst来接收包,但是下图所示(图1)的循环里的log却从来没有输出过,请问是什么原因?[attach]20146[/attach]
A:运行的时候要设定日志等级,如果日志等级开满,可换成printf再做尝试。
关联Q:是否由于offload的问题?(现在走的是doca的cx offload,需把offload关了才能进dpdk的rx和tx)
A:由于打的并非dns流量,所以会出现上述问题。
关联Q:请问只有dns流量会上cpu处理,其他的流量直接就在cx上hardware处理掉了吗?
A:是的,可以在宿主机上ping一个域名做尝试。您没有用RegEx来识别DNS 流量,发送的数据包被当作非DNS数据包处理了。
关联Q:请问是rte_rx在什么情况下会收到包?如果在dns_filter里只有dns包能收到的话,DOCA_FLOW_FWD_RSS这个fwd类型就是用来送包上arm的dpdk的吗?
A:可参考:2.15. Logging Management
Define functions for internal and external logging management
To add DOCA internal logging compile with “-D DOCA_LOGGING_ALLOW_DLOG”
及Will generate debug log for development purposes. To show the logs define DOCA_LOGGING_ALLOW_DLOG in the compilation variables. This will not effect performance if compiled without DOCA_LOGGING_ALLOW_DLOG, as it will be removed by the compiler.
需要先打开允许Debug Log,然后编译才会输入 Log,否则编译时会去除 Debug Log的输出。可参考这个 API 的说明:
https://docs.nvidia.com/doca/sdk/doca-libraries-api/modules.html#group__LOGGER_1g136ca04aff645e951dd99225d31345d9
Q3:请问是所有包都会被rte_eth_rx_burst收到吗?手头并没有dpu如何解决?
A:rte_eth_rx_burst 是在 DPDK 中针对以太网设备接收队列中输入数据包的。
可参考文档:https://doc.dpdk.org/api/rte__ethdev_8h.html
另外,手头没有 DPU,可以注册DOCA早期开发者计划,然后申请卓越中心提供的本地免费开发环境使用机时。
Q4:请问物理上DDR是多少(主频3200MHz,位宽64bit)?实际能跑到的可用DRR占比是否有超过50%?
A:DDR4跑到满频率,单通道 32GB/s左右。
Q5:把dpdk的生成包的代码copy过来,如下图所示(图2):
[attach]20147[/attach][attach]20148[/attach]但是在allocate packet时会segmentaion fault,请问这和DOCA之前可能隐式的生成过mempool有关吗?
A:该问题应是在分配池子的时候用了和DOCA隐式分配一样的池子名,可尝试修改池子名。
Q6:之前正常使用100g qsfp28 dac连的bf2和intel的交换机,而把intel交换机换成了华为ce6800系列交换机,dac不能用了,请问这种情况应该如何解决?
A:换华为交换机的兼容线即可,如果有老版本的固件,刷完了也可能会解决这个问题。