[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20071221.012720.67812056.davem@davemloft.net>
Date: Fri, 21 Dec 2007 01:27:20 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: billfink@...dspring.com
Cc: ilpo.jarvinen@...sinki.fi, netdev@...r.kernel.org,
herbert@...dor.apana.org.au, jheffner@....edu
Subject: Re: TSO trimming question
From: Bill Fink <billfink@...dspring.com>
Date: Fri, 21 Dec 2007 03:06:48 -0500
> What's with all the shifting back and forth? Here with:
>
> ((jiffies<<1)>>1) - (tp->tso_deferred>>1)
>
> and later with:
>
> /* Ok, it looks like it is advisable to defer. */
> tp->tso_deferred = 1 | (jiffies<<1);
>
> Is this just done to try and avoid the special case of jiffies==0
> when the jiffies wrap? If so it seems like a lot of unnecessary
> work just to avoid a 1 in 4 billion event, since it's my understanding
> that the whole tcp_tso_should_defer function is just an optimization
> and not a criticality to the proper functioning of TCP, especially
> considering it hasn't even been executing at all up to now.
How else would you avoid the incorrect result when jiffies is
indeed zero?
It's two shifts, and this gets scheduled along with the other
instructions on many cpus so it's effectively free.
I don't see why this is even worth mentioning and discussing.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists