关于这段注释的说明
/* We can’t allow the packet batching in the next loop to execute *
the actions. Otherwise, if there are any slow path actions, * we’ll
send the packet up twice. */
handle_packet_upcall()->dp_netdev_execute_actions()
如果在 handle_packet_upcall() 里不调用 dp_netdev_execute_actions() 的话, 那么 add flow 之后, 一旦 flow 里有 slow path action 的话, 后面这个 pkt 就又会 被 upcall 一次.
在这里调用的时候, 已经持有了 dp->upcall_rwlock 锁, 所以走到 dp_execute_cb() case OVS_ACTION_ATTR_USERSPACE 的时候, 因为拿不到 dp->upcall_rwlock 就避免了重复的 upcall 了
1260

被折叠的 条评论
为什么被折叠?



