netlink - 来自内核 vport 的 upcall 和用户空间 upcall 线程之间的映射
问题描述
对于 ovs 使用内核数据路径的情况,如果有 2 个用户空间 upcall 线程和 4 个内核 vport,似乎(来自源代码 2.11.90),每个 vport 将只创建一个 netlink sock 并将其绑定到每个 upcall 线程的 epoll_handler。
问题是,如果有从 vport 的 netlink 套接字发送的 upcall 请求,用户空间中的哪个 upcall 线程将处理这个请求?
非常感谢。
解决方案
我已经找到了答案。ovs 为所有 netlink 套接字创建一个 epoll-handler,所有线程都在监听 epoll-handler。当 epoll-handler 发生事件时,epoll-handler 上挂起的第一个线程将使 cpu 运行。
推荐阅读
- c++ - 返回 0 和 -1 之间的差异
- javascript - 如何使用 CSS 进行 Powershell 输出(半高级)
- cuda - GPU (CUDA) 上的非线性优化,没有数据传输延迟
- jquery - 如何在绑定到 Django 中的模型字段的模板中呈现输入字段
- pandas - 将 IP 地址与 IP 网络匹配并返回相关列
- url - 如何将路由 app.domain.com 添加到现有 domain.com?
- laravel - Ajax 与 Laravel Form Collective
- css - 如何覆盖引导程序的标记样式?
- c# - 自动实现的属性如何在 C# 接口中工作?
- apache-kafka - Kafka Connect JDBC 接收器连接器问题