[PATCH v2 3/2 nvme-cli] fabrics: re-read the discovery log page when a discovery controller reconnected

Belanger, Martin Martin.Belanger at dell.com
Tue Sep 27 03:50:08 PDT 2022


> On Thu, Sep 22, 2022 at 11:15:38AM +0300, Sagi Grimberg wrote:
> > When using persistent discovery controllers, if the discovery
> > controller loses connectivity and manage to reconnect after a while,
> > we need to retrieve again the discovery log page in order to learn
> > about possible changes that may have occurred during this time as
> > discovery log change events were lost.
> >
> > Upon reception of a udev EVENT=rediscover we can kickstart discovery
> > on the existing discovery controller device node that generated the event.
> >
> > Signed-off-by: Sagi Grimberg <sagi at grimberg.me>
> > ---
> >  nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules.in | 7 +++++++
> >  1 file changed, 7 insertions(+)
> >
> > diff --git a/nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules.in
> > b/nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules.in
> > index 434cc080ffe3..93e438863672 100644
> > --- a/nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules.in
> > +++ b/nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules.in
> > @@ -17,3 +17,10 @@ ACTION=="change", SUBSYSTEM=="nvme",
> > ENV{NVME_AEN}=="0x70f002",\  ACTION=="change", SUBSYSTEM=="fc",
> ENV{FC_EVENT}=="nvmediscovery", \
> >    ENV{NVMEFC_HOST_TRADDR}=="*",  ENV{NVMEFC_TRADDR}=="*", \
> >    RUN+="@SYSTEMCTL@ --no-block start nvmf-connect at --device=none\t--
> transport=fc\t--traddr=$env{NVMEFC_TRADDR}\t--trsvcid=none\t--host-
> traddr=$env{NVMEFC_HOST_TRADDR}.service"
> > +
> > +# A discovery controller just (re)connected, re-read the discovery
> > +log change to # check if there were any changes since it was last
> connected.
> > +ACTION=="change", SUBSYSTEM=="nvme",
> ENV{NVME_EVENT}=="rediscover",
> > +ATTR{cntrltype}=="discovery", \
> > +  ENV{NVME_TRTYPE}=="*", ENV{NVME_TRADDR}=="*", \
> > +  ENV{NVME_TRSVCID}=="*", ENV{NVME_HOST_TRADDR}=="*", \
> > +  RUN+="@SYSTEMCTL@ --no-block start nvmf-connect at --
> device=$kernel\t--transport=$env{NVME_TRTYPE}\t--
> traddr=$env{NVME_TRADDR}\t--trsvcid=$env{NVME_TRSVCID}\t--host-
> traddr=$env{NVME_HOST_TRADDR}.service"
> 
> I was about to apply the change. Though I just added the change from Martin
> where the --host_iface argument is added to the first nvme rule.
> 
> https://urldefense.com/v3/__https://github.com/linux-nvme/nvme-
> cli/pull/1675__;!!LpKI!kH_mYipHgbqgVMaCaU3Jo03OOkaawd03WAxINmKpN
> 1LsV_CQAbAXkX24oxXLrHDNUfwUuQLFcN6KriuoJuY$  [github[.]com]
> 
> I wonder to we need to it to append the --host_iface argument as well.
Yes, the --host-iface should be added for this case too. 
Martin

> 
> Daniel



More information about the Linux-nvme mailing list