<div dir="ltr">Hi Robin,<br><br>Thank you for the quick response!<br><br>I tried adding virtual interfaces to Grout, and it seems to be working well—thanks for the tip! I also reviewed main/dpdk.c and noticed that many EAL parameters are hardcoded. For now, I’ll add the parameter I need (--trace=lib.ethdev.*) directly in the source code.<br><br>Actually, I'm analyzing the performance of DPDK applications using the DPDK trace library, and I'm planning to present a few use cases at an upcoming conference based on Grout. I think a CLI parameter in Grout to pass "additional EAL arguments" directly to DPDK would be a useful feature. I'll submit a feature suggestion for this on GitHub.<br><br>Thanks again for your help!<br>Cheers,<div>Adel</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Nov 14, 2024 at 2:18 PM Robin Jarry <<a href="mailto:rjarry@redhat.com">rjarry@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Adel,<br>
<br>
Adel Belkhiri, Nov 14, 2024 at 19:45:<br>
> Hi everyone,<br>
><br>
> I would like to take a moment to thank you for this great project. I've<br>
> been experimenting with grout and exploring its features, and I have a<br>
> couple of questions:<br>
<br>
Thanks for your message.<br>
<br>
> 1. Does grout support virtual network interfaces? In DPDK applications,<br>
> these are typically specified using arguments like:<br>
> --vdev="net_vhost0,iface=/tmp/vhost-user1".<br>
<br>
Yes, it should work via port devargs, like physical NICs. E.g.:<br>
<br>
grcli add interface port vhu0 devargs net_vhost0,iface=/tmp/vhost-user1<br>
<br>
> 2. How can I pass EAL parameters to grout, such as --socket, --trace, etc.?<br>
<br>
EAL arguments are hard coded by grout during startup and everything is <br>
then done dynamically at runtime. Some parameters can be influenced <br>
based on grout startup flags.<br>
<br>
-v, --verbose<br>
Will increase the verbosity. If specified 3 times, it will also enable <br>
debugging logs for all DPDK libraries.<br>
<br>
<a href="https://github.com/DPDK/grout/blob/da5e879f85c3/main/dpdk.c#L88" rel="noreferrer" target="_blank">https://github.com/DPDK/grout/blob/da5e879f85c3/main/dpdk.c#L88</a><br>
<br>
-t, --test-mode<br>
Will add --no-shconf --no-huge -m 2048 to rte_eal_init() arguments. <br>
This is used to run grout with net_null ports with a non-privileged <br>
user for development testing.<br>
<br>
<a href="https://github.com/DPDK/grout/blob/da5e879f85c3/main/dpdk.c#L164-L167" rel="noreferrer" target="_blank">https://github.com/DPDK/grout/blob/da5e879f85c3/main/dpdk.c#L164-L167</a><br>
<br>
The --socket argument should not be needed. Memory will be allocated on <br>
the proper socket based on the detected PCI device socket and/or pinned <br>
CPU. We will probably need some additional work to force allocation of <br>
memory on a specific socket for virtual devices.<br>
<br>
If you think there are some missing features, please provide some <br>
feedback. Grout is still in its infancy and there are many things to <br>
improve.<br>
<br>
Cheers,<br>
Robin<br>
<br>
</blockquote></div>