]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
REORG: polling: rename "fd_spec" to "fd_cache"
authorWilly Tarreau <w@1wt.eu>
Sat, 25 Jan 2014 18:10:48 +0000 (19:10 +0100)
committerWilly Tarreau <w@1wt.eu>
Sat, 25 Jan 2014 23:42:29 +0000 (00:42 +0100)
So fd_spec was renamed "fd_cache" as it's becoming an event cache, and
fd_nbspec becomes fd_cache_num.

include/proto/fd.h
src/dumpstats.c
src/ev_epoll.c
src/ev_kqueue.c
src/ev_poll.c
src/ev_select.c
src/fd.c

index 3563a089d9b4a9fb912989a29024966f1084c674..ba082608c1fccc8f8961216ff2282bae9759f93a 100644 (file)
 #include <types/fd.h>
 
 /* public variables */
-extern int fd_nbspec;          // number of speculative events in the list
-extern int fd_nbupdt;          // number of updates in the list
-extern unsigned int *fd_spec;  // speculative I/O list
-extern unsigned int *fd_updt;  // FD updates list
+extern unsigned int *fd_cache;      // FD events cache
+extern unsigned int *fd_updt;       // FD updates list
+extern int fd_cache_num;            // number of events in the cache
+extern int fd_nbupdt;               // number of updates in the list
 
 /* Deletes an FD from the fdsets, and recomputes the maxfd limit.
  * The file descriptor is also closed.
@@ -100,9 +100,9 @@ static inline void alloc_spec_entry(const int fd)
        if (fdtab[fd].cache)
                /* FD already in speculative I/O list */
                return;
-       fd_nbspec++;
-       fdtab[fd].cache = fd_nbspec;
-       fd_spec[fd_nbspec-1] = fd;
+       fd_cache_num++;
+       fdtab[fd].cache = fd_cache_num;
+       fd_cache[fd_cache_num-1] = fd;
 }
 
 /* Removes entry used by fd <fd> from the spec list and replaces it with the
@@ -117,11 +117,11 @@ static inline void release_spec_entry(int fd)
        if (!pos)
                return;
        fdtab[fd].cache = 0;
-       fd_nbspec--;
-       if (likely(pos <= fd_nbspec)) {
+       fd_cache_num--;
+       if (likely(pos <= fd_cache_num)) {
                /* was not the last entry */
-               fd = fd_spec[fd_nbspec];
-               fd_spec[pos - 1] = fd;
+               fd = fd_cache[fd_cache_num];
+               fd_cache[pos - 1] = fd;
                fdtab[fd].cache = pos;
        }
 }
