1. Indeed, the upgrade-to-update change would be visible to the remainder of the RCU read-side critical section. However, in a surprisingly large number of cases, there is no need for additional verification steps (though verification can be used when needed). This is a key difference between RCU and non-blocking synchronization (NBS) -- NBS would absolutely require the validation steps in order to avoid memory corruption. 2. Good point -- although rcu_assign_pointer(head, NULL) is superfluous, it is good practice, and there is no performance penalty. 3. Good eyes!!!
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds