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

Reply via email to