From owner-freebsd-bugs Mon Jul 29 8:40:10 2002 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C9B3837B400 for ; Mon, 29 Jul 2002 08:40:03 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2593843E67 for ; Mon, 29 Jul 2002 08:40:03 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.4/8.12.4) with ESMTP id g6TFe2JU083858 for ; Mon, 29 Jul 2002 08:40:02 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.4/8.12.4/Submit) id g6TFe2uk083857; Mon, 29 Jul 2002 08:40:02 -0700 (PDT) Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3312F37B400 for ; Mon, 29 Jul 2002 08:31:58 -0700 (PDT) Received: from morzine.ciger.be (morzine.ciger.be [193.74.104.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4430D43E42 for ; Mon, 29 Jul 2002 08:31:57 -0700 (PDT) (envelope-from root@morzine.ciger.be) Received: from morzine.ciger.be (localhost.ciger.be [127.0.0.1]) by morzine.ciger.be (8.12.5/8.12.5) with ESMTP id g6TFVt8g012597 for ; Mon, 29 Jul 2002 17:31:55 +0200 (CEST) Received: (from root@localhost) by morzine.ciger.be (8.12.5/8.12.5/Submit) id g6TFVsbl012596; Mon, 29 Jul 2002 17:31:54 +0200 (CEST) Message-Id: <200207291531.g6TFVsbl012596@morzine.ciger.be> Date: Mon, 29 Jul 2002 17:31:54 +0200 (CEST) From: Henri Hennebert Reply-To: Henri Hennebert To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: kern/41125: squid-2.4.STABLE7 loop on poll() - SMP kernel Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org >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 >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