#include "squid.h"
#include "anyp/PortCfg.h"
#include "comm/Connection.h"
#include "comm/Loops.h"
#include "fd.h"
#include "fde.h"
#include "globals.h"
#include "ICP.h"
#include "mgr/Registration.h"
#include "SquidConfig.h"
#include "StatCounters.h"
#include "Store.h"
#include <cerrno>
Go to the source code of this file.
Macros | |
#define | POLLRDNORM POLLIN |
#define | POLLWRNORM POLLOUT |
#define | howmany(x, y) (((x)+((y)-1))/(y)) |
#define | NBBY 8 |
#define | FD_MASK_BYTES sizeof(fd_mask) |
#define | FD_MASK_BITS (FD_MASK_BYTES*NBBY) |
#define | MAX_INCOMING_INTEGER 256 |
#define | INCOMING_FACTOR 5 |
#define | MAX_INCOMING_INTERVAL (MAX_INCOMING_INTEGER << INCOMING_FACTOR) |
#define | commCheckUdpIncoming (++udp_io_events > (incoming_udp_interval>> INCOMING_FACTOR)) |
#define | commCheckDnsIncoming (++dns_io_events > (incoming_dns_interval>> INCOMING_FACTOR)) |
#define | commCheckTcpIncoming (++tcp_io_events > (incoming_tcp_interval>> INCOMING_FACTOR)) |
Functions | |
static int | fdIsTcpListen (int fd) |
static int | fdIsUdpListen (int fd) |
static int | fdIsDns (int fd) |
static int | comm_check_incoming_poll_handlers (int nfds, int *fds) |
static void | comm_poll_dns_incoming (void) |
static void | comm_poll_udp_incoming (void) |
static void | comm_poll_tcp_incoming (void) |
static void | commPollRegisterWithCacheManager (void) |
static void | commIncomingStats (StoreEntry *sentry) |
Variables | |
static int | MAX_POLL_TIME = 1000 |
static OBJH | commIncomingStats |
static int | udp_io_events = 0 |
I/O events passed since last UDP receiver socket poll. More... | |
static int | dns_io_events = 0 |
I/O events passed since last DNS socket poll. More... | |
static int | tcp_io_events = 0 |
I/O events passed since last TCP listening socket poll. More... | |
static int | incoming_udp_interval = 16 << INCOMING_FACTOR |
static int | incoming_dns_interval = 16 << INCOMING_FACTOR |
static int | incoming_tcp_interval = 16 << INCOMING_FACTOR |
Macro Definition Documentation
◆ commCheckDnsIncoming
#define commCheckDnsIncoming (++dns_io_events > (incoming_dns_interval>> INCOMING_FACTOR)) |
Definition at line 118 of file ModPoll.cc.
◆ commCheckTcpIncoming
#define commCheckTcpIncoming (++tcp_io_events > (incoming_tcp_interval>> INCOMING_FACTOR)) |
Definition at line 119 of file ModPoll.cc.
◆ commCheckUdpIncoming
#define commCheckUdpIncoming (++udp_io_events > (incoming_udp_interval>> INCOMING_FACTOR)) |
Definition at line 117 of file ModPoll.cc.
◆ FD_MASK_BITS
#define FD_MASK_BITS (FD_MASK_BYTES*NBBY) |
Definition at line 50 of file ModPoll.cc.
◆ FD_MASK_BYTES
#define FD_MASK_BYTES sizeof(fd_mask) |
Definition at line 49 of file ModPoll.cc.
◆ howmany
#define howmany | ( | x, | |
y | |||
) | (((x)+((y)-1))/(y)) |
Definition at line 44 of file ModPoll.cc.
◆ INCOMING_FACTOR
#define INCOMING_FACTOR 5 |
Definition at line 109 of file ModPoll.cc.
◆ MAX_INCOMING_INTEGER
#define MAX_INCOMING_INTEGER 256 |
Definition at line 108 of file ModPoll.cc.
◆ MAX_INCOMING_INTERVAL
#define MAX_INCOMING_INTERVAL (MAX_INCOMING_INTEGER << INCOMING_FACTOR) |
Definition at line 110 of file ModPoll.cc.
◆ NBBY
#define NBBY 8 |
Definition at line 47 of file ModPoll.cc.
◆ POLLRDNORM
#define POLLRDNORM POLLIN |
Definition at line 34 of file ModPoll.cc.
◆ POLLWRNORM
#define POLLWRNORM POLLOUT |
Definition at line 37 of file ModPoll.cc.
Function Documentation
◆ comm_check_incoming_poll_handlers()
Definition at line 181 of file ModPoll.cc.
References DBG_IMPORTANT, debugs, fd_table, getCurrentTime(), incoming_sockets_accepted, MAXTCPLISTENPORTS, pfds, POLLRDNORM, POLLWRNORM, StatCounters::selects, statCounter, and StatCounters::syscalls.
Referenced by comm_poll_dns_incoming(), comm_poll_tcp_incoming(), and comm_poll_udp_incoming().
◆ comm_poll_dns_incoming()
|
static |
Definition at line 546 of file ModPoll.cc.
References SquidConfig::average, comm_check_incoming_poll_handlers(), StatCounters::comm_dns_incoming, SquidConfig::comm_incoming, Config, StatHist::count(), SquidConfig::dns, dns_io_events, DnsSocketA, DnsSocketB, incoming_dns_interval, INCOMING_DNS_MAX, MAX_INCOMING_INTERVAL, SquidConfig::min_poll, and statCounter.
◆ comm_poll_tcp_incoming()
|
static |
Definition at line 283 of file ModPoll.cc.
References SquidConfig::average, comm_check_incoming_poll_handlers(), SquidConfig::comm_incoming, StatCounters::comm_tcp_incoming, Config, StatHist::count(), HttpSockets, incoming_tcp_interval, INCOMING_TCP_MAX, MAX_INCOMING_INTERVAL, MAXTCPLISTENPORTS, SquidConfig::min_poll, NHttpSockets, statCounter, SquidConfig::tcp, and tcp_io_events.
◆ comm_poll_udp_incoming()
|
static |
Definition at line 246 of file ModPoll.cc.
References SquidConfig::average, comm_check_incoming_poll_handlers(), SquidConfig::comm_incoming, StatCounters::comm_udp_incoming, Config, StatHist::count(), Comm::Connection::fd, icpIncomingConn, icpOutgoingConn, incoming_udp_interval, INCOMING_UDP_MAX, Comm::IsConnOpen(), MAX_INCOMING_INTERVAL, SquidConfig::min_poll, statCounter, SquidConfig::udp, and udp_io_events.
◆ commIncomingStats()
|
static |
Definition at line 600 of file ModPoll.cc.
References StatCounters::comm_dns_incoming, StatCounters::comm_tcp_incoming, StatCounters::comm_udp_incoming, StatHist::dump(), incoming_dns_interval, INCOMING_FACTOR, incoming_tcp_interval, incoming_udp_interval, statCounter, statHistIntDumper, and storeAppendPrintf().
◆ commPollRegisterWithCacheManager()
|
static |
Definition at line 586 of file ModPoll.cc.
References commIncomingStats, and Mgr::RegisterAction().
◆ fdIsDns()
Definition at line 158 of file ModPoll.cc.
References DnsSocketA, and DnsSocketB.
◆ fdIsTcpListen()
Definition at line 170 of file ModPoll.cc.
References HttpPortList.
◆ fdIsUdpListen()
Definition at line 146 of file ModPoll.cc.
References Comm::Connection::fd, icpIncomingConn, and icpOutgoingConn.
Variable Documentation
◆ commIncomingStats
|
static |
Definition at line 56 of file ModPoll.cc.
Referenced by commPollRegisterWithCacheManager().
◆ dns_io_events
|
static |
Definition at line 112 of file ModPoll.cc.
Referenced by comm_poll_dns_incoming().
◆ incoming_dns_interval
|
static |
Definition at line 115 of file ModPoll.cc.
Referenced by comm_poll_dns_incoming(), and commIncomingStats().
◆ incoming_tcp_interval
|
static |
Definition at line 116 of file ModPoll.cc.
Referenced by comm_poll_tcp_incoming(), and commIncomingStats().
◆ incoming_udp_interval
|
static |
Definition at line 114 of file ModPoll.cc.
Referenced by comm_poll_udp_incoming(), and commIncomingStats().
◆ MAX_POLL_TIME
|
static |
Definition at line 41 of file ModPoll.cc.
◆ tcp_io_events
|
static |
Definition at line 113 of file ModPoll.cc.
Referenced by comm_poll_tcp_incoming().
◆ udp_io_events
|
static |
Definition at line 111 of file ModPoll.cc.
Referenced by comm_poll_udp_incoming().