[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