[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZK6nm2koR+TfeMcs@ovpn-8-25.pek2.redhat.com>
Date: Wed, 12 Jul 2023 21:16:11 +0800
From: Ming Lei <ming.lei@...hat.com>
To: Christoph Hellwig <hch@....de>
Cc: Jens Axboe <axboe@...nel.dk>, linux-nvme@...ts.infradead.org,
"Martin K . Petersen" <martin.petersen@...cle.com>,
linux-scsi@...r.kernel.org, linux-block@...r.kernel.org,
Wen Xiong <wenxiong@...ux.ibm.com>,
Keith Busch <kbusch@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/8] blk-mq: add blk_mq_max_nr_hw_queues()
On Wed, Jul 12, 2023 at 03:00:17PM +0200, Christoph Hellwig wrote:
> On Wed, Jul 12, 2023 at 08:54:48PM +0800, Ming Lei wrote:
> > +/* Max nr_hw_queues for each hw queue type */
> > +unsigned int blk_mq_max_nr_hw_queues(void)
> > +{
> > + if (is_kdump_kernel())
> > + return 1;
> > + return nr_cpu_ids;
>
> Again, these is_kdump_kernel hacks don't make any sense. The amount
> of maximum available CPU needs to come through a proper API, and we
> need to use it, not add hacks like this.
>
> The only thing that makes sense here is to find the last CPU
> in cpu_possible_mask, and for kdump kernels to ensure that number
> is 1 or whatever low value they want.
It doesn't matter how many cpus are available, given at least one
cpu is online.
The problem is that blk_mq_alloc_tag_set() forces to set nr_hw_queues
as 1 for kdump kernel, that is why blk_mq_max_nr_hw_queues() has to
return 1 for kdump kernel.
We have to tell driver that blk-mq only supports 1 queue for kdump
kernel.
Or:
Thomas, can we disable managed irq for kdump kernel and switch to
non-managed irq? Then we can avoid driver's change. I'd suggest
this way if it is possible.
Thanks,
Ming
Powered by blists - more mailing lists