← Back to team overview

rohc team mailing list archive

Kernel Module Patch - RE: 32-bit Compatibility?

 

Greetings,

I have attached the patch to address the following kernel module issues:
- 64-bit division
- Oversized stack frames leading to crashes

I have also attached the pcapng file for my HTTP problem.  I see some DUP ACK messages but I can't tell what the issue is.  Hopefully the attachment makes it through, as it is about 700k.

Your help is appreciated.  :-)
-Alex


-----Original Message-----
From: Rohc [mailto:rohc-bounces+alex.charissis=ge.com@xxxxxxxxxxxxxxxxxxx] On Behalf Of Didier Barvaux
Sent: Wednesday, February 25, 2015 3:47 PM
To: ROHC Library
Subject: Re: [Rohc] 32-bit Compatibility?

Hello,

> > I tested on ARM. I confirm the problem for the kernel module.
> 
> Using the do_div macro for the kernel, I was able to remedy the 64-bit 
> division issue.  This may already be in the patch in my last message.

Great! I'll check this deeper next weekend and commit it.

 
> >> Is it possible my patch is causing the crash?  I've turned tracing 
> >> on but kernel panics usually prevent me from figuring out the exact 
> >> point of the crash.
> 
> > Probably not if it happens with TCP traffic.
> 
> Correct, it turns out that the large stack frame (below) is the cause 
> of the kernel crashes.

Thank you for the confirmation!
 

> >> I also get the following warnings when building from master:
> >> src/decomp/d_tcp.c:880:1: warning: the frame size of 16376 bytes is 
> >> larger than 1024 bytes [-Wframe-larger-than=]
> >> src/decomp/rohc_decomp_rfc3095.c:1671:1: warning: the frame size of 
> >> 1096 bytes is larger than 1024 bytes [-Wframe-larger-than=]
> 
> > Yes, I know those 2 warnings. I defined large structs as local 
> > variables, so the stack became quite big. I have yet to figure out 
> > how to achieve the same job without them. I don't know if large 
> > stacks may cause problems in the kernel or not.
> 
> I've done some refactoring to dynamically allocate the 
> rohc_tcp_extr_bits and rohc_tcp_decoded_values structures.  Also 
> passing those structures in by reference also seems to shrink the size 
> of the stack frame for d_tcp_decode().  No more crashes and the TCP 
> profile appears to work!  :-)

Great! Please send me your patch. I'll try to integrate it in master so that the kernel module works fine for everyone.


>  I am still seeing some issues with
> some content-heavy HTTP requests, but these may still be open issues.

Probably. Send me a network capture to be sure. If it is not a bug I encountered (and fixed in my testing branch), I'll analyse the problem and try to fix it.


Regards,
Didier

Attachment: rohc-2_0_0-AAC.patch
Description: rohc-2_0_0-AAC.patch

Attachment: rohc-2_0_0-httpAAC.pcapng
Description: rohc-2_0_0-httpAAC.pcapng