On 2019-06-14 11:18, Anoob Joseph wrote:
Hi Mattias,
A more extensive description of the purpose of the eventmode helper
library would be helpful.
Is this supposed to be a generic framework for real-world
applications, or only something to simplify DPDK the implementation of
DPDK example programs and similar?
This is intended as a generic framework, but the initial targets would be limited to DPDK example applications.
For any application to use an event device for dynamic load balancing, it has to configure the event device and the adapters. Configuring the adapters would involve providing various parameters based on which the dynamic scheduling should happen. But requiring the application to do all this configuration would make the application complicated as well as the same code has to be repeated for a new application. Event mode helper tries to solve that.
All the complex configuration would be implemented by the helper library and the helper library would provide a default conf as well.
The task of configuring eventdev and its adaptors, and ethernet devices
is a daunting task indeed. If we could simplify that, that would be great.
However, the flexibility and many of the parameters are there for a
reason (those there aren't should be deprecated). I would expect a
real-world application to tweak quite a few of them. I know our
applications do.
I worry I have is that if you put eventmode (in its current form)
forward as a generic framework, applications might start using it, only
to realize it's not flexible enough, and then eventmode is just an extra
layer, increasing rather than reducing complexity. Or even worse, the
application's developers are forced to do a big-bang switch over to
using the event and ethernet device APIs directly, in case they can't
patch DPDK to work around the
eventmode-assumption-that-didn't-hold-for-them.
You could always add flexibility to the framework (as you encounter a
need for it), but then it will grow in complexity as well.
A less ambitious approach would be to instead do a properly modularized,
non-trivial eventdev example application, for the applications to start
off from, instead of a generic library.
I would expect it to be very difficult to design a truly generic
application framework for eventdev-based applications. Such a framework
would tie everything that's needed in a non-trivial application
together. If successful, it would be a huge step toward making DPDK an
operating system for packet processing applications.
What event devices have you tested with?