From owner-freebsd-questions@FreeBSD.ORG Tue Jul 25 08:07:48 2006 Return-Path: X-Original-To: freebsd-questions@freebsd.org Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D3E5416A4DA for ; Tue, 25 Jul 2006 08:07:48 +0000 (UTC) (envelope-from lukoramu@parok.lt) Received: from mx.parok.lt (mx.parok.lt [84.32.123.252]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6062043D49 for ; Tue, 25 Jul 2006 08:07:47 +0000 (GMT) (envelope-from lukoramu@parok.lt) Received: from localhost (unknown [127.0.0.1]) by mx.parok.lt (Postfix) with ESMTP id 870FF11409 for ; Tue, 25 Jul 2006 11:07:43 +0300 (EEST) X-Virus-Scanned: amavisd-new at localhost Received: from mx.parok.lt ([127.0.0.1]) by localhost (mx.parok.lt [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sEXKsHbGZImq for ; Tue, 25 Jul 2006 11:07:39 +0300 (EEST) Received: from [84.32.123.198] (lukotazas.parok.lt [84.32.123.198]) by mx.parok.lt (Postfix) with ESMTP id B489611408 for ; Tue, 25 Jul 2006 11:07:39 +0300 (EEST) Message-ID: <44C5D134.4080302@parok.lt> Date: Tue, 25 Jul 2006 11:07:16 +0300 From: =?UTF-8?B?UmFtxatuYXMgTHVrb8WhZXZpxI1pdXM=?= User-Agent: Thunderbird 1.5.0.4 (Windows/20060516) MIME-Version: 1.0 To: freebsd-questions@freebsd.org Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: device polling question X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Jul 2006 08:07:48 -0000 Hi. I think, this is a problem. There is kind of interrupt storm with device polling turned on, and `sysctl kern.polling` shows some interesting numbers: [root@obgp ~]# uname -r 6.1-RELEASE-p3 [root@obgp ~]# sysctl kern.clockrate kern.clockrate: { hz = 1000, tick = 1000, profhz = 1024, stathz = 128 } [root@obgp ~]# vmstat 1 10 procs memory page disk faults cpu r b w avm fre flt re pi po fr sr ad0 in sy cs us sy id 0 0 0 96488 152772 220 0 0 0 197 0 0 7864 1563 4943 3 30 67 0 0 0 96488 152772 1 0 0 0 1 0 0 6006 123 6806 0 43 57 0 0 0 96488 152772 0 0 0 0 0 0 0 6026 115 6845 0 37 63 0 0 0 96488 152772 0 0 0 0 0 0 0 6146 123 6818 0 41 59 0 0 0 96488 152772 0 0 0 0 0 0 7 6013 127 6766 0 41 59 0 0 0 96488 152772 0 0 0 0 0 0 0 5929 115 6565 0 34 66 0 0 0 96488 152772 0 0 0 0 3 0 2 6453 115 7193 0 38 62 0 0 0 96488 152776 0 0 0 0 1 0 1 5683 115 6389 1 39 60 0 0 0 96488 152776 0 0 0 0 0 0 0 6279 123 6907 0 42 58 0 0 0 96488 152776 0 0 0 0 0 0 0 5774 127 6426 0 37 63 [root@obgp ~]# ifconfig fxp0 polling [root@obgp ~]# ifconfig fxp1 polling [root@obgp ~]# vmstat 1 10 procs memory page disk faults cpu r b w avm fre flt re pi po fr sr ad0 in sy cs us sy id 0 0 0 96488 152776 212 0 0 0 189 0 0 8004 1506 4980 3 31 66 0 0 0 96488 152776 1 0 0 0 1 0 0 34446 123 3066 0 39 61 0 0 0 96488 152776 0 0 0 0 0 0 0 34373 123 3059 0 37 63 0 0 0 96488 152776 0 0 0 0 0 0 0 34480 127 3060 0 43 57 0 0 0 96488 152776 0 0 0 0 3 0 2 34329 115 3059 0 45 55 0 0 0 96488 152776 2 0 0 0 0 0 0 34436 120 3061 0 40 60 0 0 0 96488 152776 0 0 0 0 0 0 1 34248 115 3069 0 35 65 0 0 0 96488 152776 0 0 0 0 0 0 0 34375 123 3063 0 41 59 0 0 0 96488 152776 0 0 0 0 0 0 0 34282 127 3052 0 45 55 0 0 0 96488 152776 0 0 0 0 0 0 0 34342 566 3061 1 40 60 [root@obgp ~]# sysctl kern.polling kern.polling.burst: 150 kern.polling.burst_max: 150 kern.polling.each_burst: 5 kern.polling.idle_poll: 0 kern.polling.user_frac: 50 kern.polling.reg_frac: 20 kern.polling.short_ticks: 2115 kern.polling.lost_polls: 345 kern.polling.pending_polls: 0 kern.polling.residual_burst: 0 kern.polling.handlers: 2 kern.polling.enable: 0 kern.polling.phase: 0 kern.polling.suspect: 135 kern.polling.stalled: 0 kern.polling.idlepoll_sleeping: 1 [root@obgp ~]# vmstat -i; sleep 1; vmstat -i interrupt total rate irq0: clk 152025885 999 irq1: atkbd0 801 0 irq8: rtc 19453315 127 irq11: fxp1 uhci0 122419028 804 irq12: fxp0 157346527 1034 irq14: ata0 93765 0 Total 451339321 2966 interrupt total rate irq0: clk 152026925 999 irq1: atkbd0 801 0 irq8: rtc 19453448 127 irq11: fxp1 uhci0 122419028 804 irq12: fxp0 157346527 1034 irq14: ata0 93766 0 Total 451340495 2966 I tried that on a different machine with no shared interrupts. Allmost the same results. [root@obgp ~]# cd /usr/src/sys/i386/conf/ [root@obgp /usr/src/sys/i386/conf]# diff -u GENERIC ZIRZILE --- GENERIC Tue Jul 25 10:55:46 2006 +++ ZIRZILE Tue Jul 25 10:55:44 2006 @@ -19,10 +19,8 @@ # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.429.2.7.2.2 2006/05/01 00:15:12 scottl Exp $ machine i386 -cpu I486_CPU -cpu I586_CPU cpu I686_CPU -ident GENERIC +ident ZIRZILE # To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" # Default places to look for devices. @@ -62,6 +60,16 @@ options AHD_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~215k to driver. options ADAPTIVE_GIANT # Giant mutex is adaptive. + +options DEVICE_POLLING + +options ALTQ +options ALTQ_CBQ +options ALTQ_RED +options ALTQ_RIO +options ALTQ_HFSC +options ALTQ_CDNR +options ALTQ_PRIQ device apic # I/O APIC Any ideas ?