Questions about the the pdump functionality

Stephen Hemminger stephen at networkplumber.org
Mon Oct 23 19:19:34 CEST 2023


On Mon, 23 Oct 2023 18:32:48 +0300
Pavel Vazharov <freakpv at gmail.com> wrote:

> Hi there,
> 
> We've a DPDK based application from which we need to take packet dumps from
> time to time when problems arise. We are planning to use librte_pdump
> functions and the dpdk-dumppcap tool.
> I've few questions in related to the pdump functionality which we want to
> use:
> - Is calling `rte_pdump_init` at the startup of the main application
> causing some overhead for the packet processing during its run if there is
> no actual packet capturing enabled by the dpdk-dumppcap tool? I suppose
> there should be some check in place but is it something like a single `if`
> condition on a boolean flag or something heavier?
> - Is it possible then to call `rte_pdump_init` during the runtime of the
> main application only when I know that I'm about to start the dpdk-dumppcap
> tool? I mean, is it supported and safe to call `rte_pdump_init` and
> `rte_pdump_uninit` while the main application is running and processing
> packets or these functions are supposed to be called only at application
> startup and application stop.
> 
> Thanks in advance,
> Pavel.

Short answer:
The overhead only happens when the dump application is running.

Long answer:
Running rte_pdump_init() tells adds an additional service to the
multi-process (primary/secondary) communication mechanism.
Secondary and primary process connect with each other over Unix
domain socket, and the services are handled by the multi-process
thread in the primary process. Adding a service does not interact
with fast path at all.

The best way (as always) to discover this yourself is to read
the source code and follow along.


More information about the users mailing list