On 5/29/22 10:20 AM, Hao Xu wrote: > From: Hao Xu <howeyxu@xxxxxxxxxxx> > > From: Hao Xu <howeyxu@xxxxxxxxxxx> > > Use per list lock for cancel_hash, this removes some completion lock > invocation and remove contension between different cancel_hash entries Interesting, do you have any numbers on this? Also, I'd make a hash bucket struct: struct io_hash_bucket { spinlock_t lock; struct hlist_head list; }; rather than two separate structs, that'll have nicer memory locality too and should further improve it. Could be done as a prep patch with the old locking in place, making the end patch doing the per-bucket lock simpler as well. Hmm? -- Jens Axboe