On Thu, Mar 29, 2018 at 09:04:52AM +0100, Burakov, Anatoly wrote:
> On 27-Feb-18 2:46 PM, Olivier Matz wrote:
> > The management threads must not bother the dataplane or service cores.
> > Set the affinity of these threads accordingly.
> > 
> > Signed-off-by: Olivier Matz <olivier.m...@6wind.com>
> > ---
> 
> <...>
> 
> > +   set_affinity = 0;
> > +   CPU_ZERO(&cpuset);
> > +   for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++) {
> > +           if (eal_cpu_detected(lcore_id) &&
> > +                           rte_lcore_has_role(lcore_id, ROLE_OFF)) {
> > +                   CPU_SET(lcore_id, &cpuset);
> > +                   set_affinity = 1;
> > +           }
> > +   }
> > +   if (set_affinity) {
> > +           ret = pthread_setaffinity_np(*thread, sizeof(cpuset), &cpuset);
> > +           if (ret < 0)
> > +                   goto fail;
> > +   }
> 
> Hi Olivier,
> 
> Please correct me if i'm wrong here, but if all detected cores are busy
> doing something (such as would be the case if DPDK is run without a coremask
> specified), affinity is not set? Maybe set it to master lcore instead
> (perhaps unconditionally - we usually recommend not using master lcore for
> anything important - perhaps setting it to master core always would be
> better, instead of trying to find unused lcores)?

Good point and good idea, I will update the patchset.

Thanks,
Olivier

Reply via email to