On 4/23/2020 1:02 AM, Daniel Wagner wrote:
Thanks a lot for this. IMO, this should be added as documentation.
In IO path, EFC lock is acquired to find the sport and node, release the EFC
lock and continue with IO allocation and processing. Note: There is still an
unsafe area where we check for 'node->hold_frames" without the lock.
Is this is the fast path? Would RCU help to avoid taking the lock at all?
The usage pattern sounds like it would be a candidate for RCU.
Node is
assumed to be kept alive until all the IOs under the node are freed. Adding
the refcounting will remove this assumption.
I'll see what we can do, and will look at RCU.
BTW: also agreed with your comments in all the remaining patches, so
will address those as well.
Same for Hannes's comments.
-- james