DPDK patches and discussions
 help / color / mirror / Atom feed
From: Anatoly Burakov <anatoly.burakov@intel.com>
To: dev@dpdk.org
Cc: konstantin.ananyev@intel.com, thomas@monjalon.net,
	bruce.richardson@intel.com
Subject: [dpdk-dev] [PATCH 0/8] Remove IPC threads
Date: Fri, 15 Jun 2018 15:25:00 +0100	[thread overview]
Message-ID: <cover.1529071026.git.anatoly.burakov@intel.com> (raw)

As previously discussed [1], IPC threads need to be removed and their
workload moved to interrupt thread.

FreeBSD did not have an interrupt thread, nor did it support alarm
API. This patchset adds support for both on FreeBSD. FreeBSD interrupt
thread is based on kevent, FreeBSD's native event multiplexing
mechanism similar to Linux's epoll.

The patchset makes FreeBSD's interrupts and alarm work just enough to
suffice for purposes of IPC, however there are really weird problems
observed. Specifically, FreeBSD's kevent timers are really slow to
trigger for some reason, sleeping on a 10ms timer as much as 200ms
before waking up. Interrupt handling on fd's is also a bit flaky.

It has also been observed that both problems go away if we do not
affinitize master lcore (by commenting relevant code out [2]). It is
not known why these problems are observed, nor it is clear what a
solution might entail.

For the purposes of making IPC work and having rudimentary support
for alarm and interrupt API's, this patchset works fine. However,
because of the above described issues, documentation will not be
updated to indicate support for interrupts on FreeBSD at this time.

[1] http://dpdk.org/dev/patchwork/patch/36579/
[2] http://dpdk.org/browse/dpdk/tree/lib/librte_eal/bsdapp/eal/eal.c#n729

Anatoly Burakov (4):
  ipc: remove IPC thread for async requests
  eal/bsdapp: add interrupt thread
  eal/bsdapp: add alarm support
  ipc: remove main IPC thread

Jianfeng Tan (4):
  eal/linux: use glibc malloc in alarm
  eal/linux: use glibc malloc in interrupt handling
  eal: bring forward init of interrupt handling
  eal: add IPC type for interrupt thread

 lib/librte_eal/bsdapp/eal/eal.c               |  10 +-
 lib/librte_eal/bsdapp/eal/eal_alarm.c         | 299 +++++++++++-
 lib/librte_eal/bsdapp/eal/eal_alarm_private.h |  19 +
 lib/librte_eal/bsdapp/eal/eal_interrupts.c    | 460 +++++++++++++++++-
 lib/librte_eal/common/eal_common_proc.c       | 243 ++++-----
 .../common/include/rte_eal_interrupts.h       |   1 +
 lib/librte_eal/linuxapp/eal/eal.c             |  10 +-
 lib/librte_eal/linuxapp/eal/eal_alarm.c       |   9 +-
 lib/librte_eal/linuxapp/eal/eal_interrupts.c  |  19 +-
 test/test/test_interrupts.c                   |  29 +-
 10 files changed, 899 insertions(+), 200 deletions(-)
 create mode 100644 lib/librte_eal/bsdapp/eal/eal_alarm_private.h

-- 
2.17.1

             reply	other threads:[~2018-06-15 14:25 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-15 14:25 Anatoly Burakov [this message]
2018-06-15 14:25 ` [dpdk-dev] [PATCH 1/8] eal/linux: use glibc malloc in alarm Anatoly Burakov
2018-06-15 14:25 ` [dpdk-dev] [PATCH 2/8] eal/linux: use glibc malloc in interrupt handling Anatoly Burakov
2018-06-15 14:25 ` [dpdk-dev] [PATCH 3/8] ipc: remove IPC thread for async requests Anatoly Burakov
2018-06-15 14:25 ` [dpdk-dev] [PATCH 4/8] eal: bring forward init of interrupt handling Anatoly Burakov
2018-06-15 14:25 ` [dpdk-dev] [PATCH 5/8] eal: add IPC type for interrupt thread Anatoly Burakov
2018-06-15 14:25 ` [dpdk-dev] [PATCH 6/8] eal/bsdapp: add " Anatoly Burakov
2018-06-15 14:25 ` [dpdk-dev] [PATCH 7/8] eal/bsdapp: add alarm support Anatoly Burakov
2018-06-15 14:25 ` [dpdk-dev] [PATCH 8/8] ipc: remove main IPC thread Anatoly Burakov
2018-06-26  1:19 ` [dpdk-dev] [PATCH 0/8] Remove IPC threads Zhang, Qi Z
2018-06-26  7:03 ` Zhang, Qi Z
2018-06-26 10:53 ` [dpdk-dev] [PATCH v2 0/7] Remove asynchronous IPC thread Anatoly Burakov
2018-07-13 10:44   ` Thomas Monjalon
2018-06-26 10:53 ` [dpdk-dev] [PATCH v2 1/7] eal/linux: use glibc malloc in alarm Anatoly Burakov
2018-06-26 10:53 ` [dpdk-dev] [PATCH v2 2/7] eal/linux: use glibc malloc in interrupt handling Anatoly Burakov
2018-06-26 10:53 ` [dpdk-dev] [PATCH v2 3/7] eal/bsdapp: add interrupt thread Anatoly Burakov
2018-06-26 10:53 ` [dpdk-dev] [PATCH v2 4/7] eal/bsdapp: add alarm support Anatoly Burakov
2018-06-26 10:53 ` [dpdk-dev] [PATCH v2 5/7] eal: bring forward init of interrupt handling Anatoly Burakov
2018-07-12 22:36   ` Thomas Monjalon
2018-07-13  7:41     ` Burakov, Anatoly
2018-07-13  8:09     ` David Marchand
2018-07-13  9:10       ` Tiwei Bie
2018-07-13 11:28         ` David Marchand
2018-06-26 10:53 ` [dpdk-dev] [PATCH v2 6/7] ipc: remove IPC thread for async requests Anatoly Burakov
2018-06-26 10:53 ` [dpdk-dev] [PATCH v2 7/7] doc: document IPC callback limitations Anatoly Burakov

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=cover.1529071026.git.anatoly.burakov@intel.com \
    --to=anatoly.burakov@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=konstantin.ananyev@intel.com \
    --cc=thomas@monjalon.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).