On Thu, May 25, 2017 at 11:42:59AM -0600, Jens Axboe wrote:
> On 05/25/2017 11:24 AM, Bart Van Assche wrote:
> > On Thu, 2017-05-25 at 17:09 +0800, Ming Lei wrote:
> >> Another big issue is that 'srcu_struct' is very big, which shouldn't
> >> be embedded into hctx, since we only have one real user
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)
> {
>
On 05/25/2017 11:24 AM, Bart Van Assche wrote:
> On Thu, 2017-05-25 at 17:09 +0800, Ming Lei wrote:
>> Another big issue is that 'srcu_struct' is very big, which shouldn't
>> be embedded into hctx, since we only have one real user of
>> BLK_MQ_F_BLOCKING.
>>
>> So I will fix that too.
>
> Hello
On 05/25/2017 11:24 AM, Bart Van Assche wrote:
> On Thu, 2017-05-25 at 17:09 +0800, Ming Lei wrote:
>> Another big issue is that 'srcu_struct' is very big, which shouldn't
>> be embedded into hctx, since we only have one real user of
>> BLK_MQ_F_BLOCKING.
>>
>> So I will fix that too.
>
> Hello
On Thu, 2017-05-25 at 17:09 +0800, Ming Lei wrote:
> Another big issue is that 'srcu_struct' is very big, which shouldn't
> be embedded into hctx, since we only have one real user of
> BLK_MQ_F_BLOCKING.
>
> So I will fix that too.
Hello Ming,
Is something like the (untested) patch below
On Thu, May 25, 2017 at 05:24:54AM +, Bart Van Assche wrote:
> On Thu, 2017-05-25 at 12:21 +0800, Ming Lei wrote:
> > One big problem of blk_mq_quiesce_queue() is that it
> > can't prevent .queue_rq() in direct issue path from
> > being run even though hw queues are stopped by
> >
On Thu, 2017-05-25 at 12:21 +0800, Ming Lei wrote:
> One big problem of blk_mq_quiesce_queue() is that it
> can't prevent .queue_rq() in direct issue path from
> being run even though hw queues are stopped by
> blk_mq_quiesce_queue().
That's wrong. All what's needed to prevent that