Re: Early SPECWeb99 results on 2.5.33 with TSO on e1000

Nivedita Singhvi
2002-09-06T19:40:48Z

Quoting "David S. Miller" <davem@redhat.com>:

> 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