Subject: Re: struct sock size limit?

From: Arnaldo Carvalho de Melo <[email-masked]>
Date: Sun, 27 Oct 2002 03:18:40 -0300

Em Sat, Oct 26, 2002 at 10:44:03PM -0700, Cheng Jin escreveu:
> Hi,
> 
> I have been adding members to struct sock (by changing struct tcp_opt) in
> linux 2.4.18-3 kernel.  I haven't had problems with the kernel until
> today.   When I added a few more bytes (~ 20 bytes) on top of my old
> addition (around 80 bytes), the kernel would crash calling udp_sendmsg

beware the data dependencies of struct sock and tcp_tw_bucket, etc, I
bet you're adding new struct members at the start of struct sock, see the
comment in include/net/tcp.h, just above struct tcp_tw_bucket definition...
and also study current include/net/sock.h in 2.5, this thing was all
changed (for the better 8) ).

> (syslogd initialization).  I suspect that there may be some kind of size
> limit with struct sock/tcp_opt.  The TCP connected state is checked
> from within udp_sendmsg (no idea why that is so).

so look at other protocols such as decnet that also uses the TCP_ state
macros :-) its just reusing those macros.
 
> I searched around on google, but didn't find anything on struct sock or
> struct tcp_opt.  Does anyone know whether the size of struct sock/tcp_opt
> is capped?
> 
> Thanks a lot,
> 
> Cheng
> 
> Lab # 626 395 8820
>