DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/5] Add a PA-VA Translation table for DPAAx
@ 2018-09-25 12:54 Shreyansh Jain
  2018-09-25 12:54 ` [dpdk-dev] [PATCH 1/5] bus/fslmc: fix physical addressing check Shreyansh Jain
                   ` (5 more replies)
  0 siblings, 6 replies; 53+ messages in thread
From: Shreyansh Jain @ 2018-09-25 12:54 UTC (permalink / raw)
  To: ferruh.yigit; +Cc: dev, anatoly.burakov, Shreyansh Jain

::Background::
After the restructuring of memory in last release(s), one of the
major impact on fslmc/dpaa bus (and its devices) was the performance
drop when using physical addressing.

Previously, it was assumed that physical range was contiguous for
any given request for hugepage memory. That way, whenever a
virtual address was returned, it was easy to fetch physical
equivalent, in almost constant time.
But, with memory hotplug series, that assumption was negated.
Every call that device drivers made for rte_mem_virt2iova or
rte_mem_virt2phy were expensive. (Using IOVA_CONTIG is an app
dependency which is not a practical option).

For fslmc, working on Physical or Virtual (IOMMU supported) address
is an optional thing. For dpaa bus, it is not optional and only
physical addressing is supported. Thus, it impacted dpaa bus
the most.

::DPAAX PA-VA Table::
- A simple table containing entries for all physical memory range
  available on a particular SoC (in this case, NXP's LS104x and
  LS20xx series, which are handled by dpaa and fslmc bus,
  respectively). As of now, this is SoC dependent for fetching
  range.
- We populate the table either through the mempool handler (for
  mempool pinned memory) or through the memory event callbacks
  (for cases where working memory is allocated by application).
- Though aim is only to translate addresses for descriptors
  which are Rx'd from devices, this is a generic layer which
  should work in other cases as well (though, not the target of
  current testing).

::About patches::
Patch 1: There was an issue in existing PA/VA mode reporting being
         done by fslmc bus. This patch fixes it.
Patch 2: Common libraries/commponents can be dependency for the bus
         thus, blocking parallel compilation
Patch 3: Add the library in common/dpaax. This is a single patch
         as functions are mostly inter-linked.
Patch 4~5: Add support in dpaa and fslmc bus, respectively.
         It is not possible to unlink the bus and device drivers,
         thus, these patches have blanket change across all drivers.

::Next Steps::
- Some optimization are required to tune the access pattern of the
  table. These would be posted as additional patches.
- In case there is any possible split of patches, I will post another
  version. But until then, this is the layout.


::Other Notes::
- There are some checkpatch warnings about 80char limit. I am currently
  ignoring them as I prefer to keep those lines longer for readability.

Shreyansh Jain (5):
  bus/fslmc: fix physical addressing check
  drivers: common as dependency for bus
  common/dpaax: add library for PA VA translation table
  dpaa: enable dpaax library
  fslmc: enable dpaax library

 config/common_base                            |   5 +
 config/common_linuxapp                        |   5 +
 drivers/Makefile                              |   1 +
 drivers/bus/dpaa/Makefile                     |   1 +
 drivers/bus/dpaa/dpaa_bus.c                   |   4 +
 drivers/bus/dpaa/meson.build                  |   2 +-
 drivers/bus/dpaa/rte_dpaa_bus.h               |   6 +
 drivers/bus/fslmc/Makefile                    |   1 +
 drivers/bus/fslmc/fslmc_bus.c                 |  24 +
 drivers/bus/fslmc/meson.build                 |   2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c      |   7 -
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       |  32 +-
 drivers/common/Makefile                       |   4 +
 drivers/common/dpaax/Makefile                 |  31 ++
 drivers/common/dpaax/dpaax_iova_table.c       | 509 ++++++++++++++++++
 drivers/common/dpaax/dpaax_iova_table.h       | 104 ++++
 drivers/common/dpaax/dpaax_logs.h             |  39 ++
 drivers/common/dpaax/meson.build              |  12 +
 .../common/dpaax/rte_common_dpaax_version.map |  12 +
 drivers/common/meson.build                    |   2 +-
 drivers/crypto/dpaa2_sec/Makefile             |   1 +
 drivers/crypto/dpaa_sec/Makefile              |   1 +
 drivers/crypto/dpaa_sec/dpaa_sec.c            |   6 +
 drivers/event/dpaa/Makefile                   |   1 +
 drivers/event/dpaa2/Makefile                  |   2 +
 drivers/mempool/dpaa/Makefile                 |   1 +
 drivers/mempool/dpaa/dpaa_mempool.c           |   3 +
 drivers/mempool/dpaa/dpaa_mempool.h           |   4 +-
 drivers/mempool/dpaa2/Makefile                |   1 +
 drivers/mempool/dpaa2/dpaa2_hw_mempool.c      |  29 +-
 drivers/net/dpaa/Makefile                     |   1 +
 drivers/net/dpaa2/Makefile                    |   1 +
 drivers/raw/dpaa2_cmdif/Makefile              |   2 +
 drivers/raw/dpaa2_qdma/Makefile               |   1 +
 mk/rte.app.mk                                 |   2 +
 35 files changed, 799 insertions(+), 60 deletions(-)
 create mode 100644 drivers/common/dpaax/Makefile
 create mode 100644 drivers/common/dpaax/dpaax_iova_table.c
 create mode 100644 drivers/common/dpaax/dpaax_iova_table.h
 create mode 100644 drivers/common/dpaax/dpaax_logs.h
 create mode 100644 drivers/common/dpaax/meson.build
 create mode 100644 drivers/common/dpaax/rte_common_dpaax_version.map

