From: Bart Van Assche <bvanassche-HInyCGIudOg@public.gmane.org>
To: Sreedhar Kodali
<srkodali-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
pradeeps-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org,
linux-rdma-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v2 3/4] rsockets: distribute completion queue vectors among multiple cores
Date: Mon, 15 Sep 2014 11:06:03 +0200 [thread overview]
Message-ID: <5416ABFB.7040701@acm.org> (raw)
In-Reply-To: <ef556922e7b766360a38df904dff1c70-FJGp5E75HVmZamtmwQBW5tBPR1lH4CV8@public.gmane.org>
On 09/11/14 14:34, Sreedhar Kodali wrote:
> I have sent the revised patch v4 that groups and assigns comp vectors
> per process as you suggested. Please go through it.
Shouldn't there be agreement about the approach before a patch is
reworked and reposted ? I think the following aspects deserve wider
discussion and agreement about these aspects is needed before the patch
itself is discussed further:
- Do we need to discuss a policy that defines which completion vectors
are associated with which CPU sockets ? Such a policy is needed to allow
RDMA software to constrain RDMA completions to a single CPU socket and
hence to avoid inter-socket cache misses. One possible policy is to
associate an equal number of completion vectors with each CPU socket. If
e.g. 8 completion vectors are provided by an HCA and two CPU sockets are
available then completion vectors 0..3 could be bound to the CPU socket
with index 0 and vectors 4..7 could be bound to CPU socket that has been
assigned index 1 by the Linux kernel.
- Would it be useful to modify the irqbalance software such that it
becomes aware of HCA's that provide multiple MSI-X vectors and hence
automatically applies the policy mentioned in the previous bullet ?
- What should the default behavior be of the rsockets library ? Keep the
current behavior (use completion vector 0), select one of the available
completion vectors in a round-robin fashion or perhaps yet another policy ?
- The number of completion vectors provided by a HCA can change after a
PCIe card has been added to or removed from the system. Such changes
affect the number of bits of the completion mask that are relevant. How
to handle this ?
- If a configuration option is added in the rsockets library to specify
which completion vectors a process is allowed to use, should it be
possible to specify individual completion vectors or is it sufficient if
CPU socket numbers can be specified ? That last choice has the advantage
that it is independent of the exact number of completion vectors that
has been allocated by an HCA.
- How to cope with systems in which multiple RDMA HCA's are present and
in which each HCA provides a different number of completion vectors ? Is
a completion vector bitmask a proper means for such systems to specify
which completion vectors should be used ?
- Do we need to treat virtual machine guests and CPU hot-plugging
separately or can we rely on the information about CPU sockets that is
provided by the hypervisor to the guest ?
Bart.
--
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
next prev parent reply other threads:[~2014-09-15 9:06 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-05 13:18 [PATCH v2 3/4] rsockets: distribute completion queue vectors among multiple cores Sreedhar Kodali
[not found] ` <f028f54b9900ee34fcd1abd1d90d10e6-FJGp5E75HVmZamtmwQBW5tBPR1lH4CV8@public.gmane.org>
2014-09-05 15:47 ` Bart Van Assche
[not found] ` <5409DB0D.6080103-HInyCGIudOg@public.gmane.org>
2014-09-06 3:06 ` Sreedhar Kodali
[not found] ` <850a2835b5917f6da62af3d1ea0288fd-FJGp5E75HVmZamtmwQBW5tBPR1lH4CV8@public.gmane.org>
2014-09-08 6:47 ` Bart Van Assche
[not found] ` <540D50E9.5050709-HInyCGIudOg@public.gmane.org>
2014-09-08 14:27 ` Sreedhar Kodali
[not found] ` <a8ac21f3c9d7c802ab089bc0d432e40b-FJGp5E75HVmZamtmwQBW5tBPR1lH4CV8@public.gmane.org>
2014-09-08 18:22 ` Bart Van Assche
[not found] ` <540DF3CC.1060304-HInyCGIudOg@public.gmane.org>
2014-09-09 12:28 ` Sreedhar Kodali
[not found] ` <edc2b05703209d2a7626a31abb170ceb-FJGp5E75HVmZamtmwQBW5tBPR1lH4CV8@public.gmane.org>
2014-09-11 12:34 ` Sreedhar Kodali
[not found] ` <ef556922e7b766360a38df904dff1c70-FJGp5E75HVmZamtmwQBW5tBPR1lH4CV8@public.gmane.org>
2014-09-15 9:06 ` Bart Van Assche [this message]
[not found] ` <5416ABFB.7040701-HInyCGIudOg@public.gmane.org>
2014-09-16 4:33 ` Sreedhar Kodali
[not found] ` <d5804c38cb47bcc79eb3962cf8ca6989-FJGp5E75HVmZamtmwQBW5tBPR1lH4CV8@public.gmane.org>
2014-09-16 4:57 ` Hefty, Sean
[not found] ` <1828884A29C6694DAF28B7E6B8A8237399DD3DA8-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-17 5:54 ` Sreedhar Kodali
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=5416ABFB.7040701@acm.org \
--to=bvanassche-hinycgiudog@public.gmane.org \
--cc=linux-rdma-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=pradeeps-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
--cc=sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=srkodali-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@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.