LWN.net Logo

RCU: The Bloatwatch Edition

RCU: The Bloatwatch Edition

Posted Mar 19, 2009 3:02 UTC (Thu) by kraai (subscriber, #15664)
Parent article: RCU: The Bloatwatch Edition

If rcu_qsctr_help(&rcu_ctrlblk) returns 1 when called by rcu_qsctr_inc, rcu_qsctr_help(&rcp_bh_ctrlblk) won't be called and, as a result, if rcu_bh_ctrlblk.donetail != rcu_bh_ctrlblk.curtail, rcu_bh_ctrlblk.donetail won't be updated. Would this cause the bottom-half callbacks to be unnecessarily delayed?


(Log in to post comments)

RCU: The Bloatwatch Edition

Posted Mar 19, 2009 16:01 UTC (Thu) by PaulMcKenney (subscriber, #9624) [Link]

Good catch!!! I need to use "+" or "|" in place of the "||". Or did you have something else in mind?

I checked rcuclassic.c and rcutree.c, and they avoid this problem because they simply call rcu_qsctr_inc() and rcu_bh_qsctr_inc() in sequence.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds