Messages in this thread | | | Date | Fri, 17 Feb 2012 09:11:13 -0800 | From | Tejun Heo <> | Subject | Re: [PATCH 2/9] blkcg: drop unnecessary RCU locking |
| |
On Fri, Feb 17, 2012 at 11:47:49AM -0500, Vivek Goyal wrote: > So now in some cases we call blkg_lookup_create() with both queue and rcu > read lock held (cfq_lookup_create_cfqg()) and in this case hold only queue > lock.
So, this should be okay. It's currently not because blkg_alloc() is broken due to percpu allocation but other than that calling both w/ and w/o RCU read lock should be fine.
> blkg_lookup_create() calls blkg_lookup() which expects a rcu_read_lock() > to be held and we will be travesing that list without rcu_read_lock() > held. Isn't that a problem?
No, why would it be a problem?
> We might be examining a blkg belonging to a different queue and it > might be being freed parallely.
How?
Thanks.
-- tejun
| |