4. 4
DPDK as Broccoli
u Not the most consumable thing in the
world
u But it’s fine when you get used to it!
u That does not mean we shouldn’t strive
to achieve “DPDK as Cake” status
By Fir0002 - Own work, GFDL 1.2, Link
5. 5
DPDK is Greedy
u DPDK thinks it owns all cores and threads in the app
u DPDK thinks all hugepage memory on the system is for its exclusive use
u DPDK thinks it should own the application command-line
u DPDK thinks you want to build all DPDK apps using the DPDK build
system
6. 6
DPDK is Greedy
u DPDK thinks it owns all cores and threads in the app
u DPDK thinks all hugepage memory on the system is for its exclusive use
u DPDK thinks it should own the application command-line
u DPDK thinks you want to build all DPDK apps using the DPDK build
system
7. 7
Memory – Work In Progress
u Reduce the dependency on physically contiguous memory
u Few cases actually need this
u Eliminates the need to find biggest contiguous blocks of memory
u Allow memory/hugepage allocation from OS on demand
u Faster startup
u Memory footprint is only what the application needs
u Allow free memory to be given back to the OS
8. 8
Memory – Work In Progress
u Requires very considerable rework on DPDK internals
u Hugepage handling
u Memory segments (memsegs)
u Memory zones (memzones)
u Malloc (rte_malloc)
u + changes to other components needing contiguous memory
u Patches expected in 18.02 timeframe
u No expected performance implications!
9. 9
DPDK as Carrot
u Still not the most consumable thing in
the world
u Many folks ok with it as-is
u But with a bit of work it can go into many
very consumable things!
By Bi-frie - Own work, CC BY 3.0, Link
10. 10
Build System – Work in Progress
u DPDK build system is currently based on “make” alone
u Static configuration only -no dynamic configuration at build time
u Custom build system with many complicated makefiles
u Assumes that it will be used to compile end-user apps too
u Work underway to replace this with new build using “meson”
u Very popular with open-source projects, e.g. Xorg, system
u Dynamic build configuration with a readable syntax
u Likely to be a multi-release effort
u Old build system is not going away any time soon!
11. 11
pkg-config – Improved Consumability
u pkg-config
u Standard method to specify how to compile
and link with a library
u Very distro-friendly
u No need for either:
u trying to hack some/all of DPDK build system
into your projects
u hard-coding the libraries & ldflags into your
makefiles
PC_FILE := $(shell pkg-config --path libdpdk)
CFLAGS += $(shell pkg-config --cflags libdpdk)
LDFLAGS += $(shell pkg-config --libs libdpdk)
helloworld: main.c Makefile $(PC_FILE)
$(CC) $(CFLAGS) main.c -o $@ $(LDFLAGS)
13. 13
Using DPDK – a piece of cake?
u Two changes will not fix all problems
u But fixing these two should move us
considerably along the consumabilitypath
u Suggestions, and patches very welcome for
other future changes
By http://rezeptewiki.org/wiki/Benutzer:At_u - http://rezeptewiki.org/wiki/Datei:R%C3%BCblitorte_.jpg,
CC BY-SA 3.0, Link
14. 14
Who wants DPDK improved? – a pie
chart
By Oddbodz - Own work, CC BY-SA 3.0, Link