public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH rfc 0/3] Expose cpu mapping hints to a nvme target port
@ 2017-07-02 15:01 Sagi Grimberg
       [not found] ` <1499007694-7231-1-git-send-email-sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
  0 siblings, 1 reply; 18+ messages in thread
From: Sagi Grimberg @ 2017-07-02 15:01 UTC (permalink / raw)
  To: linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Christoph Hellwig,
	James Smart, Keith Busch, linux-rdma-u79uwXL29TY76Z2rM5mHXA

I've heard feedback from folks on several occasions that we can
improve in a multi-socket target array configuration.

Today, rdma transport simply spread IO threads accross all system cpus
without any specific configuration in mind (same for fc). It isn't really
possible to exclude a nvmet port IO threads affinity to a specific
numa socket which can be useful to reduce the inter-socket DMA traffic.

This can make sense if the user wants to expose a set of backend devices
via a nvme target port (HBA port) which are connected to the same
numa-socket in order to optimize NUMA locality and minimize the inter-socket
DMA traffic.

This RFC exposes a cpu mapping to a specific nvmet port. The user can choose
to provide a affinity hint a to nvme target port that will contain IO threads
to specific cpu cores and the transport will _try_ to enforce it (if it knows
how to). We default to the online cpumap.

Note, this is based on the nvme and rdma msix affinity mapping patches pending
to 4.13.

Feedback is welcome!

Sagi Grimberg (3):
  nvmet: allow assignment of a cpulist for each nvmet port
  RDMA/core: expose cpu affinity based completion vector lookup
  nvmet-rdma: assign cq completion vector based on the port allowed cpus

 drivers/infiniband/core/verbs.c | 41 ++++++++++++++++++++++
 drivers/nvme/target/configfs.c  | 75 +++++++++++++++++++++++++++++++++++++++++
 drivers/nvme/target/nvmet.h     |  4 +++
 drivers/nvme/target/rdma.c      | 40 +++++++++++++++-------
 include/rdma/ib_verbs.h         |  3 ++
 5 files changed, 151 insertions(+), 12 deletions(-)

-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

end of thread, other threads:[~2017-07-13 17:31 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-02 15:01 [PATCH rfc 0/3] Expose cpu mapping hints to a nvme target port Sagi Grimberg
     [not found] ` <1499007694-7231-1-git-send-email-sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
2017-07-02 15:01   ` [PATCH rfc 1/3] nvmet: allow assignment of a cpulist for each nvmet port Sagi Grimberg
2017-07-02 15:01   ` [PATCH rfc 2/3] RDMA/core: expose cpu affinity based completion vector lookup Sagi Grimberg
     [not found]     ` <1499007694-7231-3-git-send-email-sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
2017-07-13 15:50       ` Christoph Hellwig
     [not found]         ` <20170713155000.GA2577-jcswGhMUV9g@public.gmane.org>
2017-07-13 16:30           ` Sagi Grimberg
2017-07-02 15:01   ` [PATCH rfc 3/3] nvmet-rdma: assign cq completion vector based on the port allowed cpus Sagi Grimberg
     [not found]     ` <1499007694-7231-4-git-send-email-sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
2017-07-13 15:50       ` Christoph Hellwig
     [not found]         ` <20170713155003.GB2577-jcswGhMUV9g@public.gmane.org>
2017-07-13 16:37           ` Sagi Grimberg
     [not found]             ` <da6a9e33-163e-4964-8305-614b7b830c17-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
2017-07-13 17:16               ` Christoph Hellwig
2017-07-13 17:19           ` Chuck Lever
     [not found]             ` <C2439AB7-BC2E-4B71-87CA-3F8313282828-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2017-07-13 17:24               ` Christoph Hellwig
     [not found]                 ` <20170713172437.GA5236-jcswGhMUV9g@public.gmane.org>
2017-07-13 17:31                   ` Chuck Lever
2017-07-02 16:30   ` [PATCH rfc 0/3] Expose cpu mapping hints to a nvme target port Max Gurtovoy
     [not found]     ` <b77be367-6cbc-c12c-8135-eddff0aec90e-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2017-07-02 17:41       ` Sagi Grimberg
     [not found]         ` <e33f16a7-4e1d-7fd6-6d2c-5a5bac450c73-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
2017-07-03  9:52           ` Max Gurtovoy
     [not found]             ` <8a5f82d8-e475-5f0e-9110-8b2c68580988-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2017-07-03 10:14               ` Sagi Grimberg
2017-07-10  6:08   ` Sagi Grimberg
     [not found]     ` <70d04521-df66-d847-1f46-c35ba5de4053-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
2017-07-11  7:27       ` Leon Romanovsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox