You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Niels Provos <pr...@citi.umich.edu> on 1999/05/20 06:18:57 UTC
Re: hinting system for poll (was Re: /dev/poll vs. aio_)
In message <19...@pizda.davem.net>, "David S. Miller" writes:
> From: Niels Provos <pr...@citi.umich.edu>
> Date: Mon, 17 May 1999 15:59:30 -0400
>
> I am still working on this to make sure that it is bug free, but at
> the moment I am fairly confident to make patches available within
> about a week.
>
>Sounds quite interesting.
The hinting system is working correctly now. The problem was that I
made a wrong assumption about lock_kernel(). I thought that it would
prevent the processing of network events, but it only seems to prevent
other syscalls from executing?
So I am using spin_lock_irqsave now to access shared data. Shared
data being the hints that are accessed in do_select(), do_poll() and
the network stack. The irqsave version of spin_lock is supposed to be
very slow but just using spin_lock leads to deadlocks. Is there any
other way that this could be handled?
The test system I have been using for benchmarking is a 4-way Xeon
450Mhz. When I run httpperf from another machine connected via 100
Mbit ethernet, the reply rate for requests never seems to exceed 1200
r/s. I noticed that there are never more than 4000 sockets in the
system. Is there a way to increase this number? Also most of the
sockets are in TIME_WAIT and readprofile shows that a large amount of
the CPU time is spent in the tcp_timewait_* functions.
I have implemented the hinting system on top of 2.2.3-ac4.
Any ideas?
Greetings,
Niels.