Dear Bruce, Thank you for the quick reply, you are indeed right.
In fact the problem is much more simple than that, now that I realise. Our application must have one (or more) threads which do background tasks aside from packet processing (one of them is actually controlling the I/O), and with multi-core architectures we were sacrifising core0 for such purpose. The question now would be how is the appropriate way to treat this situation with DPDK; a) First creating a thread before calling rte_eal_init(): main thread -> pthread_create() I/O thread -> call rte_eal_init() (from I/O thread? main thread? irrelevant?) -> ... -> I/O thread calls rte_eal_remote_launch() to launch itself b) Create it after: main thread -> rte_eal_init() call from main thread -> pthread_create() I/O thread -> ... -> I/O thread calls rte_remote_launch() to launch itself I guess option a) would be more suitable, is it? thank you and regards marc On 07/04/14 14:55, Richardson, Bruce wrote: >> -----Original Message----- >> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Marc Sune >> Sent: Monday, April 07, 2014 1:51 PM >> To: <dev at dpdk.org> >> Subject: [dpdk-dev] RTE_EAL on single core CPUs >> >> Dear all, >> >> I was preparing a development machine (kvm - qemu) with a single core, and >> stumbled with >> what appears to be a limitation with EAL [1]. >> The VM is setup emulating a SandyBridge CPU but with a single CPU and running >> 1.6.0 branch HEAD (perhaps this is the problem??). >> >> I was also interested in this particular setup, because we haven't yet tried >> our application >> with some Atom equipment we have here, but we need to make it run also there. >> >> Any ideas? I am probably missing something really fundamental here. > Hi Marc, > > I think in your case you've hit more a limitation of the particular app, > rather than one for the EAL. L2fwd requires more than a single core to run, > but you can easily write applications that can handle packets from multiple > ports using a single core. > Where you may hit issues, though, is that you cannot isolate the single core > cpu from the linux kernel, so you may need to ensure you have enough > buffering throughout the app to avoid packet loss when the kernel interrupts > you to do its own house-keeping tasks. > > Regards, > /Bruce >

