From owner-freebsd-stable@FreeBSD.ORG  Wed Aug 15 17:05:31 2012
Return-Path: <owner-freebsd-stable@FreeBSD.ORG>
Delivered-To: stable@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 352F81065672
	for <stable@freebsd.org>; Wed, 15 Aug 2012 17:05:31 +0000 (UTC)
	(envelope-from paul@gromit.dlib.vt.edu)
Received: from lennier.cc.vt.edu (lennier.cc.vt.edu [198.82.162.213])
	by mx1.freebsd.org (Postfix) with ESMTP id E208E8FC08
	for <stable@freebsd.org>; Wed, 15 Aug 2012 17:05:30 +0000 (UTC)
Received: from zidane.cc.vt.edu (zidane.cc.vt.edu [198.82.163.227])
	by lennier.cc.vt.edu (8.13.8/8.13.8) with ESMTP id q7FGRoOA030794
	for <stable@freebsd.org>; Wed, 15 Aug 2012 12:27:50 -0400
Received: from auth3.smtp.vt.edu (EHLO auth3.smtp.vt.edu) ([198.82.161.152])
	by zidane.cc.vt.edu (MOS 4.3.3-GA FastPath queued)
	with ESMTP id UEO92355; Wed, 15 Aug 2012 12:27:50 -0400 (EDT)
Received: from pmather.tower.lib.vt.edu (pmather.tower.lib.vt.edu
	[128.173.51.28]) (authenticated bits=0)
	by auth3.smtp.vt.edu (8.13.8/8.13.8) with ESMTP id q7FGRoM9001256
	(version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO)
	for <stable@freebsd.org>; Wed, 15 Aug 2012 12:27:50 -0400
From: Paul Mather <paul@gromit.dlib.vt.edu>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Date: Wed, 15 Aug 2012 12:27:49 -0400
Message-Id: <6DFEFF91-F9A9-4C64-8D1C-FB7A73BC7A2E@gromit.dlib.vt.edu>
To: stable@freebsd.org
Mime-Version: 1.0 (Apple Message framework v1084)
X-Mailer: Apple Mail (2.1084)
X-Mirapoint-Received-SPF: 198.82.161.152 auth3.smtp.vt.edu
	paul@gromit.dlib.vt.edu 5 none
X-Junkmail-Status: score=10/50, host=zidane.cc.vt.edu
X-Junkmail-Signature-Raw: score=unknown,
	refid=str=0001.0A020207.502BCE06.0068,ss=1,re=0.000,fgs=0,
	ip=0.0.0.0, so=2011-07-25 19:15:43,
	dmn=2011-05-27 18:58:46, mode=single engine
X-Junkmail-IWF: false
Cc: 
Subject: uhci0 excessive interrupts---how can I disable or reset specific
	USB port?
X-BeenThere: freebsd-stable@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Production branch of FreeBSD source code <freebsd-stable.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-stable>, 
	<mailto:freebsd-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-stable>
List-Post: <mailto:freebsd-stable@freebsd.org>
List-Help: <mailto:freebsd-stable-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-stable>,
	<mailto:freebsd-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Aug 2012 17:05:31 -0000

I am running FreeBSD/amd64 9-STABLE (built Mon Jul 23 10:45:51 EDT 2012) =
on a Dell Optiplex 760 and, today, noticed I had almost 30% system CPU =
load in top even when the system was idle.  A perusal of vmstat revealed =
the cause to be excessive interrupts on uhci0, even though nothing was =
plugged into that USB port:

# vmstat -i
interrupt                          total       rate
irq4: uart0                           22          0
irq16: uhci0                617002282738     310969
irq23: uhci3 ehci1                    83          0
irq256: hpet0:t0               135818421         68
irq257: hpet0:t1              2222659301       1120
irq264: em0                     29529304         14
irq265: ahci0                   11132506          5
Total                       619401422375     312178


Because I am only using the front USB ports on that hardware, I thought =
I would disable the other (rear) USB ports in the BIOS.  I rebooted and =
duly disabled them.  However, when FreeBSD booted, it appeared to ignore =
the BIOS setting: all the USB ports were probed as usual.  (The high =
interrupts had vanished, though that might have been due to FreeBSD =
correctly shutting down the controllers at shutdown, or just the act of =
rebooting itself.)

I added "hint.uhci.0.disabled=3D1" to /boot/loader.conf (hoping it would =
disable uhci0), but, again all the USB ports appeared in the boot =
probes.  (However, it *appears* as if uhci0 has been disabled because =
the "irq16: uhci0" line no longer appears in "vmstat -i".  However, all =
the same ugen devices appear in /dev.)

Is there a way of disabling a specific USB controller that you don't =
want to use?  If so, how?  I looked at usbconfig, but that appears to me =
to be more about controlling devices plugged in to a USB port rather =
than the port itself.  The "reset" command of usbconfig appears to be =
about resetting USB devices, not ports.

If I can't disable a specific USB port, is there a way to reset it =
without rebooting?  If I ever get another crazy interrupt storm like I =
noticed today it would be nice to be able to stop it without having to =
do a reboot.

Cheers,

Paul.