From: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [PATCH rdma-next V1 0/4] Add packet pacing support for IB verbs
Date: Thu, 1 Dec 2016 13:43:12 +0200 [thread overview]
Message-ID: <1480592596-20126-1-git-send-email-leon@kernel.org> (raw)
Packet pacing is a feature to control packet injection rate in
arbitrary rates. One typical use case is for streaming vendors to
control the bandwidth of different customers based on service coverage.
Packet pacing is a rate limiting and shaping for a QP (SQ for RAW QP),
set and change the rate is done by modifying QP. This series of patch
made the following high level changes:
1. Report rate limit capabilities through user data. Reported
capabilities include: The maximum and minimum rate limit in kbps
supported by packet pacing; Bitmap showing which QP types are
supported by packet pacing operation.
2. Extend modify QP interface for growing attributes. Add rate limit
support to the extended interface.
3. Enable mlx5-based hardware to be able to update the rate limit for
RAW QP packet.
Rate limit could also be achieved by using path record data(static_rate),
however, compare to packet pacing, the drawbacks are:
- The rate field is only u8, and uses IB standard rate enumerations.
Users have very limited options. Packet pacing supports arbitrary
rates with a resolution of 1kbps.
- Path record data doesn't apply to Raw Ethernet QPs, because these are
not 1:1 connected as RC, nor use address handles as UD.
The rate_limit configuration came from the application like required BW
for the streaming and not from the fabric (SM). Both of these features
are limiting the rate but coming from a different entities and required
separate fields. The actual limit should be the minimum of both of them
(if both features apply).
This patch series depend on the following patches:
Add port counter support for raw packet QP
[1] http://www.spinics.net/lists/linux-rdma/msg39607.html
Available in the "topic/packet_pacing" topic branch of this git repo:
git://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git
Or for browsing:
https://git.kernel.org/cgit/linux/kernel/git/leon/linux-rdma.git/log/?h=topic/packet_pacing
Thanks.
Changes from V0:
1. New bit masks IB_USER_LEGACY_LAST_QP_ATTR_MASK and
IB_USER_LAST_QP_ATTR_MASK are added to detect non-supported masks for
legacy/ex commands.
2. The ib_uverbs_ex_modify_qp should call uhw rather than ucore at the end.
Bodong Wang (4):
IB/mlx5: Report mlx5 packet pacing capabilities when querying device
IB/core: Support rate limit for packet pacing
IB/uverbs: Extend modify_qp and support packet pacing
IB/mlx5: Update the rate limit according to user setting for RAW QP
drivers/infiniband/core/uverbs.h | 1 +
drivers/infiniband/core/uverbs_cmd.c | 192 ++++++++++++++++++++++------------
drivers/infiniband/core/uverbs_main.c | 1 +
drivers/infiniband/core/verbs.c | 2 +
drivers/infiniband/hw/mlx5/main.c | 16 ++-
drivers/infiniband/hw/mlx5/mlx5_ib.h | 1 +
drivers/infiniband/hw/mlx5/qp.c | 74 +++++++++++--
include/rdma/ib_verbs.h | 2 +
include/uapi/rdma/ib_user_verbs.h | 21 ++++
include/uapi/rdma/mlx5-abi.h | 13 +++
10 files changed, 245 insertions(+), 78 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
next reply other threads:[~2016-12-01 11:43 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-01 11:43 Leon Romanovsky [this message]
[not found] ` <1480592596-20126-1-git-send-email-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2016-12-01 11:43 ` [PATCH rdma-next V1 1/4] IB/mlx5: Report mlx5 packet pacing capabilities when querying device Leon Romanovsky
2016-12-01 11:43 ` [PATCH rdma-next V1 2/4] IB/core: Support rate limit for packet pacing Leon Romanovsky
[not found] ` <1480592596-20126-3-git-send-email-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2016-12-01 19:40 ` Hefty, Sean
[not found] ` <1828884A29C6694DAF28B7E6B8A82373AB0BA789-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-12-02 14:39 ` Leon Romanovsky
[not found] ` <20161202143957.GF4497-2ukJVAZIZ/Y@public.gmane.org>
2016-12-04 11:53 ` Liran Liss
[not found] ` <HE1PR0501MB28122735F9F3DFD700B43BFBB1800-692Kmc8YnlIVrnpjwTCbp8DSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2016-12-14 19:03 ` Doug Ledford
[not found] ` <67d4e948-0ada-bd75-8855-79eed2ae9a7b-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-12-16 2:48 ` ira.weiny
[not found] ` <20161216024834.GA27188-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2016-12-16 3:53 ` Doug Ledford
2016-12-01 11:43 ` [PATCH rdma-next V1 3/4] IB/uverbs: Extend modify_qp and support " Leon Romanovsky
2016-12-01 11:43 ` [PATCH rdma-next V1 4/4] IB/mlx5: Update the rate limit according to user setting for RAW QP Leon Romanovsky
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=1480592596-20126-1-git-send-email-leon@kernel.org \
--to=leon-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
--cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=linux-rdma-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.