On Wed, 17 Sep 2025 23:47:03 -0700 Khadem Ullah <14pwcse1...@uetpeshawar.edu.pk> wrote:
> @@ -3628,6 +3709,7 @@ pmd_test_exit(void) > } > } > #endif > + > if (ports != NULL) { > no_link_check = 1; > RTE_ETH_FOREACH_DEV(pt_id) { I will drop that extra newline... Sorry > + > +static int > +handle_testpmd_request(const struct rte_mp_msg *request, const void *peer) > +{ > + const struct testpmd_mp_req *req = (const struct testpmd_mp_req > *)request->param; > + > + if (req->t == TESTPMD_REQ_TYPE_EXIT) { > + printf("\nReceived notification of primary exiting\n"); > + fflush(stdout); > + > + /* Response is sent after forwarding loop exits */ > + rte_atomic_store_explicit(&primary_name, peer, > rte_memory_order_relaxed); > + > + kill(getpid(), SIGINT); Needed to use kill() here to force end of read when testpmd is in interactive mode. Only other option would be closing stdin, but that seemed less safe.