All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Dumazet <eric.dumazet@gmail.com>
To: chavey@google.com
Cc: davem@davemloft.net, netdev@vger.kernel.org, therbert@google.com
Subject: Re: [PATCH] Add rtnetlink init_rcvwnd to set the TCP initial receive window
Date: Tue, 15 Dec 2009 22:00:24 +0100	[thread overview]
Message-ID: <4B27F8E8.8040606@gmail.com> (raw)
In-Reply-To: <pvm3a3cx9cd.fsf@chavey.mtv.corp.google.com>

Le 15/12/2009 21:37, chavey@google.com a écrit :
> Add rtnetlink init_rcvwnd to set the TCP initial receive window size
> advertised by passive and active TCP connections.
> The current Linux TCP implementation limits the advertised TCP initial
> receive window to the one prescribed by slow start. For short lived
> TCP connections used for transaction type of traffic (i.e. http
> requests), bounding the advertised TCP initial receive window results
> in increased latency to complete the transaction.
> Support for setting initial congestion window is already supported
> using rtnetlink init_cwnd, but the feature is useless without the
> ability to set a larger TCP initial receive window.
> The rtnetlink init_rcvwnd allows increasing the TCP initial receive
> window, allowing TCP connection to advertise larger TCP receive window
> than the ones bounded by slow start.
> 
> Signed-off-by: Laurent Chavey <chavey@google.com>
> ---

> diff --git a/include/net/dst.h b/include/net/dst.h
> index 5a900dd..ac7a116 100644
> --- a/include/net/dst.h
> +++ b/include/net/dst.h
> @@ -78,21 +78,13 @@ struct dst_entry
>  	__u32			__pad2;
>  #endif
>  
> -
>  	/*
> -	 * Align __refcnt to a 64 bytes alignment
> +	 * Align client references, __refcnt to a 64 bytes alignment
>  	 * (L1_CACHE_SIZE would be too much)
> -	 */
> -#ifdef CONFIG_64BIT
> -	long			__pad_to_align_refcnt[2];
> -#else
> -	long			__pad_to_align_refcnt[1];
> -#endif
> -	/*
>  	 * __refcnt wants to be on a different cache line from
>  	 * input/output/ops or performance tanks badly
>  	 */
> -	atomic_t		__refcnt;	/* client references	*/
> +	atomic_t		__refcnt __attribute__((__aligned__(64)));

Please dont do that.

There is a reason for not hiding holes in this structure.

Next time someone wants to add a new metric... bang... 64 bytes silently added...

->
#ifdef CONFIG_64BIT
	long			__pad_to_align_refcnt[1];
#endif


Thanks

  reply	other threads:[~2009-12-15 21:00 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-15 20:37 [PATCH] Add rtnetlink init_rcvwnd to set the TCP initial receive window chavey
2009-12-15 21:00 ` Eric Dumazet [this message]
  -- strict thread matches above, loose matches on Subject: below --
2009-12-15 21:15 chavey
2009-12-23 22:16 ` David Miller

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=4B27F8E8.8040606@gmail.com \
    --to=eric.dumazet@gmail.com \
    --cc=chavey@google.com \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    --cc=therbert@google.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.