From: Kevin Laatz Date: Tue, 26 Oct 2021 13:14:29 +0000 (+0000) Subject: examples/ioat: add signal-triggered device dump X-Git-Url: http://git.droids-corp.org/?p=dpdk.git;a=commitdiff_plain;h=c7897196782a433b47ce63829922060cfc3d40bb examples/ioat: add signal-triggered device dump Enable dumping device info via the signal handler. With this change, when a SIGUSR1 is issued, the application will print a dump of all devices being used by the application. Signed-off-by: Kevin Laatz Reviewed-by: Conor Walsh --- diff --git a/examples/ioat/ioatfwd.c b/examples/ioat/ioatfwd.c index 995ba7b8db..e8a3f2f88a 100644 --- a/examples/ioat/ioatfwd.c +++ b/examples/ioat/ioatfwd.c @@ -1004,6 +1004,20 @@ port_init(uint16_t portid, struct rte_mempool *mbuf_pool, uint16_t nb_queues) cfg.ports[cfg.nb_ports++].nb_queues = nb_queues; } +/* Get a device dump for each device being used by the application */ +static void +rawdev_dump(void) +{ + uint32_t i, j; + + if (copy_mode != COPY_MODE_IOAT_NUM) + return; + + for (i = 0; i < cfg.nb_ports; i++) + for (j = 0; j < cfg.ports[i].nb_queues; j++) + rte_rawdev_dump(cfg.ports[i].ioat_ids[j], stdout); +} + static void signal_handler(int signum) { @@ -1011,6 +1025,8 @@ signal_handler(int signum) printf("\n\nSignal %d received, preparing to exit...\n", signum); force_quit = true; + } else if (signum == SIGUSR1) { + rawdev_dump(); } } @@ -1034,6 +1050,7 @@ main(int argc, char **argv) force_quit = false; signal(SIGINT, signal_handler); signal(SIGTERM, signal_handler); + signal(SIGUSR1, signal_handler); nb_ports = rte_eth_dev_count_avail(); if (nb_ports == 0)