-- 
2.17.1

^ permalink raw reply	[flat|nested] 53+ messages in thread
* [dpdk-dev] [PATCH v4 0/4] eventdev: add attribute based get APIs
@ 2017-09-14 16:08 Harry van Haaren
  2017-09-20 13:35 ` [dpdk-dev] [PATCH v5 0/5] Harry van Haaren
  0 siblings, 1 reply; 53+ messages in thread
From: Harry van Haaren @ 2017-09-14 16:08 UTC (permalink / raw)
  To: dev; +Cc: jerin.jacob, Harry van Haaren

This patchset refactors the eventdev API to be more flexible
and capable. In particular, the API is capable of returning an
error value if an invalid device, port or attribute ID is passed
in, which was not possible with the previous APIs.

The implementation of this patchset is based on a v1 patch[1],
and after some discussion this API was seen as the best solution.

In terms of flexibility, the attribute id allows addition of new
common eventdev layer attributes without breaking ABI or adding
new functions. Note that these attributes are not data-path, and
that PMDs should continue to use the xstats API for reporting any
unique PMD statistics that are available.

Regarding API/ABI compatibility, I have removed the functions from
the .map files - please review the .map file changes for ABI issues
carefully.

The last patch of this series adds a started attribute to the device,
allowing the application to query if a device is currently running.

-Harry

[1] http://dpdk.org/dev/patchwork/patch/27152/

---

v4:
- Rework based on review by Jerin
  - default: cases into switches
  - Remove old functions from .map file
  - Remove /* out */ parameters
  - Rework header file definitions to match logical order
- Rework patch split
  - Cleaner removal of queue_count() function

v3:
- Fix checkpatch issues... somehow I broke my checkpatch script :/

v2:
- New APIs design based on discussion of initial patch.



Harry van Haaren (4):
  eventdev: add port attribute function
  eventdev: add dev attribute get function
  eventdev: add queue attribute function
  eventdev: add device started attribute

 lib/librte_eventdev/rte_eventdev.c           |  97 ++++++++++++------
 lib/librte_eventdev/rte_eventdev.h           | 115 +++++++++++----------
 lib/librte_eventdev/rte_eventdev_version.map |  14 ++-
 test/test/test_eventdev.c                    | 132 +++++++++++++++++++------
 test/test/test_eventdev_octeontx.c           | 143 ++++++++++++++++++++-------
 5 files changed, 345 insertions(+), 156 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 53+ messages in thread

end of thread, other threads:[~2018-10-16 10:18 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-25 12:54 [dpdk-dev] [PATCH 0/5] Add a PA-VA Translation table for DPAAx Shreyansh Jain
2018-09-25 12:54 ` [dpdk-dev] [PATCH 1/5] bus/fslmc: fix physical addressing check Shreyansh Jain
2018-09-25 12:54 ` [dpdk-dev] [PATCH 2/5] drivers: common as dependency for bus Shreyansh Jain
2018-09-25 12:54 ` [dpdk-dev] [PATCH 3/5] common/dpaax: add library for PA VA translation table Shreyansh Jain
2018-09-25 13:28   ` Burakov, Anatoly
2018-09-25 13:39     ` Shreyansh Jain
2018-09-25 13:51       ` Burakov, Anatoly
2018-09-25 14:00         ` Shreyansh Jain
2018-09-25 14:08           ` Burakov, Anatoly
2018-09-26 10:16             ` Burakov, Anatoly
2018-10-09 10:45       ` Shreyansh Jain
2018-10-11  9:03         ` Burakov, Anatoly
2018-10-11 10:02           ` Shreyansh Jain
2018-10-11 10:07             ` Shreyansh Jain
2018-10-11 10:13               ` Burakov, Anatoly
2018-10-11 10:39                 ` Shreyansh Jain
2018-10-11 10:46                   ` Burakov, Anatoly
2018-10-11 10:09             ` Burakov, Anatoly
2018-09-25 12:54 ` [dpdk-dev] [PATCH 4/5] dpaa: enable dpaax library Shreyansh Jain
2018-09-25 12:54 ` [dpdk-dev] [PATCH 5/5] fslmc: " Shreyansh Jain
2018-10-09 11:25 ` [dpdk-dev] [PATCH v2 0/5] Add a PA-VA Translation table for DPAAx Shreyansh Jain
2018-10-09 11:25   ` [dpdk-dev] [PATCH v2 1/5] bus/fslmc: fix physical addressing check Shreyansh Jain
2018-10-12  9:01     ` Pavan Nikhilesh
2018-10-12 10:44       ` Shreyansh Jain
2018-10-12 16:29         ` Pavan Nikhilesh
2018-10-09 11:25   ` [dpdk-dev] [PATCH v2 2/5] drivers: common as dependency for bus Shreyansh Jain
2018-10-09 11:25   ` [dpdk-dev] [PATCH v2 3/5] common/dpaax: add library for PA VA translation table Shreyansh Jain
2018-10-09 11:25   ` [dpdk-dev] [PATCH v2 4/5] dpaa: enable dpaax library Shreyansh Jain
2018-10-09 11:25   ` [dpdk-dev] [PATCH v2 5/5] fslmc: " Shreyansh Jain
2018-10-13 12:21   ` [dpdk-dev] [PATCH v3 0/5] Add a PA-VA Translation table for DPAAx Shreyansh Jain
2018-10-13 12:21     ` [dpdk-dev] [PATCH v3 1/5] bus/fslmc: fix physical addressing check Shreyansh Jain
2018-10-13 16:08       ` Pavan Nikhilesh
2018-10-15  6:36         ` Shreyansh Jain
2018-10-13 12:21     ` [dpdk-dev] [PATCH v3 2/5] drivers: common as dependency for bus Shreyansh Jain
2018-10-13 12:21     ` [dpdk-dev] [PATCH v3 3/5] common/dpaax: add library for PA VA translation table Shreyansh Jain
2018-10-13 12:21     ` [dpdk-dev] [PATCH v3 4/5] dpaa: enable dpaax library Shreyansh Jain
2018-10-13 12:21     ` [dpdk-dev] [PATCH v3 5/5] fslmc: " Shreyansh Jain
2018-10-15  6:41     ` [dpdk-dev] [PATCH v4 0/5] Add a PA-VA Translation table for DPAAx Shreyansh Jain
2018-10-15  6:41       ` [dpdk-dev] [PATCH v4 1/5] bus/fslmc: fix physical addressing check Shreyansh Jain
2018-10-15  6:41       ` [dpdk-dev] [PATCH v4 2/5] drivers: common as dependency for bus Shreyansh Jain
2018-10-15  6:42       ` [dpdk-dev] [PATCH v4 3/5] common/dpaax: add library for PA VA translation table Shreyansh Jain
2018-10-15  6:42       ` [dpdk-dev] [PATCH v4 4/5] dpaa: enable dpaax library Shreyansh Jain
2018-10-15  6:42       ` [dpdk-dev] [PATCH v4 5/5] fslmc: " Shreyansh Jain
2018-10-15 12:01       ` [dpdk-dev] [PATCH v5 0/5] Shreyansh Jain
2018-10-15 12:01         ` [dpdk-dev] [PATCH v5 1/5] bus/fslmc: fix physical addressing check Shreyansh Jain
2018-10-16 10:02           ` Thomas Monjalon
2018-10-15 12:01         ` [dpdk-dev] [PATCH v5 2/5] drivers: common as dependency for bus Shreyansh Jain
2018-10-15 12:01         ` [dpdk-dev] [PATCH v5 3/5] common/dpaax: add library for PA VA translation table Shreyansh Jain
2018-10-15 23:17           ` Thomas Monjalon
2018-10-15 12:01         ` [dpdk-dev] [PATCH v5 4/5] dpaa: enable dpaax library Shreyansh Jain
2018-10-15 12:01         ` [dpdk-dev] [PATCH v5 5/5] fslmc: " Shreyansh Jain
2018-10-16 10:18         ` [dpdk-dev] [PATCH v5 0/5] Thomas Monjalon
  -- strict thread matches above, loose matches on Subject: below --
2017-09-14 16:08 [dpdk-dev] [PATCH v4 0/4] eventdev: add attribute based get APIs Harry van Haaren
2017-09-20 13:35 ` [dpdk-dev] [PATCH v5 0/5] Harry van Haaren

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).