如何在不同的应用程序之间共享 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 managementkeepalive Agent example