Re: [PATCH 4/7] block: replace REQ_THROTTLED with a bio flag

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Oct 20, 2016 at 8:12 AM, Christoph Hellwig <hch@xxxxxx> wrote:
> It's the last bio-only REQ_* flag, and we have space for it in the bio
> bi_flags field.
>
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> ---
>  block/blk-throttle.c      | 10 +++++-----
>  include/linux/blk_types.h |  8 ++------
>  2 files changed, 7 insertions(+), 11 deletions(-)
>
> diff --git a/block/blk-throttle.c b/block/blk-throttle.c
> index a3ea826..a6bb4fe 100644
> --- a/block/blk-throttle.c
> +++ b/block/blk-throttle.c
> @@ -818,13 +818,13 @@ static void throtl_charge_bio(struct throtl_grp *tg, struct bio *bio)
>         tg->io_disp[rw]++;
>
>         /*
> -        * REQ_THROTTLED is used to prevent the same bio to be throttled
> +        * BIO_THROTTLED is used to prevent the same bio to be throttled
>          * more than once as a throttled bio will go through blk-throtl the
>          * second time when it eventually gets issued.  Set it when a bio
>          * is being charged to a tg.
>          */
> -       if (!(bio->bi_opf & REQ_THROTTLED))
> -               bio->bi_opf |= REQ_THROTTLED;
> +       if (!bio_flagged(bio, BIO_THROTTLED))
> +               bio_set_flag(bio, BIO_THROTTLED);
>  }
>
>  /**
> @@ -1401,7 +1401,7 @@ bool blk_throtl_bio(struct request_queue *q, struct blkcg_gq *blkg,
>         WARN_ON_ONCE(!rcu_read_lock_held());
>
>         /* see throtl_charge_bio() */
> -       if ((bio->bi_opf & REQ_THROTTLED) || !tg->has_rules[rw])
> +       if (bio_flagged(bio, BIO_THROTTLED) || !tg->has_rules[rw])
>                 goto out;
>
>         spin_lock_irq(q->queue_lock);
> @@ -1480,7 +1480,7 @@ bool blk_throtl_bio(struct request_queue *q, struct blkcg_gq *blkg,
>          * being issued.
>          */
>         if (!throttled)
> -               bio->bi_opf &= ~REQ_THROTTLED;
> +               bio_clear_flag(bio, BIO_THROTTLED);
>         return throttled;
>  }
>
> diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
> index 44f9bca..6df722d 100644
> --- a/include/linux/blk_types.h
> +++ b/include/linux/blk_types.h
> @@ -119,6 +119,8 @@ struct bio {
>  #define BIO_QUIET      6       /* Make BIO Quiet */
>  #define BIO_CHAIN      7       /* chained bio, ->bi_remaining in effect */
>  #define BIO_REFFED     8       /* bio has elevated ->bi_cnt */
> +#define BIO_THROTTLED  9       /* This bio has already been subjected to
> +                                * throttling rules. Don't do it again. */
>
>  /*
>   * Flags starting here get preserved by bio_reset() - this includes
> @@ -165,10 +167,6 @@ enum rq_flag_bits {
>         __REQ_PREFLUSH,         /* request for cache flush */
>         __REQ_RAHEAD,           /* read ahead, can fail anytime */
>
> -       /* bio only flags */
> -       __REQ_THROTTLED,        /* This bio has already been subjected to
> -                                * throttling rules. Don't do it again. */
> -
>         /* request only flags */
>         __REQ_SORTED,           /* elevator knows about this request */
>         __REQ_SOFTBARRIER,      /* may not be passed by ioscheduler */
> @@ -213,8 +211,6 @@ enum rq_flag_bits {
>         (REQ_NOMERGE | REQ_STARTED | REQ_SOFTBARRIER | REQ_PREFLUSH | REQ_FUA | REQ_FLUSH_SEQ)
>
>  #define REQ_RAHEAD             (1ULL << __REQ_RAHEAD)
> -#define REQ_THROTTLED          (1ULL << __REQ_THROTTLED)
> -
>  #define REQ_SORTED             (1ULL << __REQ_SORTED)
>  #define REQ_SOFTBARRIER                (1ULL << __REQ_SOFTBARRIER)
>  #define REQ_FUA                        (1ULL << __REQ_FUA)
> --
> 2.1.4

Reviewed-by: Shaun Tancheff <shaun.tancheff@xxxxxxxxxxx>

>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-block" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  https://urldefense.proofpoint.com/v2/url?u=http-3A__vger.kernel.org_majordomo-2Dinfo.html&d=DQIBAg&c=IGDlg0lD0b-nebmJJ0Kp8A&r=Wg5NqlNlVTT7Ugl8V50qIHLe856QW0qfG3WVYGOrWzA&m=vdttsJHZ_74ySmGvUQGDoLiS8hCkVc7DWtTXD9anZHo&s=n-MuaL5Z-HhM5HniQEMNsXpIC7OqTDVe6Z3_iIfvKo0&e=



-- 
Shaun Tancheff
--
To unsubscribe from this list: send the line "unsubscribe linux-block" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux