Hi, all
I have a question regarding the usage of the reference count in the
dp_netdev_flow structure. When the revalidate thread ages out and deletes
dpflow A, the reference count of dpflow A is decremented, initiating the RCU
release process. Now, if another thread concurrently performs a table lookup
and hits dpflow A, is it problematic if that thread continues to use dpflow A?
Moreover, I noticed the following note in the dp_netdev_flow structure:
* A flow 'flow' may be accessed without a risk of being freed during an RCU *
grace period. Code that needs to hold onto a flow for a while * should try
incrementing 'flow->ref_cnt' with dp_netdev_flow_ref().
In fast_path_processing, we acquire dpflow as follows:
c复制代码
flow = dp_netdev_flow_cast(rules[i]);
However, dp_netdev_flow_ref() is not called. Why is that? Is this a potential
issue?
BR
ke.liu
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev