[ovs-dev] [PATCH v3] datapath: Simplify datapath locking.
Jesse Gross
jesse at nicira.com
Wed Apr 10 17:32:17 UTC 2013
On Wed, Apr 10, 2013 at 9:01 AM, Jesse Gross <jesse at nicira.com> wrote:
> On Tue, Apr 9, 2013 at 9:04 PM, Pravin Shelar <pshelar at nicira.com> wrote:
>> On Tue, Apr 9, 2013 at 6:41 PM, Jesse Gross <jesse at nicira.com> 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().
More information about the dev
mailing list