Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Jul 2002 17:31:54 +0200 (CEST)
From:      Henri Hennebert <hlh@ciger.be>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   kern/41125: squid-2.4.STABLE7 loop on poll() - SMP kernel
Message-ID:  <200207291531.g6TFVsbl012596@morzine.ciger.be>

next in thread | raw e-mail | index | archive | help


>Number:         41125
>Category:       kern
>Synopsis:       squid-2.4.STABLE7 loop on poll() - SMP kernel
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jul 29 08:40:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Henri Hennebert <hlh@ciger.be>
>Release:        FreeBSD 4.6-STABLE i386
>Organization:
CIGER sa
>Environment:
System: FreeBSD morzine.ciger.be 4.6-STABLE FreeBSD 4.6-STABLE #0: Fri Jul 12 17:38:36 CEST 2002 root@morzine.ciger.be:/usr/obj/usr/src/sys/MORZINE i386

>Description:
I'm running squid 2.4.STABLE7 (configured and compiled 'by hand' - not from
ports) on a SMP configuration. All seems normal until squid start to loop
and use 100% of a CPU. After a while, all return to normal and top shows
squid in poll state. Then 100% again...

I truss squid several times for 4-5 secs when in 100% CPU and get
the following result:

--- snip ---
poll(0xbfbfc13c,0x4b,0x0)			 = 2 (0x2)
read(0x43,0x961f000,0xfff)			 = 0 (0x0)
read(0x71,0x96e1000,0xfff)			 = 0 (0x0)
gettimeofday(0x8164efc,0x0)			 = 0 (0x0)
gettimeofday(0x8164efc,0x0)			 = 0 (0x0)
poll(0xbfbfc13c,0x4b,0x0)			 = 2 (0x2)
read(0x43,0x961f000,0xfff)			 = 0 (0x0)
read(0x71,0x96e1000,0xfff)			 = 0 (0x0)
gettimeofday(0x8164efc,0x0)			 = 0 (0x0)
gettimeofday(0x8164efc,0x0)			 = 0 (0x0)
poll(0xbfbfc13c,0x4b,0x0)			 = 2 (0x2)
read(0x43,0x961f000,0xfff)			 = 0 (0x0)
read(0x71,0x96e1000,0xfff)			 = 0 (0x0)
gettimeofday(0x8164efc,0x0)			 = 0 (0x0)
gettimeofday(0x8164efc,0x0)			 = 0 (0x0)
poll(0xbfbfc13c,0x4b,0x0)			 = 2 (0x2)
read(0x43,0x961f000,0xfff)			 = 0 (0x0)
read(0x71,0x96e1000,0xfff)			 = 0 (0x0)
gettimeofday(0x8164efc,0x0)			 = 0 (0x0)
gettimeofday(0x8164efc,0x0)			 = 0 (0x0)
SIGNAL 27
SIGNAL 27
gettimeofday(0x8164efc,0x0)			 = 0 (0x0)
gettimeofday(0x281c282c,0x0)			 = 0 (0x0)
sigprocmask(0x3,0x281c28b8,0x0)			 = 0 (0x0)
sigaltstack(0x281de9e0,0x0)			 = 0 (0x0)
sigreturn(0x81f6064)				 = 0 (0x0)
poll(0xbfbfbf14,0x1,0x0)			 = 0 (0x0)
poll(0xbfbfc13c,0x4b,0x0)			 = 2 (0x2)
read(0x43,0x961f000,0xfff)			 = 0 (0x0)
read(0x71,0x96e1000,0xfff)			 = 0 (0x0)
--- snip ---

During the same 100% period, the other truss sampling show
poll call return 3, 4, 3, 2, ...

Squid is using 3 cache dirs with async io (aufs). I try
sync io (ufs) and disk daemon (diskd) to no avail.

It seems that it's not related to the squid load (average 120 req/min).
The 100% period is at least 4-5 minutes long.

I never encounter this situation when running squid on a mono-
processor config (at least since FreeBSD 3.2 and squid-2.2).

Is it a problem with SMP / poll() ?

>How-To-Repeat:
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200207291531.g6TFVsbl012596>