Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp8651894imu; Tue, 4 Dec 2018 11:50:42 -0800 (PST) X-Google-Smtp-Source: AFSGD/U4qhunGQ3tNKQ9CTnwsB2ID/aq/snH9yjEu4rzicQYI6UIa/1HVY1x+w7TSn11oCdgwBlC X-Received: by 2002:a17:902:784d:: with SMTP id e13mr21632636pln.188.1543953042046; Tue, 04 Dec 2018 11:50:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543953042; cv=none; d=google.com; s=arc-20160816; b=Jch+p23zgyPTaoKKivCHBg3UcvGIAptD52TDqWe2DZKu3dg8mQBawf9UhlfuE9s686 M8Av8e82hNCZk9QFRWJsI+Dn8oLB70BOhiXLjPoUkH4lx7M9D3dU2OJCIuoqM9ECeSZW XtPudnw4voNWNJPWnAl7YGxbTi7zXA9VJSZoov+Nn+SGtUpFcvWtFEdzQEf1tJ5LObty DKZtlW5BABlY4sdmhX/mrPs7FLHqVAH8P2Sjrj/Nr9d7hpIfdy3v5eOWxTAAFwlPZJEa w/5ZyjSDAv1/5GMhMeBGj5xUqmdWE9egyBDj//oz0D2ohsZnILPeWjaxamWjO1Pw3j6t A7Sw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=s+VP0A474Tn5W27kbi2McsJ3o8jRy8Pe/xLsJObravE=; b=mTgCWbdzahp94hxK3Q/RbFdU4/NNxcC1ccpbDuiA3pM+9EN1aeWJwO58qzcHAVEzZg bBzNAZ36pbJFNz/qRpJKcVR4+lGVOmXPJQurTlHJwxaX1knJhJxjZr5a8ZrTQxZhkSbv Oh+ah5rz2rOm+Xe3dLmDN8DDz6puU2Pekm2FxWQdCUReq7IIJ0IFjPBx/lfcSePPFXzg qzqCh5c5OUtbcmIDOhUX0nsD0VfU3PMZZrIcmYjF3yLDEn4KgeNT4GzUjBTrucvE5kel bvgLsUsSlTaX/ibvM60Fb0BB+AdKRJTx1j/5tr4CVxN2Q4rZ+AZsv27947oQFLp2Gxi5 UHcQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@toxicpanda-com.20150623.gappssmtp.com header.s=20150623 header.b=TXuxE6OX; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j91si19131729pld.395.2018.12.04.11.50.27; Tue, 04 Dec 2018 11:50:42 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@toxicpanda-com.20150623.gappssmtp.com header.s=20150623 header.b=TXuxE6OX; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726113AbeLDTsn (ORCPT + 99 others); Tue, 4 Dec 2018 14:48:43 -0500 Received: from mail-yw1-f65.google.com ([209.85.161.65]:46106 "EHLO mail-yw1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725899AbeLDTsn (ORCPT ); Tue, 4 Dec 2018 14:48:43 -0500 Received: by mail-yw1-f65.google.com with SMTP id t13so7475583ywe.13 for ; Tue, 04 Dec 2018 11:48:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toxicpanda-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=s+VP0A474Tn5W27kbi2McsJ3o8jRy8Pe/xLsJObravE=; b=TXuxE6OXamLMpftTaSywcaxH6buXuteXDw6YAvhwyWP5Ilhszc8nNplZozwycnERdt K9wa6Z5NLf/T6bTOYzzx6TcBWmsZIiOw1anKCR4zK+38Kp2HZfHb8fSiBqrRlpqbk7Wh NvvLyWWYzflnENQXLFCC/Zhz/NQ9LdvjDxdaf+P+sXS3wTDCGZYp5LVgys7slXZWF9Rt AOAvS074N3tCvoR9yJNHjkgz8DeL6t29p1dj3hKDslsHQy8qn01MJxlDY/cmHOkUqdyE XLY0MkGS+wKuajdXZ2G0IYPpmuTliseWMKwHRd8+V+YJfcoixFepVBEHMsT8w2wXt1qB Oulw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=s+VP0A474Tn5W27kbi2McsJ3o8jRy8Pe/xLsJObravE=; b=oiewY7IoVyttT1kOTzMs4JO5zTYnJ3hYdGskYZGKjTLOmSZd7HpwyTQW4yw+NglXbF tghQpLScwweqp8bv9Oo80NDW9nDLP6DLxM3nMO7G+vjMmMbU00EpMPax2aAgGO8Du8v4 xo9akqAXs9xBdII4Dd2A2qDXwQhdAhuKL11V0lTZLCfZCetc42BQCD20GItaQ68UprAQ UKiddy5abKEm8L1pWa33+wEmL8PiSx3gkgCmr/57GoZtk2b3CpxczZ+Q55frt3TLpE1U toTxSiWywldGWG3/ao+ogwG6jxmnHQVIEZgYLwNWMM0U5qugqYvjGc5wZQ9NZuwJYZOY p1nw== X-Gm-Message-State: AA+aEWYrOTemvrNxhxCWCLRSx7Ae78z8ovSn1IqLRwjyxe0/ZS/8HvuJ Z3X9vE/XYdTQF7I82j+BfBn7UQ== X-Received: by 2002:a81:a4d1:: with SMTP id b200mr20349089ywh.316.1543952921817; Tue, 04 Dec 2018 11:48:41 -0800 (PST) Received: from localhost ([107.15.81.208]) by smtp.gmail.com with ESMTPSA id g70sm5827232ywe.105.2018.12.04.11.48.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 04 Dec 2018 11:48:40 -0800 (PST) Date: Tue, 4 Dec 2018 14:48:39 -0500 From: Josef Bacik To: Dennis Zhou Cc: Jens Axboe , Tejun Heo , Johannes Weiner , Josef Bacik , kernel-team@fb.com, linux-block@vger.kernel.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 06/14] blkcg: associate blkg when associating a device Message-ID: <20181204194838.ylk546legwikfrik@MacBook-Pro-91.local> References: <20181204183600.99746-1-dennis@kernel.org> <20181204183600.99746-7-dennis@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181204183600.99746-7-dennis@kernel.org> User-Agent: NeoMutt/20180716 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Dec 04, 2018 at 01:35:52PM -0500, Dennis Zhou wrote: > Previously, blkg association was handled by controller specific code in > blk-throttle and blk-iolatency. However, because a blkg represents a > relationship between a blkcg and a request_queue, it makes sense to keep > the blkg->q and bio->bi_disk->queue consistent. > > This patch moves association into the bio_set_dev macro(). This should > cover the majority of cases where the device is set/changed keeping the > two pointers consistent. Fallback code is added to > blkcg_bio_issue_check() to catch any missing paths. > > Signed-off-by: Dennis Zhou > --- > block/bio.c | 1 + > block/blk-iolatency.c | 4 +--- > block/blk-throttle.c | 1 - > include/linux/bio.h | 2 ++ > include/linux/blk-cgroup.h | 11 +++-------- > 5 files changed, 7 insertions(+), 12 deletions(-) > > diff --git a/block/bio.c b/block/bio.c > index 41ebb3f8e2fc..1e852ab904aa 100644 > --- a/block/bio.c > +++ b/block/bio.c > @@ -2074,6 +2074,7 @@ void bio_associate_blkg(struct bio *bio) > > rcu_read_unlock(); > } > +EXPORT_SYMBOL_GPL(bio_associate_blkg); > > /** > * bio_disassociate_task - undo bio_associate_current() > diff --git a/block/blk-iolatency.c b/block/blk-iolatency.c > index cdbd10564e66..e6b47c255521 100644 > --- a/block/blk-iolatency.c > +++ b/block/blk-iolatency.c > @@ -472,14 +472,12 @@ static void check_scale_change(struct iolatency_grp *iolat) > static void blkcg_iolatency_throttle(struct rq_qos *rqos, struct bio *bio) > { > struct blk_iolatency *blkiolat = BLKIOLATENCY(rqos); > - struct blkcg_gq *blkg; > + struct blkcg_gq *blkg = bio->bi_blkg; > bool issue_as_root = bio_issue_as_root_blkg(bio); > > if (!blk_iolatency_enabled(blkiolat)) > return; > > - bio_associate_blkg(bio); > - blkg = bio->bi_blkg; > bio_issue_init(&bio->bi_issue, bio_sectors(bio)); > > while (blkg && blkg->parent) { > diff --git a/block/blk-throttle.c b/block/blk-throttle.c > index 228c3a007ebc..1c6529df2002 100644 > --- a/block/blk-throttle.c > +++ b/block/blk-throttle.c > @@ -2118,7 +2118,6 @@ static inline void throtl_update_latency_buckets(struct throtl_data *td) > static void blk_throtl_assoc_bio(struct bio *bio) > { > #ifdef CONFIG_BLK_DEV_THROTTLING_LOW > - bio_associate_blkg(bio); > bio_issue_init(&bio->bi_issue, bio_sectors(bio)); > #endif > } > diff --git a/include/linux/bio.h b/include/linux/bio.h > index 62715a5a4f32..6ee2ea8b378a 100644 > --- a/include/linux/bio.h > +++ b/include/linux/bio.h > @@ -491,12 +491,14 @@ do { \ > bio_clear_flag(bio, BIO_THROTTLED);\ > (bio)->bi_disk = (bdev)->bd_disk; \ > (bio)->bi_partno = (bdev)->bd_partno; \ > + bio_associate_blkg(bio); \ > } while (0) > > #define bio_copy_dev(dst, src) \ > do { \ > (dst)->bi_disk = (src)->bi_disk; \ > (dst)->bi_partno = (src)->bi_partno; \ > + bio_clone_blkcg_association(dst, src); \ > } while (0) > > #define bio_dev(bio) \ > diff --git a/include/linux/blk-cgroup.h b/include/linux/blk-cgroup.h > index c08e96e521ed..3c87ae71156f 100644 > --- a/include/linux/blk-cgroup.h > +++ b/include/linux/blk-cgroup.h > @@ -802,21 +802,17 @@ static inline bool blk_throtl_bio(struct request_queue *q, struct blkcg_gq *blkg > static inline bool blkcg_bio_issue_check(struct request_queue *q, > struct bio *bio) > { > - struct blkcg *blkcg; > struct blkcg_gq *blkg; > bool throtl = false; > > - rcu_read_lock(); > + if (!bio->bi_blkg) > + bio_associate_blkg(bio); > Should we maybe WARN_ON_ONCE() here since this really shouldn't happen? Otherwise you can add Reviewed-by: Josef Bacik Thanks, Josef