On Tue 02-06-20 15:10:33, Luis Chamberlain wrote: > On Tue, Jun 02, 2020 at 02:17:34PM +0000, Luis Chamberlain wrote: > > On Tue, Jun 02, 2020 at 09:12:05AM +0200, Jan Kara wrote: > > > Here is version of my patch rebased on top of Luis' blktrace fixes. Luis, if > > > the patch looks fine, can you perhaps include it in your series since it seems > > > you'll do another revision of your series due to discussion over patch 5/7? > > > Thanks! > > > > Sure thing, will throw in the pile. > > I've updated the commit log as follows as well, as I think its important > to annotate that the check for processing of the blktrace only makes > sense if it was not set. Let me know if this is fine. The commit log > is below. Thanks! The changelog looks good to me. Honza > > From: Jan Kara <jack@xxxxxxx> > Date: Tue, 2 Jun 2020 09:12:05 +0200 > Subject: [PATCH 1/8] blktrace: Avoid sparse warnings when assigning > q->blk_trace > > Mostly for historical reasons, q->blk_trace is assigned through xchg() > and cmpxchg() atomic operations. Although this is correct, sparse > complains about this because it violates rcu annotations since commit > c780e86dd48e ("blktrace: Protect q->blk_trace with RCU") which started > to use rcu for accessing q->blk_trace. Furthermore there's no real need > for atomic operations anymore since all changes to q->blk_trace happen > under q->blk_trace_mutex *and* since it also makes more sense to check > if q->blk_trace is set with the mutex held *earlier* and this is now > done through the patch titled "blktrace: break out on concurrent calls" > and was already before on blk_trace_setup_queue(). > > So let's just replace xchg() with rcu_replace_pointer() and cmpxchg() > with explicit check and rcu_assign_pointer(). This makes the code more > efficient and sparse happy. > > Reported-by: kbuild test robot <lkp@xxxxxxxxx> > Signed-off-by: Jan Kara <jack@xxxxxxx> > Signed-off-by: Luis Chamberlain <mcgrof@xxxxxxxxxx> -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR