如何在不同的应用程序之间共享 rte_keepalive?
How to share rte_keepalive across different applications?
在 DPDK Keep Alive Sample Application 中,每个从内核访问全局 rte_global_keepalive_info
以将自己标记为仍然存在。
考虑这样一种情况,当您有一个使用核心 1 的主应用程序和一个使用核心 2 的从应用程序时。主应用程序需要定期检查从应用程序是否仍然存在。所以master创建rte_global_keepalive_info
并期望slave会使用这个变量定期调用rte_keepalive_mark_alive()。
但是,如果主应用程序和从应用程序不能共享全局变量,因为它们是具有单独内存分配的不同进程,那么从应用程序怎么可能 "mark alive" rte_global_keepalive_info
创建的 rte_global_keepalive_info
主应用程序?高手还要用rte_keepalive_create()来创建rte_global_keepalive_info
变量吗?
基本上,两个进程都应该使用某种形式的进程间通信,例如,使用共享内存 shm_open(3)
有一个例子,请看keepalive shared memory management
和
keepalive Agent example
在 DPDK Keep Alive Sample Application 中,每个从内核访问全局 rte_global_keepalive_info
以将自己标记为仍然存在。
考虑这样一种情况,当您有一个使用核心 1 的主应用程序和一个使用核心 2 的从应用程序时。主应用程序需要定期检查从应用程序是否仍然存在。所以master创建rte_global_keepalive_info
并期望slave会使用这个变量定期调用rte_keepalive_mark_alive()。
但是,如果主应用程序和从应用程序不能共享全局变量,因为它们是具有单独内存分配的不同进程,那么从应用程序怎么可能 "mark alive" rte_global_keepalive_info
创建的 rte_global_keepalive_info
主应用程序?高手还要用rte_keepalive_create()来创建rte_global_keepalive_info
变量吗?
基本上,两个进程都应该使用某种形式的进程间通信,例如,使用共享内存 shm_open(3)
有一个例子,请看keepalive shared memory management 和 keepalive Agent example