On Fri, Jan 22, 2016 at 06:03:13PM -0800, Paul E. McKenney wrote: > > Yeah, it's hairy. I wondered about adding support for bouncing to > > workqueue in both percpu_ref and rcu which would make things easier to > > follow. Not sure how often this pattern happens tho. > > This came up recently offlist for call_rcu(), so that a call to (say) > call_rcu_schedule_work() would do a schedule_work() after a grace period > elapsed, invoking the function passed in to call_rcu_schedule_work(). > There are several existing cases that do this, so special-casing it seems > worthwhile. Perhaps something vaguely similar would work for percpu_ref. FYI, my use case was also related to percpu-ref. The percpu ref API is unfortunately really hard to use and will almost always involve a work queue due to the complex interaction between percpu_ref_kill and percpu_ref_exit. One thing that would help a lot of callers would be a percpu_ref_exit_sync that kills the ref and waits for all references to go away synchronously. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html