Re: [PATCH 4/6] nvme-mpath: support controller crd when failing over request
Sagi Grimberg <[email protected]>
| Newsgroups | org.infradead.lists.linux-nvme |
|---|---|
| Message-ID | <[email protected]> |
> > + /* no CRD or timer allocation failed, fallback to immediate failover */
> > + if (!fot) {
> > + spin_lock_irqsave(&ns->head->requeue_lock, flags);
> > + blk_steal_bios(&ns->head->requeue_list, req);
> > + spin_unlock_irqrestore(&ns->head->requeue_lock, flags);
> > + kblockd_schedule_work(&ns->head->requeue_work);
> > + }
>
> Yikes. Allocation during failover is not going to make you friends.
Well, it is a fairly rare event, and the fallback is exactly what we
do today...
>
> And this whole mechanism looks pretty similar what we did over at
> implementing CCR. Can you use the mechanism from there?
How is this similar? It is effectively creating a container for
bio_list and timer to requeue them when the timer expires...