Seastar 之核间通信 (2)
1 0核和任一个核通信
Seastar 使用 eventfd 进行核间(线程间)通信,因为每个线程使用内核API sched_set_affinity()
,绑定一个 SMP 的 core,所以我们这里称之为核间通信。
Seastar 创建了一个 N*N 的 event_fd 矩阵,每个单元格上两个event_fd,每一行event_fds由一个线程(Core)管理。
也就是说每个线程的 epoll 上,一共需要侦听 2N 个 event_fd。
示意图如下:
……