index aabb556f2a409fc2930fa2dfcaf4c3b74187ac9d..19d4dbdb2b797a767b23c52738ec39f52e3c2721 100644 (file)
@@ -4525,7 +4525,7 @@ static int stats_dump_full_sess_to_buffer(struct stream_interface *si, struct se
                                      obj_base_ptr(conn->target));
 
                        chunk_appendf(&trash,
-                                     "      flags=0x%08x fd=%d fd_spec_e=%02x fd_spec_p=%d updt=%d\n",
+                                     "      flags=0x%08x fd=%d fd.state=%02x fd.cache=%d updt=%d\n",
                                      conn->flags,
                                      conn->t.sock.fd,
                                      conn->t.sock.fd >= 0 ? fdtab[conn->t.sock.fd].state : 0,
index e826af3cb0726998c58906f2da9f8039a8cb8e61..45f7ceabe39de1710ab87e394b1854f128de1815 100644 (file)
@@ -111,7 +111,7 @@ REGPRM2 static void _do_poll(struct poller *p, int exp)
 
        /* compute the epoll_wait() timeout */
 
-       if (fd_nbspec || run_queue || signal_queue_len) {
+       if (fd_cache_num || run_queue || signal_queue_len) {
                /* Maybe we still have events in the spec list, or there are
                 * some tasks left pending in the run_queue, so we must not
                 * wait in epoll() otherwise we would delay their delivery by
index d59a5706ea6bccd25302f1a12065c46b16098f3a..3aa3fd164f7057ede90cca3b411abec18f549110 100644 (file)
@@ -104,7 +104,7 @@ REGPRM2 static void _do_poll(struct poller *p, int exp)
        timeout.tv_sec  = 0;
        timeout.tv_nsec = 0;
 
-       if (!fd_nbspec && !run_queue && !signal_queue_len) {
+       if (!fd_cache_num && !run_queue && !signal_queue_len) {
                if (!exp) {
                        delta_ms        = MAX_DELAY_MS;
                        timeout.tv_sec  = (MAX_DELAY_MS / 1000);
index 6a97c98d692441804d03d7fe5c8fc087f95dd917..6d550a6a82adcc0eb02a49a843ef50081bf19f51 100644 (file)
@@ -126,7 +126,7 @@ REGPRM2 static void _do_poll(struct poller *p, int exp)
        }
       
        /* now let's wait for events */
-       if (fd_nbspec || run_queue || signal_queue_len)
+       if (fd_cache_num || run_queue || signal_queue_len)
                wait_time = 0;
        else if (!exp)
                wait_time = MAX_DELAY_MS;
index 14f1b1e8c6c3be302d3467634346b95492ce162a..f79cdbfe8c081f55e5a2f5c97c5c19d3c39f4e3b 100644 (file)
@@ -93,7 +93,7 @@ REGPRM2 static void _do_poll(struct poller *p, int exp)
        delta.tv_sec  = 0;
        delta.tv_usec = 0;
 
-       if (!fd_nbspec && !run_queue && !signal_queue_len) {
+       if (!fd_cache_num && !run_queue && !signal_queue_len) {
                if (!exp) {
                        delta_ms      = MAX_DELAY_MS;
                        delta.tv_sec  = (MAX_DELAY_MS / 1000);
index ad45f4666817932c39df538bd7564ea9d394a152..d2638d3bbd4b6d3fc21ffd0e2c7cfc9ef64c2ca4 100644 (file)
--- a/src/fd.c
+++ b/src/fd.c
@@ -105,11 +105,10 @@ struct poller pollers[MAX_POLLERS];
 struct poller cur_poller;
 int nbpollers = 0;
 
-/* FD status is defined by the poller's status and by the speculative I/O list */
-int fd_nbspec = 0;             // number of speculative events in the list
-int fd_nbupdt = 0;             // number of updates in the list
-unsigned int *fd_spec = NULL;  // speculative I/O list
+unsigned int *fd_cache = NULL; // FD events cache
 unsigned int *fd_updt = NULL;  // FD updates list
+int fd_cache_num = 0;          // number of events in the cache
+int fd_nbupdt = 0;             // number of updates in the list
 
 /* Deletes an FD from the fdsets, and recomputes the maxfd limit.
  * The file descriptor is also closed.
@@ -146,8 +145,8 @@ void fd_process_spec_events()
 
        /* now process speculative events if any */
 
-       for (spec_idx = 0; spec_idx < fd_nbspec; ) {
-               fd = fd_spec[spec_idx];
+       for (spec_idx = 0; spec_idx < fd_cache_num; ) {
+               fd = fd_cache[spec_idx];
                e = fdtab[fd].state;
 
                /*
@@ -176,7 +175,7 @@ void fd_process_spec_events()
                /* if the fd was removed from the spec list, it has been
                 * replaced by the next one that we don't want to skip !
                 */
-               if (spec_idx < fd_nbspec && fd_spec[spec_idx] != fd)
+               if (spec_idx < fd_cache_num && fd_cache[spec_idx] != fd)
                        continue;
 
                spec_idx++;
@@ -202,8 +201,8 @@ int init_pollers()
        int p;
        struct poller *bp;
 
-       if ((fd_spec = (uint32_t *)calloc(1, sizeof(uint32_t) * global.maxsock)) == NULL)
-               goto fail_spec;
+       if ((fd_cache = (uint32_t *)calloc(1, sizeof(uint32_t) * global.maxsock)) == NULL)
+               goto fail_cache;
 
        if ((fd_updt = (uint32_t *)calloc(1, sizeof(uint32_t) * global.maxsock)) == NULL)
                goto fail_updt;
@@ -225,8 +224,8 @@ int init_pollers()
        return 0;
 
  fail_updt:
-       free(fd_spec);
- fail_spec:
+       free(fd_cache);
+ fail_cache:
        return 0;
 }
 
@@ -246,9 +245,9 @@ void deinit_pollers() {
        }
 
        free(fd_updt);
-       free(fd_spec);
+       free(fd_cache);
        fd_updt = NULL;
-       fd_spec = NULL;
+       fd_cache = NULL;
 }
 
 /*