mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sourav Ghosh <sourav@ux4.sp.cs.cmu.edu>
To: jacob.blain.christen@entheal.com
Cc: sourav@cs.cmu.edu, linux-kernel@vger.kernel.org
Subject: Re: creation of sock
Date: Sat, 24 Feb 2001 11:30:19 -0500 (EST)	[thread overview]
Message-ID: <20010224163115Z129428-28373+225@vger.kernel.org> (raw)
In-Reply-To: <3A96DBC6.D02192AA@entheal.com> from "Jacob L E Blain Christen" at Feb 23, 2001 04:53:10 pm

Hello,

It seems like linux replaces sock with tcp_tw_bucket structure in the
sock list in order to "work around the memory consumption problems for
the heavilly loaded server". 

The header file tcp.h  has some comments before declaring
"tcp_tw_bucket" structure. It is done in tcp_input.c.

But anyway, tcp_tw_bucket is never identical to sock structure. This
is a serious hack and I'm suprised no linux kernel documentation talks
about it.

I just wanted to let others know so that no one else faces this
problem.

-- 
Sourav






















> 
> im a kernel newbie here so pardon "the blind leading the blind" ...
> 
> doing a quick search for all calls to sk_alloc in the entire kernel
> sources
> yields only one call that sets the "zero out the allocated struct"
> boolean
> to false and that is:
> 	net/ipv4/tcp_minisocks.c:tcp_create_openreq_child().
> this funtion in turn is only ever called from:
> 	net/ipv[46]/tcp_ipv[46].c:tcp_v[46]_syn_recv_sock()
> 
> the comment above the ipv4 version is (verbatim):
> 
> 	/* 
> 	 * The three way handshake has completed - we got a valid synack - 
> 	 * now create the new socket. 
> 	 */
> 
> so if you need those experimental values of yours zeroed out on socket
> creation i suggest replacing this snippet from
> net/core/sock.c:sk_alloc()
> 
>         if(sk && zero_it) {
>                 memset(sk, 0, sizeof(struct sock));
>                 sk->family = family;
>                 sock_lock_init(sk);
>         }
> 
> with
> 
>         if(  sk  ) {
> 		/* set your NULL init values here */
> 		if(  zero_it  ) {
> 	                memset(sk, 0, sizeof(struct sock));
> 	                sk->family = family;
> 	                sock_lock_init(sk);
> 		}
>         }
> 
> doh!  i just re-read your mail and realized youre using the 2.2.15
> kernel.
> my examples are from the 2.4.2 sources...
> 
> looking at the 2.2.16 source (i have only 2.2.1[46] and not 2.2.15 for
> the
> 2.2 series) the (roughly) congruent if block of code is:
> 
>         if(sk) {
>                 if (zero_it) 
>                         memset(sk, 0, sizeof(struct sock));
>                 sk->family = family;
>         }
> 
> and so if you're setting your init values to NULL under the "zero_it"
> condition you would get the behavior that you reported.
> 
> hope that helps.










  reply	other threads:[~2001-02-24 16:31 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-02-23 20:30 Sourav Ghosh
2001-02-23 21:53 ` Jacob L E Blain Christen
2001-02-24 16:30   ` Sourav Ghosh [this message]
2001-02-23 22:11 ` Jacob L E Blain Christen
2001-02-24  0:29   ` Sourav Ghosh
2001-02-24  1:48 ` Sourav Ghosh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20010224163115Z129428-28373+225@vger.kernel.org \
    --to=sourav@ux4.sp.cs.cmu.edu \
    --cc=jacob.blain.christen@entheal.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sourav@cs.cmu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®