Messages in this thread | | | Subject | Re: [PATCH -next 3/4] block/rq_qos: use a global mutex to protect rq_qos apis | From | Yu Kuai <> | Date | Mon, 9 Jan 2023 14:37:45 +0800 |
| |
Hi,
在 2023/01/09 9:38, Yu Kuai 写道: >> So, it's not sysfs_lock but sysfs file deletion. When a kernfs, which >> backs >> sysfs, file is removed, it disables future operations and drains all >> inflight ones before returning, so you remove the interface files before >> cleaning up the object that it interacts with, you don't have to worry >> about >> racing against file operations as none can be in flight at that point. >
I understand this know, kernfs_fop_write_iter() will grab kernfs_node->active, and kobject_del() will wait for active to be dropped in kernfs_drain().
>> Sorry that I've been asking you to go round and round but block device >> add/remove paths have always been really tricky and we wanna avoid adding >> more complications if at all possible. Can you see why the device is >> being >> destroyed before the queue attr is removed? >
Sorry that I actually tested with patch 4 applied, and this is a bug introduced by patch 4, my apologies. It set rqos to ERR_PTR() in rq_qos_exit, and follow up rq_qos_issue() just check if rqos is NULL.
I'll wait for your patchset to be apllied, and then send a new version. Just one thing to confirm, do you think it's better to use a global mutex rather than a disk level mutex? I'm not sure because this will cause different cgroup configurations from different disk can't concurrent.
Thanks, Kuai
| |