From: "Gonzalez Monroy, Sergio" <sergio.gonzalez.monroy-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: Zhou Danny <danny.zhou-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
dev-VfR2kkLFssw@public.gmane.org
Subject: Re: [PATCH v4 0/5] Interrupt mode PMD
Date: Fri, 20 Feb 2015 08:50:23 +0000 [thread overview]
Message-ID: <54E6F54F.40707@intel.com> (raw)
In-Reply-To: <1424353698-29837-1-git-send-email-danny.zhou-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
On 19/02/2015 13:48, Zhou Danny wrote:
> v4 changes
> - Export interrupt enable/disable functions for shared libraries
> - Adjust position of new-added structure fields and functions to
> avoid breaking ABI
>
> v3 changes
> - Add return value for interrupt enable/disable functions
> - Move spinlok from PMD to L3fwd-power
> - Remove unnecessary variables in e1000_mac_info
> - Fix miscelleous review comments
>
> v2 changes
> - Fix compilation issue in Makefile for missed header file.
> - Consolidate internal and community review comments of v1 patch set.
>
> The patch series introduce low-latency one-shot rx interrupt into DPDK with
> polling and interrupt mode switch control example.
>
> DPDK userspace interrupt notification and handling mechanism is based on UIO
> with below limitation:
> 1) It is designed to handle LSC interrupt only with inefficient suspended
> pthread wakeup procedure (e.g. UIO wakes up LSC interrupt handling thread
> which then wakes up DPDK polling thread). In this way, it introduces
> non-deterministic wakeup latency for DPDK polling thread as well as packet
> latency if it is used to handle Rx interrupt.
> 2) UIO only supports a single interrupt vector which has to been shared by
> LSC interrupt and interrupts assigned to dedicated rx queues.
>
> This patchset includes below features:
> 1) Enable one-shot rx queue interrupt in ixgbe PMD(PF & VF) and igb PMD(PF only).
> 2) Build on top of the VFIO mechanism instead of UIO, so it could support
> up to 64 interrupt vectors for rx queue interrupts.
> 3) Have 1 DPDK polling thread handle per Rx queue interrupt with a dedicated
> VFIO eventfd, which eliminates non-deterministic pthread wakeup latency in
> user space.
> 4) Demonstrate interrupts control APIs and userspace NAIP-like polling/interrupt
> switch algorithms in L3fwd-power example.
>
> Known limitations:
> 1) It does not work for UIO due to a single interrupt eventfd shared by LSC
> and rx queue interrupt handlers causes a mess.
> 2) LSC interrupt is not supported by VF driver, so it is by default disabled
> in L3fwd-power now. Feel free to turn in on if you want to support both LSC
> and rx queue interrupts on a PF.
>
> Danny Zhou (5):
> ethdev: add rx interrupt enable/disable functions
> ixgbe: enable rx queue interrupts for both PF and VF
> igb: enable rx queue interrupts for PF
> eal: add per rx queue interrupt handling based on VFIO
> l3fwd-power: enable one-shot rx interrupt and polling/interrupt mode
> switch
>
> examples/l3fwd-power/main.c | 153 ++++++---
> lib/librte_eal/common/include/rte_eal.h | 12 +
> lib/librte_eal/linuxapp/eal/Makefile | 1 +
> lib/librte_eal/linuxapp/eal/eal_interrupts.c | 190 ++++++++---
> lib/librte_eal/linuxapp/eal/eal_pci_vfio.c | 12 +-
> .../linuxapp/eal/include/exec-env/rte_interrupts.h | 4 +
> lib/librte_ether/rte_ethdev.c | 43 +++
> lib/librte_ether/rte_ethdev.h | 59 ++++
> lib/librte_ether/rte_ether_version.map | 2 +
> lib/librte_pmd_e1000/e1000_ethdev.h | 3 +
> lib/librte_pmd_e1000/igb_ethdev.c | 228 +++++++++++--
> lib/librte_pmd_ixgbe/ixgbe_ethdev.c | 365 ++++++++++++++++++++-
> lib/librte_pmd_ixgbe/ixgbe_ethdev.h | 6 +
> 13 files changed, 964 insertions(+), 114 deletions(-)
>
Series
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
prev parent reply other threads:[~2015-02-20 8:50 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-19 13:48 [PATCH v4 0/5] Interrupt mode PMD Zhou Danny
[not found] ` <1424353698-29837-1-git-send-email-danny.zhou-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-19 13:48 ` [PATCH v4 1/5] ethdev: add rx interrupt enable/disable functions Zhou Danny
2015-02-19 13:48 ` [PATCH v4 2/5] ixgbe: enable rx queue interrupts for both PF and VF Zhou Danny
[not found] ` <1424353698-29837-3-git-send-email-danny.zhou-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-23 11:19 ` Thomas Monjalon
2015-02-23 11:23 ` Zhou, Danny
[not found] ` <DFDF335405C17848924A094BC35766CF0AAB3513-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-23 13:20 ` Thomas Monjalon
2015-02-23 15:11 ` Zhou, Danny
2015-02-19 13:48 ` [PATCH v4 3/5] igb: enable rx queue interrupts for PF Zhou Danny
2015-02-19 13:48 ` [PATCH v4 4/5] eal: add per rx queue interrupt handling based on VFIO Zhou Danny
[not found] ` <1424353698-29837-5-git-send-email-danny.zhou-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-20 22:43 ` Thomas Monjalon
2015-02-23 11:47 ` Zhou, Danny
[not found] ` <DFDF335405C17848924A094BC35766CF0AAB360B-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-23 13:28 ` Thomas Monjalon
2015-02-23 15:02 ` Zhou, Danny
[not found] ` <DFDF335405C17848924A094BC35766CF0AAB3C60-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-23 15:19 ` Thomas Monjalon
2015-02-23 15:24 ` Zhou, Danny
2015-02-21 2:56 ` Jun Xiao
[not found] ` <20150221025644.GA61778-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-02-23 11:23 ` Zhou, Danny
2015-02-19 13:48 ` [PATCH v4 5/5] l3fwd-power: enable one-shot rx interrupt and polling/interrupt mode switch Zhou Danny
2015-02-20 8:50 ` Gonzalez Monroy, Sergio [this message]
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=54E6F54F.40707@intel.com \
--to=sergio.gonzalez.monroy-ral2jqcrhueavxtiumwx3w@public.gmane.org \
--cc=danny.zhou-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=dev-VfR2kkLFssw@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.