Re: [PATCH 1/1] block: System crashes when cpu hotplug + bouncing port

From: Ming Lei
Date: Tue Jun 29 2021 - 05:01:42 EST


On Tue, Jun 29, 2021 at 10:35:49AM +0200, Daniel Wagner wrote:
> On Tue, Jun 29, 2021 at 10:25:43AM +0200, Daniel Wagner wrote:
> > On Tue, Jun 29, 2021 at 11:47:55AM +0800, Ming Lei wrote:
> > > > >>data.ctx = __blk_mq_get_ctx(q, cpu);
> > > > cpu=2048 if hctx_idx = 4
> > >
> > > Yeah, that is the issue I mentioned, any CPU in hctx->cpumask becomes
> > > offline, please try the following patch and see if it makes a
> > > difference:
> >
> > Given that cpumask_first_and() will return nr_cpu_ids in this case,
> > can't we just bail out here and have to caller handle the error?
>
> To answer my own question, you want to avoid adding the if into the
> hotpath.

No, this way fails the request allocation, which isn't expected from
NVMe fc/rdma/tcp/loop, since io queue can't be connected in this way.


Thanks,
Ming