On Thu, 2017-05-25 at 11:42 -0600, Jens Axboe wrote:
> Why not make it
>
> /* Must be the last member - see also blk_mq_hw_ctx_size(). */
> struct srcu_struct queue_rq_srcu[0];
>
> and fixup blk_mq_hw_ctx_size()
>
> static int blk_mq_hw_ctx_size(struct request_queue *q)
> {
> int size = sizeof(struct blk_mq_hw_ctx);
>
> if (q->tag_set->flags & BLK_MQ_F_BLOCKING)
> size += sizeof(struct srcu_struct);
>
> return size;
> }
>
> I think that'd be cleaner. Keep the end-of-struct checking, just to be
> on the safe side.
>
> Neither one is super pretty though, and still doesn't fix the fact that
> the srcu_struct is _half_ the blk_mq_hw_ctx in total.
Hello Jens,
Making these changes seems like a good idea to me. I will make these changes
and post a patch.
Bart.