From: Sagi Grimberg <sagig-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
To: Bart Van Assche
<bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>,
open-iscsi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
Mike Christie <michaelc-hcNo3dDEHLuVc3sceRu5cw@public.gmane.org>,
"Nicholas A. Bellinger"
<nab-IzHhD5pYlfBP7FQvKIMDCQ@public.gmane.org>
Cc: James Bottomley
<James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>,
lsf-pc-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
linux-scsi <linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
target-devel
<target-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Oren Duer <oren-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
Or Gerlitz <ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: Re: [Lsf-pc] [LSF/MM TOPIC] iSCSI MQ adoption via MCS discussion
Date: Tue, 13 Jan 2015 11:46:44 +0200 [thread overview]
Message-ID: <54B4E984.5000106@dev.mellanox.co.il> (raw)
In-Reply-To: <54B3C47E.6010109-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
On 1/12/2015 2:56 PM, Bart Van Assche wrote:
> On 01/11/15 10:40, Sagi Grimberg wrote:
>> I would say there is no need for specific coordination from iSCSI PoV.
>> This is exactly what flow steering is designed for. As I see it, in
>> order to get the TX/RX to match rings, the user can attach 5-tuple rules
>> (using standard ethtool) to steer packets to the right rings.
>
> Hello Sagi,
>
> Can the 5-tuple rules be chosen such that it is guaranteed that the
> sockets used to implement per-CPU queues are spread evenly over MSI-X
> completion vectors ? If not, would it help to add a socket option to the
> Linux network stack that allows to select the TX ring explicitly, just
> like ib_create_cq() in the Linux RDMA stack allows to select a
> completion vector explicitly ? My concerns are as follows:
> - If the number of queues exceeds the number of MSI-X vectors then I
> expect that it will be much easier to guarantee even spreading by
> selecting tx queues explicitly instead of relying on a hashing scheme.
> - On multi-socket systems it is important to process completion
> interrupts on the CPU socket from where the I/O was initiated. I'm
> not sure it is possible to guarantee this when using a hashing
> algorithm to select the TX ring.
>
Hey Bart,
Your concerns are correct. Flow steering rules will guarantee that each
socket will have a different TX/RX ring, but not necessarily the
"correct" TX/RX ring. These issues have been addressed in the
Networking subsystem.
Thinking more on this out loud,
There is the TX challenge, getting the HW queue selection to match the
TX ring selection (which might not be the same according to flow hash),
First thing that comes to mind is XPS (Transmit Packet Steering).
From Documentation/networking/scaling.txt:
"Transmit Packet Steering is a mechanism for intelligently selecting
which transmit queue to use when transmitting a packet on a multi-queue
device. To accomplish this, a mapping from CPU to hardware queue(s) is
recorded. The goal of this mapping is usually to assign queues
exclusively to a subset of CPUs, where the transmit completions for
these queues are processed on a CPU within this set."
About the RX challenge, I think RFS (Receive Flow Steering) will
probably be the best fit here since RX packets will be steered to the
CPU where the application is running.
From Documentation/networking/scaling.txt:
"The goal of RFS is to increase datacache hitrate by steering
kernel processing of packets to the CPU where the application thread
consuming the packet is running. RFS relies on the same RPS mechanisms
to enqueue packets onto the backlog of another CPU and to wake up that
CPU. In RFS, packets are not forwarded directly by the value of their
hash, but the hash is used as index into a flow lookup table. This
table maps flows to the CPUs where those flows are being processed."
This definitely needs some more thinking. CC'ing Or Gerlitz which has
a lot of experience in the Networking stack...
Sagi.
--
You received this message because you are subscribed to the Google Groups "open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to open-iscsi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To post to this group, send email to open-iscsi-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
Visit this group at http://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.
next prev parent reply other threads:[~2015-01-13 9:46 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-07 16:25 [LSF/MM TOPIC] iSCSI MQ adoption via MCS discussion Sagi Grimberg
[not found] ` <54AD5DDD.2090808-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-01-07 16:57 ` Hannes Reinecke
[not found] ` <54AD6563.4040603-l3A5Bk7waGM@public.gmane.org>
2015-01-07 21:39 ` Mike Christie
2015-01-08 7:50 ` Bart Van Assche
2015-01-08 13:45 ` Sagi Grimberg
[not found] ` <54AE8A02.1030100-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-01-08 14:11 ` Bart Van Assche
[not found] ` <54AE9010.5080609-HInyCGIudOg@public.gmane.org>
2015-01-08 15:57 ` Paul Koning
2015-01-09 11:39 ` Sagi Grimberg
2015-01-09 13:31 ` Bart Van Assche
[not found] ` <5EE87F5E6631894E80EB1A63198F964D040A6A8F-cXZ6iGhjG0hm/BozF5lIdDJ2aSJ780jGSxCzGc5ayCJWk0Htik3J/w@public.gmane.org>
2015-01-11 9:52 ` Sagi Grimberg
2015-01-14 4:16 ` Vladislav Bolkhovitin
2015-01-08 22:16 ` Nicholas A. Bellinger
2015-01-08 22:29 ` James Bottomley
2015-01-08 22:57 ` Nicholas A. Bellinger
[not found] ` <1420757822.2842.39.camel-XoQW25Eq2zviZyQQd+hFbcojREIfoBdhmpATvIKMPHk@public.gmane.org>
2015-01-08 23:22 ` [Lsf-pc] " James Bottomley
2015-01-09 5:03 ` Nicholas A. Bellinger
2015-01-09 6:25 ` James Bottomley
[not found] ` <1420779808.21830.21.camel-XoQW25Eq2zviZyQQd+hFbcojREIfoBdhmpATvIKMPHk@public.gmane.org>
2015-01-09 18:00 ` Michael Christie
2015-01-09 18:28 ` Hannes Reinecke
[not found] ` <54B01DBD.5020707-l3A5Bk7waGM@public.gmane.org>
2015-01-09 18:34 ` James Bottomley
2015-01-09 20:19 ` Mike Christie
[not found] ` <54B037BF.1010903-hcNo3dDEHLuVc3sceRu5cw@public.gmane.org>
2015-01-11 9:40 ` Sagi Grimberg
2015-01-12 12:56 ` Bart Van Assche
[not found] ` <54B3C47E.6010109-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2015-01-13 9:46 ` Sagi Grimberg [this message]
[not found] ` <54B24501.7090801-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-01-12 20:14 ` Mike Christie
[not found] ` <38CE4ECA-D155-4BF9-9D6D-E1A01ADA05E4-hcNo3dDEHLuVc3sceRu5cw@public.gmane.org>
2015-01-11 9:23 ` Sagi Grimberg
[not found] ` <54B24117.7050204-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-01-12 20:05 ` Mike Christie
[not found] ` <54B428F2.2010507-hcNo3dDEHLuVc3sceRu5cw@public.gmane.org>
2015-01-13 9:55 ` Sagi Grimberg
2015-01-08 23:26 ` Mike Christie
[not found] ` <54AF122C.9070703-hcNo3dDEHLuVc3sceRu5cw@public.gmane.org>
2015-01-09 11:17 ` Sagi Grimberg
2015-01-08 23:01 ` Mike Christie
2015-01-08 14:50 ` James Bottomley
2015-01-08 17:25 ` Sagi Grimberg
[not found] ` <54ADA777.6090801-hcNo3dDEHLuVc3sceRu5cw@public.gmane.org>
2015-01-08 23:40 ` Mike Christie
2015-01-07 17:22 ` Lee Duncan
2015-01-07 19:11 ` [Lsf-pc] " Jan Kara
2015-01-07 16:58 ` Nicholas A. Bellinger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54B4E984.5000106@dev.mellanox.co.il \
--to=sagig-ldsdmyg8hgv8yrgs2mwiifqbs+8scbdb@public.gmane.org \
--cc=James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org \
--cc=bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org \
--cc=linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=lsf-pc-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=michaelc-hcNo3dDEHLuVc3sceRu5cw@public.gmane.org \
--cc=nab-IzHhD5pYlfBP7FQvKIMDCQ@public.gmane.org \
--cc=ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=open-iscsi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
--cc=oren-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=target-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.