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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox