如何解决DPDK支持slave启动新线程吗?
DPDK 的文档显示 ^@root@app-deployment-5d9567dcc5-f5hq6:/# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 200 4 ? Ss 19:26 0:00 s6-svscan -t0 /var/run/s6/services
root 34 0.0 0.0 200 4 ? S 19:26 0:00 s6-supervise s6-fdholderd
root 277 0.0 0.0 200 4 ? S 19:26 0:00 s6-supervise openssh-server/log
root 278 0.0 0.0 200 4 ? S 19:26 0:00 s6-supervise openssh-server
mpen 280 0.0 0.0 256 4 ? Ss 19:26 0:00 s6-log n30 s10000000 S30000000 T !gzip -nq9 /config/logs/openssh
mpen 281 0.0 0.0 4384 3480 ? Ss 19:26 0:00 sshd: /usr/sbin/sshd -D -e -p 2222 [listener] 0 of 10-100 startups
root 298 0.5 0.0 2580 2304 pts/0 Ss 19:32 0:00 bash
root 307 0.0 0.0 1640 868 pts/0 R+ 19:32 0:00 ps -aux
只能由主 lcore 调用。这是否意味着我只能在运行时使用主线程启动额外的线程?我可以将它分配给从属线程吗?
ps:还有一个问题。该文档还说:
注意:此功能并非旨在提供最佳性能。它 只是在另一个 lcore 上启动功能的实用方法 初始化时间。
什么意思?是否有另一种更有效的方式来启动线程?
解决方法
基于 logical cores specified as part of EAL Arguments
,可以为 DPDK LCORE 选择单核或多核。 DPDK API rte_eal_remote_launch 有助于在特定 LCORE 上的 DPDK 上下文下使用参数启动特定函数。如果不使用 API 调用,线程将处于等待状态(已创建并等待运行用户应用程序)。应该使用 context of the master core for launching new functions
中的 API 在 DPDK EAL 上下文下运行。
我可以将它分配给从属线程吗?
[Answer] 一个运行替代线程或工作线程 other than DPDK lcore threads
也通过使用
- 使用 rte_service API 的服务核心
- 使用 rte_thread_register 的非 dpdk 或非 eal 线程
请参阅 DPDK 文档中的示例以及对 use of rte_remote_launch 的解释
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。