mbox series

[ovs-dev,v5,0/5] Prevent race in packet buffering

Message ID 20230428094232.528745-1-amusil@redhat.com
Headers show
Series Prevent race in packet buffering | expand

Message

Ales Musil April 28, 2023, 9:42 a.m. UTC
The series is split into 5 patches.

It aims to simplify the packet buffering
process and encapsulate it inside mac-learn
module. This is done through refactoring
and preparation. The last patch then fixes the
race condition in packet buffering by utilizing
I-P node.

The difference between v4 and v5 is that the
first patch was devided even further into four
patches, the last two patches from v4 are squashed
into v5 as this their separation didn't have any
meaningful value.

Ales Musil (5):
  mac-learn: Make the mac_binding struct more flexible
  ovn-util: Add helper function to parse ip into mapped ipv6
  pinctrl: Simplify packet buffering structure
  controller: Move the packet buffering into mac-learn
  controller: Prevent race in packet buffering

 controller/mac-learn.c      | 244 ++++++++++++++++++++----
 controller/mac-learn.h      |  88 +++++++--
 controller/ovn-controller.c | 200 +++++++++++++++++++-
 controller/pinctrl.c        | 356 ++++++++----------------------------
 controller/pinctrl.h        |   6 +-
 lib/ovn-util.c              |  12 ++
 lib/ovn-util.h              |   2 +
 northd/northd.c             |  32 +---
 utilities/ovn-trace.c       |   5 +-
 9 files changed, 583 insertions(+), 362 deletions(-)

Comments

Dumitru Ceara May 9, 2023, 1:40 p.m. UTC | #1
On 4/28/23 11:42, Ales Musil wrote:
> The series is split into 5 patches.
> 
> It aims to simplify the packet buffering
> process and encapsulate it inside mac-learn
> module. This is done through refactoring
> and preparation. The last patch then fixes the
> race condition in packet buffering by utilizing
> I-P node.
> 

Hi Ales,

I reviewed the series and I left some minor comments for patches 1-4.
If it's fine by you I can go ahead and fold those in and apply them to
the main branch.  That should make it easier to respin a new version.

Patch 5, on the other hand, needs some more re-design I think.  I'm
afraid the performance cost it introduces is too high.

Please let me know if you're ok with me applying the first 4 patches.

Regards,
Dumitru

> The difference between v4 and v5 is that the
> first patch was devided even further into four
> patches, the last two patches from v4 are squashed
> into v5 as this their separation didn't have any
> meaningful value.
> 
> Ales Musil (5):
>   mac-learn: Make the mac_binding struct more flexible
>   ovn-util: Add helper function to parse ip into mapped ipv6
>   pinctrl: Simplify packet buffering structure
>   controller: Move the packet buffering into mac-learn
>   controller: Prevent race in packet buffering
> 
>  controller/mac-learn.c      | 244 ++++++++++++++++++++----
>  controller/mac-learn.h      |  88 +++++++--
>  controller/ovn-controller.c | 200 +++++++++++++++++++-
>  controller/pinctrl.c        | 356 ++++++++----------------------------
>  controller/pinctrl.h        |   6 +-
>  lib/ovn-util.c              |  12 ++
>  lib/ovn-util.h              |   2 +
>  northd/northd.c             |  32 +---
>  utilities/ovn-trace.c       |   5 +-
>  9 files changed, 583 insertions(+), 362 deletions(-)
>
Ales Musil May 9, 2023, 1:42 p.m. UTC | #2
On Tue, May 9, 2023 at 3:40 PM Dumitru Ceara <dceara@redhat.com> wrote:

> On 4/28/23 11:42, Ales Musil wrote:
> > The series is split into 5 patches.
> >
> > It aims to simplify the packet buffering
> > process and encapsulate it inside mac-learn
> > module. This is done through refactoring
> > and preparation. The last patch then fixes the
> > race condition in packet buffering by utilizing
> > I-P node.
> >
>
> Hi Ales,
>
> I reviewed the series and I left some minor comments for patches 1-4.
> If it's fine by you I can go ahead and fold those in and apply them to
> the main branch.  That should make it easier to respin a new version.
>
> Patch 5, on the other hand, needs some more re-design I think.  I'm
> afraid the performance cost it introduces is too high.
>
> Please let me know if you're ok with me applying the first 4 patches.
>
> Regards,
> Dumitru
>

I'm fine with the suggestions for 1-4, I'll take a look at different way
that wouldn't have a huge performance impact.

Thanks,
Ales


>
> > The difference between v4 and v5 is that the
> > first patch was devided even further into four
> > patches, the last two patches from v4 are squashed
> > into v5 as this their separation didn't have any
> > meaningful value.
> >
> > Ales Musil (5):
> >   mac-learn: Make the mac_binding struct more flexible
> >   ovn-util: Add helper function to parse ip into mapped ipv6
> >   pinctrl: Simplify packet buffering structure
> >   controller: Move the packet buffering into mac-learn
> >   controller: Prevent race in packet buffering
> >
> >  controller/mac-learn.c      | 244 ++++++++++++++++++++----
> >  controller/mac-learn.h      |  88 +++++++--
> >  controller/ovn-controller.c | 200 +++++++++++++++++++-
> >  controller/pinctrl.c        | 356 ++++++++----------------------------
> >  controller/pinctrl.h        |   6 +-
> >  lib/ovn-util.c              |  12 ++
> >  lib/ovn-util.h              |   2 +
> >  northd/northd.c             |  32 +---
> >  utilities/ovn-trace.c       |   5 +-
> >  9 files changed, 583 insertions(+), 362 deletions(-)
> >
>
>
Dumitru Ceara May 9, 2023, 2:58 p.m. UTC | #3
On 5/9/23 15:42, Ales Musil wrote:
> On Tue, May 9, 2023 at 3:40 PM Dumitru Ceara <dceara@redhat.com> wrote:
> 
>> On 4/28/23 11:42, Ales Musil wrote:
>>> The series is split into 5 patches.
>>>
>>> It aims to simplify the packet buffering
>>> process and encapsulate it inside mac-learn
>>> module. This is done through refactoring
>>> and preparation. The last patch then fixes the
>>> race condition in packet buffering by utilizing
>>> I-P node.
>>>
>>
>> Hi Ales,
>>
>> I reviewed the series and I left some minor comments for patches 1-4.
>> If it's fine by you I can go ahead and fold those in and apply them to
>> the main branch.  That should make it easier to respin a new version.
>>
>> Patch 5, on the other hand, needs some more re-design I think.  I'm
>> afraid the performance cost it introduces is too high.
>>
>> Please let me know if you're ok with me applying the first 4 patches.
>>
>> Regards,
>> Dumitru
>>
> 
> I'm fine with the suggestions for 1-4, I'll take a look at different way
> that wouldn't have a huge performance impact.
> 

Cool, thanks!  I pushed the first packets to the main branch.

Regards,
Dumitru