Package: hybserv Version: 1.9.2-4.1 Severity: normal Tags: upstream patch HybServ uses select() to determine if any input is received. It has a timeout so other stuff (e.g. timers) can happen in the mean time too. In src/sock.c the timer is set with a timeout of 200µs. On my server, this amounts to around 5% of continuous CPU usage while doing absolutely nothing. None of the timers run more than once every second.
It looks like http://hybserv2.svn.sourceforge.net/viewvc/hybserv2?view=revision&revision=1370 was supposed to lower the timeout from 1 second to 0.2 seconds, but it is now in fact 0.0002 seconds (usec != msec). -- System Information: Debian Release: 6.0 APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.32-5-amd64 (SMP w/1 CPU core) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages hybserv depends on: ii ircd-hybrid 1:7.2.2.dfsg.2-6.2 high-performance secure IRC server ii libc6 2.11.2-10 Embedded GNU C Library: Shared lib hybserv recommends no packages. hybserv suggests no packages. -- Configuration Files: /etc/hybserv/glines.conf [Errno 13] Permission denied: u'/etc/hybserv/glines.conf' /etc/hybserv/hybserv.conf [Errno 13] Permission denied: u'/etc/hybserv/hybserv.conf' /etc/hybserv/jupes.conf [Errno 13] Permission denied: u'/etc/hybserv/jupes.conf' /etc/hybserv/logon.news [Errno 13] Permission denied: u'/etc/hybserv/logon.news' /etc/hybserv/motd.dcc [Errno 13] Permission denied: u'/etc/hybserv/motd.dcc' /etc/hybserv/motd.global [Errno 13] Permission denied: u'/etc/hybserv/motd.global' /etc/hybserv/settings.conf [Errno 13] Permission denied: u'/etc/hybserv/settings.conf' -- no debconf information
Index: src/sock.c =================================================================== --- src/sock.c (revision 1576) +++ src/sock.c (working copy) @@ -603,7 +603,7 @@ FD_ZERO(&writefds); TimeOut.tv_sec = 0L; - TimeOut.tv_usec = 200L; + TimeOut.tv_usec = 200000L; if (currenthub && (HubSock != NOSOCKET)) {