On 01/16/2018 01:57 PM, jianchao.wang wrote:
> Hi Max
> 
> Thanks for your kindly comment.
> 
> On 01/15/2018 09:36 PM, Max Gurtovoy wrote:
>>>>>       case NVME_CTRL_RECONNECTING:
>>>>>           switch (old_state) {
>>>>>           case NVME_CTRL_LIVE:
>>>>>           case NVME_CTRL_RESETTING:
>>>>> +        case NVME_CTRL_RESET_PREPARE:
>>
>> I forget to add that we shouldn't move from RESET_PREPARE to RECONNECTING 
>> (with my suggestion to rdma.c).
>> Also need to consider adding another check in nvmf_check_init_req 
>> (/drivers/nvme/host/fabrics.h) for the new state.
> 
> After Sagi's nvme-rdma: fix concurrent reset and reconnect, the rdma ctrl 
> state is changed to RECONNECTING state
> after some clearing and shutdown work, then some initializing procedure,  no 
> matter reset work path or error recovery path.
> The fc reset work also does the same thing.
> So if we define the range that RESET_PREPARE includes scheduling gap and 
> disable and clear work, RESETTING includes initializing
> procedure,  RECONNECTING is very similar with RESETTING.
> 
> Maybe we could do like this;
> In nvme fc/rdma
> - set state to RESET_PREPARE, queue reset_work/err_work 
> - clear/shutdown works, set state to RECONNECTING
> - initialization, set state to LIVE
> 
> In nvme pci
> - set state to RESET_PREPARE, queue reset_work
> - clear/shutdown works, set state to RESETTING
> - initialization, set state to LIVE


Hi Christoph, Keith, Sagi

Can you please comment on this ?

Thanks in advance.

Jianchao

Reply via email to