Subject: Re: Early SPECWeb99 results on 2.5.33 with TSO on e1000

From: Nivedita Singhvi <[email-masked]>
Date: Fri, 6 Sep 2002 12:45:00 -0700

Quoting "David S. Miller" <[email-masked]>:

> There are methods to eliminate the centrality of the
> port allocation locking.
> 
> Basically, kill tcp_portalloc_lock and make the port rover be
> per-cpu.

Aha! Exactly what I started to do quite a while ago..

> The only tricky case is the "out of ports" situation.  Because
> there is no centralized locking being used to serialize port
> allocation, it is difficult to be sure that the port space is truly
> exhausted.

I decided to use a stupid global flag to signal this..It did become
messy and I didnt finalize everything. Then my day job 
intervened :). Still hoping for spare time*5 to complete
this if none comes up with something before then..

> Another idea, which doesn't eliminate the tcp_portalloc_lock but
> has other good SMP properties, is to apply a "cpu salt" to the
> port rover value.  For example, shift the local cpu number into
> the upper parts of a 'u16', then 'xor' that with tcp_port_rover.

nice..any patch extant? :)

thanks,
Nivedita