On Wed, Apr 10, 2013 at 9:01 AM, Jesse Gross <[email protected]> wrote:
> On Tue, Apr 9, 2013 at 9:04 PM, Pravin Shelar <[email protected]> wrote:
>> On Tue, Apr 9, 2013 at 6:41 PM, Jesse Gross <[email protected]> wrote:
>>> I think there is potentially another race condition here: if a
>>> notification comes after we retrieve the value of count but before we
>>> exit the workqueue. The counter will be incremented but another work
>>> instance won't be scheduled since one is already running. Essentially
>>> we're trying to emulate a semaphore here but actually doing that
>>> directly would require introducing a new thread, which I really don't
>>> want to do.
>>>
>> Pending flag is cleared before actual work execution is started. So I think
>> this race is not possible.
>
> You're right, that's great. We should also double check that our
> compatibility code for workqueues is sufficient for everything we are
> trying to do.

Actually, I think that this means that we don't need the counters at
all.  If a port is deleted after we start iterating then we'll always
get another pass.  I noticed a similar example of this in
net_namespace.c:__put_net().
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to