Hello, On Wed, Mar 21, 2018 at 06:17:43PM +0100, Oleg Nesterov wrote: > Mostly I am asking because I do not really understand > "[PATCH 6/8] RCU, workqueue: Implement rcu_work". > > I mean, the code looks simple and correct but why does it play with > WORK_STRUCT_PENDING_BIT? IOW, I do not see a "good" use-case when 2 or more > queue_rcu_work()'s can use the same rwork and hit work_pending() == T. And > what the caller should do if queue_rcu_work() returns false?
It's just following standard workqueue conventions. We can try to make it more specialized but then flush_rcu_work()'s behavior would have to different too and it gets confusing quickly. Unless there are overriding reasons to deviate, I'd like to keep it consistent. Thanks. -- tejun

