> > As I remember the purpose of the patch was to fix the race condition inside 
> > rte_alarm library.
> > I believe that the patch provided by Michal & Pawel fixes the issues you 
> > discovered.
> > If you think, that is not the case, could you please provide a list of 
> > remaining issues?
> > Excluding ones that you just don't like it, and you are not happy with 
> > rte_alarm API in total?


> Gladly.  As Pawel explained the race, its possible that, after calling
> rte_eal_alarm_cancel, an in-flight execution of an alarm callback may still be
> running.  The problem with that ostensibly is that data which is being 
> accessed
> by the callback might be then accessed in parallel with another process 
> leading
> to data corruption or some other problem. The issue I have with his patch is
> that it doesn't completely close the race.  While it does close the race for 
> the
> condition in whcih thread B is running the alarm callback while thread A is
> executing the cancel operation, it does not close the case for when a single
> thread B is running the cancel operation, as the in-flight execution itself is
> still active.

A bit puzzled here:
Are you saying that calling alarm_cancel() for itself inside 
eal_alarm_callback() might cause a problem?
I still don't see how.

>  If such a cancellation occurs via an intermediary function (i.e.
> one which is not aware that it is explicitly running an alarm callback, which
> signals another thread to execute via some other method (ipc communication,
> etc), the same data corruption may occur, because the canceled and complete
> guarantee has been violated.
> 

Reply via email to