linux_socketcall() returns Resource temporarily unavailable
clay at cuter.daemons.net
Sat Apr 5 17:09:33 PST 2003
I have just installed FreeBSD 4.8-RELEASE and decided to try to run a Quake3
server using Linux emulation. I've found that the q3ded program consumes 99%
of the CPU, leading me to believe there may be a problem with the program or
with the Linux emulation feature in FreeBSD.
Some details about my installation:
> uname -a
FreeBSD cutest.daemons.net 4.8-RELEASE FreeBSD 4.8-RELEASE #0: Mon Mar 31 02:11:00 GMT 2003 root at freebsd-stable.sentex.ca:/usr/obj/usr/src/sys/GENERIC i386
> pkg_info | grep linux
linux_base-7.1_2 The base set of packages needed in Linux mode
The top output:
CPU states: 16.7% user, 0.0% nice, 83.3% system, 0.0% interrupt, 0.0% idle
Mem: 34M Active, 1712M Inact, 155M Wired, 103M Cache, 199M Buf, 5148K Free
Swap: 4080M Total, 4080M Free
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
93552 clay 58 0 80156K 4260K RUN 20:50 97.07% 97.07% q3ded
93568 clay 29 0 1880K 1176K RUN 0:00 5.78% 1.71% top
gettimeofday(0xbfbfb9d8,0x0) = 0 (0x0)
linux_time(0xbfbfee84) = 1049588547 (0x3e8f7343)
gettimeofday(0xbfbfee7c,0x0) = 0 (0x0)
linux_socketcall(0xc,0xbfbfb970) ERR#35 'Resource temporarily unavailable'
The q3ded program appears to be in a loop, as it keeps executing these same
system calls. I believe the linux_socketcall() corresponds to recvfrom() since
q3ded creates a UDP socket and waits for incoming messages on that port.
I searched Google and the FreeBSD mailing list archive but could only find
one thread about this problem, but it was from December 2000 and did not
mention a fix.
Does anyone know what is causing this problem and how to fix it?
Please CC: me as I am not subscribed to the list.
More information about the freebsd-questions