Thread (8 messages) 8 messages, 2 authors, 2021-12-06

Re: [PATCH v4 2/2] block: cancel all throttled bios in del_gendisk()

From: Michal Koutný <mkoutny@suse.com>
Date: 2021-12-06 16:00:21
Also in: cgroups, lkml

On Sat, Dec 04, 2021 at 04:03:53PM +0800, "yukuai (C)" [off-list ref] wrote:
I was thinking that if there are active blkgs, holding queue_lock will
ensure blkcg won't be freed.
My take is that the function traverses the whole blkcg tree (from global
root) and nothing prevents concurrent blkcg_css_free() in a possibly
unrelated branch (or queue).
By the way, does spin_lock can guarantee this since it disables preempt
like what rcu_read_lock() does?
Yes (but don't quoRTe me on that :-).

(It even isn't issue with a non-preemptible kernel neither but the code
IMO should be generic to allow for different configs -- or as I
mentioned initially, make a comment why the tree traversal is not
affected by concurrent frees.)

Thanks,
Michal

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help