From owner-freebsd-net@FreeBSD.ORG  Mon Jul 26 15:35:56 2004
Return-Path: <owner-freebsd-net@FreeBSD.ORG>
Delivered-To: freebsd-net@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 5A50116A4CF
	for <freebsd-net@freebsd.org>; Mon, 26 Jul 2004 15:35:56 +0000 (GMT)
Received: from mail.sandvine.com (sandvine.com [199.243.201.138])
	by mx1.FreeBSD.org (Postfix) with ESMTP id D914343D46
	for <freebsd-net@freebsd.org>; Mon, 26 Jul 2004 15:35:54 +0000 (GMT)
	(envelope-from don@sandvine.com)
Received: by mail.sandvine.com with Internet Mail Service (5.5.2657.72)
	id <PAC3RKCV>; Mon, 26 Jul 2004 11:35:36 -0400
Message-ID: <FE045D4D9F7AED4CBFF1B3B813C85337051D9435@mail.sandvine.com>
From: Don Bowman <don@sandvine.com>
To: 'James' <haesu@towardex.com>, Don Bowman <don@sandvine.com>
Date: Mon, 26 Jul 2004 11:35:33 -0400
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2657.72)
Content-Type: text/plain;
	charset="iso-8859-1"
cc: freebsd-net@freebsd.org
Subject: RE: device polling takes more CPU hits??
X-BeenThere: freebsd-net@freebsd.org
X-Mailman-Version: 2.1.1
Precedence: list
List-Id: Networking and TCP/IP with FreeBSD <freebsd-net.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-net>,
	<mailto:freebsd-net-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-net>
List-Post: <mailto:freebsd-net@freebsd.org>
List-Help: <mailto:freebsd-net-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-net>,
	<mailto:freebsd-net-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 26 Jul 2004 15:35:56 -0000

From: James [mailto:haesu@towardex.com]
> Hi Don,
> root@r2.bos# sysctl kern.clockrate
> kern.clockrate: { hz = 4000, tick = 250, tickadj = 1, profhz 
> = 1024, stathz = 128 }

That's a pretty high HZ, here's what i have:
kern.clockrate: { hz = 2500, tick = 400, tickadj = 1, profhz = 1024, stathz
= 128 }

I have the same box spec as you, only with em (bge doesn't
support polling, but it has its own interrupt coalescer that works...
you can tune that in the if_bge.h I think, there's some comments).
I'm doing ~800Kpps with polling. My polling params are below.

>         
> root@r2.bos# sysctl kern.polling
> kern.polling.burst: 150
> kern.polling.each_burst: 5
> kern.polling.burst_max: 150
> kern.polling.idle_poll: 1
> kern.polling.poll_in_trap: 1
> kern.polling.user_frac: 50
> kern.polling.reg_frac: 20
> kern.polling.short_ticks: 4909
> kern.polling.lost_polls: 11464
> kern.polling.pending_polls: 0
> kern.polling.residual_burst: 0
> kern.polling.handlers: 1
> kern.polling.enable: 1
> kern.polling.phase: 0
> kern.polling.suspect: 10249
> kern.polling.stalled: 3
>                                                               
>                   root@r2.bos# sysctl machdep.cpu_idle_hlt
> machdep.cpu_idle_hlt: 1
> 

kern.polling.burst: 1000
kern.polling.each_burst: 80
kern.polling.burst_max: 1000
kern.polling.idle_poll: 1
kern.polling.poll_in_trap: 0
kern.polling.user_frac: 5
kern.polling.reg_frac: 120
kern.polling.short_ticks: 29
kern.polling.lost_polls: 55004
kern.polling.pending_polls: 0
kern.polling.residual_burst: 0
kern.polling.handlers: 4
kern.polling.enable: 1
kern.polling.phase: 0
kern.polling.suspect: 50690
kern.polling.stalled: 25