All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] traffic based keep alive support (TP 4024)
@ 2018-09-28  1:15 Sagi Grimberg
  2018-09-28  1:15 ` [PATCH 1/4] nvme: introduce ctrl attributes enumeration Sagi Grimberg
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Sagi Grimberg @ 2018-09-28  1:15 UTC (permalink / raw)


Traffic Based Keep Alive TP (4024) was ratified recently. The technical
proposal introduces a mode where keep alive commands may be omitted
based on the presence of admin or io traffic during the keep alive timeout
period. The rational is that normal command execution is sufficient
indication of host, controller and transport health so the keep alive command
is redundant.

Moreover, There is no way to guarantee in the various transports that a
keep alive command will not be starved by heavy traffic, causing the
keep alive timeout to expire. There were a number bug reports on
linux nvme community on this exact issue.

The implementation simply a controller-wide indicator that is cleared
upon reset of the keep alive timer and set when a command (target) or
completion (host) is processed. When the keep alive timer expires, we
check if any command/completion were processed, we restart the keep
alive timer even if a keep alive command was not executed.

Sagi Grimberg (4):
  nvme: introduce ctrl attributes enumeration
  nvmet: support for traffic based keep-alive
  nvme-core: cache controller attributes
  nvme-core: support traffic based keep-alive based on controller
    support

 drivers/nvme/host/core.c        | 12 ++++++++++++
 drivers/nvme/host/nvme.h        |  2 ++
 drivers/nvme/target/admin-cmd.c |  3 ++-
 drivers/nvme/target/core.c      | 12 ++++++++++++
 drivers/nvme/target/nvmet.h     |  2 ++
 include/linux/nvme.h            |  5 +++++
 6 files changed, 35 insertions(+), 1 deletion(-)

-- 
2.17.1

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-10-19  6:30 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-28  1:15 [PATCH 0/4] traffic based keep alive support (TP 4024) Sagi Grimberg
2018-09-28  1:15 ` [PATCH 1/4] nvme: introduce ctrl attributes enumeration Sagi Grimberg
2018-09-28  1:15 ` [PATCH 2/4] nvmet: support for traffic based keep-alive Sagi Grimberg
2018-09-28  1:15 ` [PATCH 3/4] nvme-core: cache controller attributes Sagi Grimberg
2018-09-28  1:15 ` [PATCH 4/4] nvme-core: support traffic based keep-alive based on controller support Sagi Grimberg
2018-10-17  7:05   ` Christoph Hellwig
2018-10-19  0:38     ` Sagi Grimberg
2018-10-19  6:00       ` Christoph Hellwig
2018-10-19  6:30         ` Sagi Grimberg
2018-10-16  1:07 ` [PATCH 0/4] traffic based keep alive support (TP 4024) Sagi Grimberg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.