[dpdk-dev] [PATCH V20 2/4] eal: add failure handler mechanism for hot plug
Ananyev, Konstantin
konstantin.ananyev at intel.com
Fri Apr 20 18:16:23 CEST 2018
> > +
> > +static void sigbus_handler(int signum __rte_unused, siginfo_t *info,
> > + void *ctx __rte_unused)
> > +{
> > + int ret;
> > +
> > + RTE_LOG(ERR, EAL, "SIGBUS error, fault address:%p\n", info->si_addr);
> > + ret = dev_uev_failure_process(NULL, info->si_addr);
>
> As now you can try to mmap/munmap same address from two or more different threads
> you probably need some synchronization here.
> Something simple as spinlock seems to be enough here.
> We might have one per device or might be even a global one would be ok here.
>
> > + if (!ret)
> > + RTE_LOG(DEBUG, EAL,
> > + "SIGBUS error is because of hot unplug!\n");
Also if sigbus handler wasn't able to fix things - failure addr doesn't belong to
any devices, or remaping fails - we probably should invoke previously installed handler
or just apply default action.
Konstantin
> > +}
> > +
More information about the dev
mailing list