On 8/9/23 15:48, Mike Pattrick wrote:
> On Thu, Jul 13, 2023 at 9:55 AM Eelco Chaudron <echau...@redhat.com> wrote:
>>
>>
>>
>> On 13 Jul 2023, at 15:15, Eelco Chaudron wrote:
>>
>>> On 13 Jul 2023, at 15:10, Ilya Maximets wrote:
>>>
>>>> On 7/12/23 15:37, Mike Pattrick wrote:
>>>>> Several xlate actions used in recursive translation currently store a
>>>>> large amount of information on the stack. This can result in handler
>>>>> threads quickly running out of stack space despite before
>>>>> xlate_resubmit_resource_check() is able to terminate translation. This
>>>>> patch reduces stack usage by over 3kb from several translation actions.
>>>>>
>>>>> This patch also moves some trace function from do_xlate_actions into its
>>>>> own function.
>>>>>
>>>>> Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2104779
>>>>> Signed-off-by: Mike Pattrick <m...@redhat.com>
>>>>> Reviewed-by: Simon Horman <simon.hor...@corigine.com>
>>>>> Acked-by: Eelco Chaudron <echau...@redhat.com>
>>>>>
>>>>> ---
>>>>> Since v1:
>>>>>  - Refactored code into specialized functions and renamed variables for
>>>>>  improved readability.
>>>>> Since v2:
>>>>>  - Removed inline keywords
>>>>> Since v3:
>>>>>  - Improved formatting.
>>>>> Since v4:
>>>>>  - v4 patch was an incorrect revision
>>>>> Since v5:
>>>>>  - Moved trace portmap to heap
>>>>>  - Moved additional flow_tnl mf_subvalue structs to heap
>>>>> Since v5.b:
>>>>>  - Reordered variables in xlate_sample
>>>>> ---
>>>>>  ofproto/ofproto-dpif-xlate.c | 259 ++++++++++++++++++++++-------------
>>>>>  1 file changed, 164 insertions(+), 95 deletions(-)
>>>>
>>>> <snip>
>>>>
>>>>> @@ -6343,8 +6407,8 @@ compose_conntrack_action(struct xlate_ctx *ctx, 
>>>>> struct ofpact_conntrack *ofc,
>>>>>  {
>>>>>      uint16_t zone;
>>>>>      if (ofc->zone_src.field) {
>>>>> -        union mf_subvalue value;
>>>>> -        memset(&value, 0xff, sizeof(value));
>>>>> +        union mf_subvalue *value = xmalloc(sizeof *value);
>>>>> +        memset(value, 0xff, sizeof(*value));
>>>>
>>>> Nit: If we can remove extra parenthesis in sizeof, that would be great.
>>>>      I suppose, can be done on commit.
>>>>
>>>> I will not Ack, because I didn't dive into the code review of this version.
>>>> But I can confirm that I see benefits now with all compilers I tested with.
>>>> Thanks!
>>>
>>> Thanks for the quick check! Will remove the extra parenthesis, and commit 
>>> this.
>>
>> Thanks Mike,
>>
>> Pushed this patch to master.
> 
> Thanks everyone,
> 
> I've sent in backports of this patch down to 2.17. I would like to
> backport this because currently users can easily segfault OVS with a
> normal looking OVN configuration unless they also increase the default
> stack size for the process before starting it.

Makes sense.  I'll take a look at backports.
Thanks!

Best regards, Ilya Maximets.

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to