On Wed, 14 Nov 2018, Christoph Hellwig wrote: > On Thu, Nov 08, 2018 at 12:07:01PM -0500, Mike Snitzer wrote: > > Discussed doing that with Jens and reported as much here: > > > > https://www.redhat.com/archives/dm-devel/2018-November/msg00068.html > > > > And Jens gave additional context for why yet another attempt to switch > > block core's in_flight to percpu counters is doomed (having already been > > proposed and rejected twice): > > > > https://www.redhat.com/archives/dm-devel/2018-November/msg00071.html > > > > And yes, definitely should've cc'd linux-block (now added). > > So how is dm different from the the other 3 handful of drivers using > the make_request interface that the per-cpu counters work for dm and > not the others? We want to make dm-linear (and dm-stripe) completely lockless, because it is used often and we don't want it to degrade performance. DM already uses srcu to handle table changes, so that the fast path doesn't take any locks. And the only one "lock" that is remaining is the "in_flight" variable. As for other drivers, md-raid0 could probably be lockless too (using percpu counting similar to dm). The other raid levels can't be lockless because they need to check the status of the stripe that is being accessed. Mikulas