[MAJOR] introduced speculative I/O with epoll()

The principle behind speculative I/O is to speculatively try to
perform I/O before registering the events in the system. This
considerably reduces the number of calls to epoll_ctl() and
sometimes even epoll_wait(), and manages to increase overall
performance by about 10%.

The new poller has been called "sepoll". It is used by default
on Linux when it works. A corresponding option "nosepoll" and
the command line argument "-ds" allow to disable it.
diff --git a/doc/haproxy-en.txt b/doc/haproxy-en.txt
index 98a3678..d04a719 100644
--- a/doc/haproxy-en.txt
+++ b/doc/haproxy-en.txt
@@ -52,6 +52,8 @@
     -st specifies a list of pids to send a TERMINATE signal to after startup.
     -s shows statistics (only if compiled in)
     -l shows even more statistics (implies '-s')
+    -dk disables use of kqueue()
+    -ds disables use of speculative epoll()
     -de disables use of epoll()
     -dp disables use of poll()
     -db disables background mode (stays in foreground, useful for debugging)
@@ -118,6 +120,8 @@
   - nbproc <number>
   - daemon
   - debug
+  - nokqueue
+  - nosepoll
   - noepoll
   - nopoll
   - quiet
@@ -331,11 +335,14 @@
 Linux systems with the epoll() patch (or any 2.6 version), haproxy will use
 epoll() which is extremely fast and non dependant on the number of sockets.
 Tests have shown constant performance from 1 to 20000 simultaneous sessions.
+Version 1.3.9 introduced kqueue() for FreeBSD/OpenBSD, and speculative epoll()
+which consists in trying to perform I/O before queuing the events via syscalls.
 
-Haproxy will use epoll() when available, and will fall back to poll(), then to
-select(). However, if for any reason you need to disable epoll() or poll() (eg.
-because of a bug or just to compare performance), two new global options have
-been created for this matter : 'noepoll' and 'nopoll'.
+Haproxy will use kqueue() or speculative epoll() when available, then epoll(),
+and will fall back to poll(), then to select(). However, if for any reason you
+need to disable epoll() or poll() (eg. because of a bug or just to compare
+performance), new global options have been created for this matter : 'nosepoll',
+'nokqueue', 'noepoll' and 'nopoll'.
 
 Example :
 ---------
@@ -351,9 +358,10 @@
 ignored if the poll() or epoll() mechanisms have not been enabled at compile
 time.
 
-To make debugging easier, the '-de' runtime argument disables epoll support and
-the '-dp' argument disables poll support. They are respectively equivalent to
-'noepoll' and 'nopoll'.
+To make debugging easier, the '-de' runtime argument disables epoll support,
+the '-dp' argument disables poll support, '-dk' disables kqueue and '-ds'
+disables speculative epoll(). They are respectively equivalent to 'noepoll',
+'nopoll', 'nokqueue' and 'nosepoll'.
 
 
 2) Declaration of a listening service