From mboxrd@z Thu Jan 1 00:00:00 1970 From: hare@suse.de (Hannes Reinecke) Date: Sun, 24 Feb 2019 18:13:17 +0100 Subject: [PATCH 1/3 rfc] nvme-fabrics: allow discovery subsystems accept a kato In-Reply-To: <20190223023117.20517-2-sagi@grimberg.me> References: <20190223023117.20517-1-sagi@grimberg.me> <20190223023117.20517-2-sagi@grimberg.me> Message-ID: On 2/23/19 3:31 AM, Sagi Grimberg wrote: > This modifies the behavior of discovery subsystems to accept > a kato as a preparation to support discovery log change > events. This also means that now every discovery controller > will have a default kato value, and for non-persistent connections > the host needs to pass in a zero kato value (keep_alive_tmo=0). > > Signed-off-by: Sagi Grimberg > --- > drivers/nvme/host/fabrics.c | 12 ++---------- > 1 file changed, 2 insertions(+), 10 deletions(-) > > diff --git a/drivers/nvme/host/fabrics.c b/drivers/nvme/host/fabrics.c > index 70c09abcfcbf..9d53ea4939cd 100644 > --- a/drivers/nvme/host/fabrics.c > +++ b/drivers/nvme/host/fabrics.c > @@ -389,8 +389,8 @@ int nvmf_connect_admin_queue(struct nvme_ctrl *ctrl) > * Set keep-alive timeout in seconds granularity (ms * 1000) > * and add a grace period for controller kato enforcement > */ > - cmd.connect.kato = ctrl->opts->discovery_nqn ? 0 : > - cpu_to_le32((ctrl->kato + NVME_KATO_GRACE) * 1000); > + cmd.connect.kato = ctrl->kato ? > + cpu_to_le32((ctrl->kato + NVME_KATO_GRACE) * 1000) : 0; > > if (ctrl->opts->disable_sqflow) > cmd.connect.cattr |= NVME_CONNECT_DISABLE_SQFLOW; > @@ -746,13 +746,6 @@ static int nvmf_parse_options(struct nvmf_ctrl_options *opts, > pr_warn("keep_alive_tmo 0 won't execute keep alives!!!\n"); > } > opts->kato = token; > - > - if (opts->discovery_nqn && opts->kato) { > - pr_err("Discovery controllers cannot accept KATO != 0\n"); > - ret = -EINVAL; > - goto out; > - } > - > break; > case NVMF_OPT_CTRL_LOSS_TMO: > if (match_int(args, &token)) { > @@ -873,7 +866,6 @@ static int nvmf_parse_options(struct nvmf_ctrl_options *opts, > } > > if (opts->discovery_nqn) { > - opts->kato = 0; > opts->nr_io_queues = 0; > opts->nr_write_queues = 0; > opts->nr_poll_queues = 0; > Reviewed-by: Hannes Reinecke Cheers, Hannes