Hello Harry, I've been experimenting with lcore workers. Please check out the new helloworld example: https://github.com/getelson-at-mellanox/rdpdk/blob/safe-q/examples/helloworld.rs There are 2 options for the example configuration: 1 Start RDPDK workers on the same cores as EAL: cargo run --example helloworld -- -a -l 0,1,3,5 2 Start RDPDK workers on dedicated cores: cargo run --example helloworld -- -a 0000:43:00.0 -l 0,1,3,5 -- -l 2-8 Regards, Gregory ________________________________ From: Gregory Etelson Sent: Sunday, April 27, 2025 21:50 To: Van Haaren, Harry Cc: Gregory Etelson ; dev@dpdk.org ; Richardson, Bruce ; owen.hilyard@unh.edu Subject: Re: [PATCH] rust: RFC/demo of safe API for Dpdk Eal, Eth and Rxq Hello Harry, > > I implemented a working echo server with your API. > > The code is here: https://github.com/getelson-at-mellanox/rdpdk/tree/safe-q > > Ah cool! Great to see the API working. > > Reviewing the "echo.rs" code, the MbuffMempoolHandle ergonomics can perhaps be improved, > I'll try work on that and have some API suggestions to the mailing list soon. > > I see the echo.rs code uses a normal "std::thread::spawn" (not DPDK lcores), there is > some design to do here to ensuring that best practices are used; > - any dataplane threads are registered as lcores (for best performance, mempool caches etc) > - registered lcores are also unregistered when a thread ends (potentially allowing lcore-id reuse??) > I haven't thought about this much, but had a brief discussion with Bruce (who is on holidays now). > > Suggesting that mempools & lcores are the two next up API sets to "Rustify" :) > I see 2 issues with the DPDK lcore API: Unsafe "extern" lcore callback is not considered as new thread and compiler will not run arguments Send verifications. Also lcore arguments use generic 'void *' pointer. Maybe Rust DPDK library needs native lcore implementation. Differnet thread agrument types can we wrapped with a macro call. Example is here: https://github.com/getelson-at-mellanox/rdpdk/blob/37494bcae1fcf06bb4338519f931c2130105e576/examples/echo.rs#L88 Regards, Gregory