From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Dominik Brodowski <linux@dominikbrodowski.net>,
Alan Stern <stern@rowland.harvard.edu>,
linux-kernel@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>,
Peter Zijlstra <peterz@infradead.org>,
Arjan van de Ven <arjan@linux.intel.com>,
Dmitry Torokhov <dtor@mail.ru>
Subject: Re: A few questions and issues with dynticks, NOHZ and powertop
Date: Sun, 4 Apr 2010 13:47:25 -0700 [thread overview]
Message-ID: <20100404204725.GC2644@linux.vnet.ibm.com> (raw)
In-Reply-To: <20100404163924.GA18428@comet.dominikbrodowski.net>
On Sun, Apr 04, 2010 at 06:39:24PM +0200, Dominik Brodowski wrote:
> On Sun, Apr 04, 2010 at 11:17:37AM -0400, Alan Stern wrote:
> > On Sun, 4 Apr 2010, Dominik Brodowski wrote:
> >
> > > Booting a SMP-capable kernel with "nosmp", or manually offlining one CPU
> > > (or -- though I haven't tested it -- booting a SMP-capable kernel on a
> > > system with merely one CPU) means that in up to about half of the calls to
> > > tick_nohz_stop_sched_tick() are aborted due to rcu_needs_cpu(). This is
> > > quite strange to me: AFAIK, RCU is an excellent tool for SMP, but not really
> > > needed for UP?
> >
> > I can't answer the real question here, not knowing enough about the RCU
> > implementation. However, your impression is wrong: RCU very definitely
> > _is_ useful and needed on UP systems. It coordinates among processes
> > (and interrupt handlers) as well as among processors.
>
> Okay, but still: can't this be sped up by much on UP (especially if
> CONFIG_RCU_FAST_NO_HZ is set), so that we can go to sleep right away?
One situation that will prevent CONFIG_RCU_FAST_NO_HZ from putting the
machine to sleep right away is if there is an RCU callback posted that
spawns another RCU callback, and so on. CONFIG_RCU_FAST_NO_HZ will handle
one callback that spawns another, but it gives up if the second callback
spawns a third.
Might this be what is happening to you?
If so, would you be willing to patch your kernel? RCU_NEEDS_CPU_FLUSHES
is currently set to 5, and might be set to (say) 8. This is defined
in kernel/rcutree_plugin.h, near line 990.
Another thing to try would be running with TINY_RCU, at least if it is
OK that RCU be non-preemptible.
Thanx, Paul
> > > 3) USB: built-in UHCI and a built-in 0a5c:2101 Broadcom Corp. A-Link
> > > BlueUsbA2 Bluetooth module; built-in EHCI and a built-in 0ac8:c302 Z-Star
> > > Microelectronics Corp. Vega USB 2.0 Camera.
> > >
> > > usbcore.autosuspend is enabled (= 2), of course.
> > >
> > > Recent USB suspend statistics
> > > Active Device name
> > > 100.0% USB device 7-1 : BCM92045NMD (Broadcom Corp)
> > > 100.0% USB device 1-2 : Vega USB 2.0 Camera. (Vimicro Corp.)
> > > 100.0% USB device usb7 : UHCI Host Controller (Linux 2.6.34-rc3 uhci_hcd)
> > > 100.0% USB device usb1 : EHCI Host Controller (Linux 2.6.34-rc3 ehci_hcd)
> > >
> > > Booting into /bin/bash on a SMP kernel booted with "nosmp" leads to ~ 10
> > > wakeups per second; disabling the cursor helps halfway (~ 5 wakeups); and
> > > manually unbinding the USB host drivers from the USB host devices finally
> > > lead to ~ 1.1 wakeups per second. What's keeping USB from suspending these
> > > unused devices here?
> >
> > Either the drivers don't support autosuspend or the devices aren't
> > enabled for autosuspend. By default, autosuspend is disabled for
> > (almost) all non-hub devices. You or your distribution must enable
> > it manually by doing:
> >
> > echo auto >/sys/bus/usb/devices/.../power/level
> >
> > If the driver doesn't support autosuspend then enabling it won't be
> > enough; you'll also have to unbind the driver from the device. The
> > easiest way to do this is to unconfigure the device:
> >
> > echo 0 >/sys/bus/usb/devices/.../bConfigurationValue
>
> Thanks! This way, it works, even without manually unbinding the host
> drivers.
>
> Best,
> Dominik
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
next prev parent reply other threads:[~2010-04-04 20:47 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-03 22:33 A few questions and issues with dynticks, NOHZ and powertop Dominik Brodowski
2010-04-03 23:53 ` Dmitry Torokhov
2010-04-04 10:35 ` Dominik Brodowski
2010-04-05 20:54 ` Dmitry Torokhov
2010-04-04 10:47 ` Dominik Brodowski
2010-04-05 3:42 ` Arjan van de Ven
2010-04-05 20:41 ` Dominik Brodowski
2010-04-05 20:52 ` Dmitry Torokhov
2010-04-04 15:17 ` Alan Stern
2010-04-04 16:39 ` Dominik Brodowski
2010-04-04 20:47 ` Paul E. McKenney [this message]
2010-04-04 23:37 ` Paul E. McKenney
2010-04-05 3:44 ` Arjan van de Ven
2010-04-05 4:22 ` Paul E. McKenney
2010-04-05 14:40 ` Arjan van de Ven
2010-04-05 15:14 ` Paul E. McKenney
2010-04-05 16:07 ` Arjan van de Ven
2010-04-05 16:22 ` Paul E. McKenney
2010-04-05 16:23 ` Arjan van de Ven
2010-04-05 16:40 ` Paul E. McKenney
2010-04-05 18:44 ` david
2010-04-05 19:48 ` Arjan van de Ven
2010-04-05 20:34 ` Paul E. McKenney
2010-04-05 21:03 ` Dominik Brodowski
2010-04-05 21:38 ` Paul E. McKenney
2010-04-05 22:11 ` Dominik Brodowski
2010-04-05 22:31 ` Paul E. McKenney
2010-04-06 20:45 ` Dominik Brodowski
2010-04-06 20:59 ` Paul E. McKenney
2010-04-08 19:59 ` [RFC PATCH] nohz/sched: disable ilb on !mc_capable() Dominik Brodowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100404204725.GC2644@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=arjan@linux.intel.com \
--cc=dtor@mail.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@dominikbrodowski.net \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--cc=stern@rowland.harvard.edu \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.