Re: TCP push sometimes missing under 2.2.5?

Andi Kleen (ak@muc.de)
Tue, 13 Apr 1999 17:39:40 +0200


On Tue, Apr 13, 1999 at 12:54:59AM +0200, David Miller wrote:
> Date: Tue, 13 Apr 1999 00:40:12 +0200
> From: Jens-Uwe Mager <jum@ra.han.de>
>
> On Mon, Apr 12, 1999 at 08:24:18AM +1200, Chris Wedgwood wrote:
> > Is this really necessary (as you point out, it adds some cycles to
> > the fast path)? Sooner or later Apple will have to fix this...
>
> It is just one more variable and the assignment and one more test for this
> variable, is that so bad?
>
> It's not going to stop us from putting in the fix, but the issue is
> that register pressure is extremely high in that routine, and this
> change causes many more local variables to live on the stack instead
> of in hard registers.

One way to avoid this would be to duplicate the (copy > (tp->max_window>>1))
check when the flags are set up (and hope that gcse won't find it). Because
copy and *tp are likely in registers and the L1 cache redoing it is cheap.

Another crazy idea would be to declare psh volatile (=unregister @), but of
course this would need to be conditionalized to not hurt machines with
enough registers (like the Merced).

-Andi

-- 
This is like TV. I don't like TV.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/