From: Kay Sievers <kay.sievers@suse.de>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Paul Mundt <lethal@linux-sh.org>,
LKML <linux-kernel@vger.kernel.org>, Greg KH <gregkh@suse.de>,
Linux PM mailing list <linux-pm@lists.linux-foundation.org>,
Russell King <linux@arm.linux.org.uk>,
Magnus Damm <magnus.damm@gmail.com>,
linux-sh@vger.kernel.org
Subject: Re: [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev class and sysdev
Date: Wed, 23 Mar 2011 00:46:29 +0100 [thread overview]
Message-ID: <1300837589.1424.10.camel@zag> (raw)
In-Reply-To: <201103230032.37417.rjw@sisk.pl>
On Wed, 2011-03-23 at 00:32 +0100, Rafael J. Wysocki wrote:
> On Tuesday, March 22, 2011, Kay Sievers wrote:
> > On Tue, 2011-03-22 at 23:23 +0100, Rafael J. Wysocki wrote:
> > > On Tuesday, March 22, 2011, Kay Sievers wrote:
> ...
> > >
> > > Now, I can easily understand arguments about representing everything under
> > > /sys/devices/ by struct device objects, no question about that. However,
> > > I also think there should be a place for things like those mentioned in the
> > > comment in sys.c, presumably outside of /sys/devices/.
> >
> > No, please. We have all we need. Let's do one example, which you might
> > apply to any other thing, because you never know what's the next big
> > thing in hardware. We need to be a future-proof-as-possible, and that's
> > not some second-class out-of-scope sysfs directory.
> >
> > Lets' take CPUs:
> > - they send events when registered
> > - they want to export device specific properties
> > - userspace wants to take actions when such devices are available
> >
> > That all fits properly into the driver model in theory. Unless you do
> > coldplug and bootup a box.
> >
> > These devices are already there before userspace even starts, hence we
> > find all these devices and "trigger" an fake uevent for all of them at
> > bootup. That will match execute all the rules specified for that device,
> > just as it would be hotplugges in that moment, hence we call it
> > coldplug, which works for all devices with the hotplug code, even when
> > they are never hot-pluggable.
> >
> > What we do for coldplug is that we iterate over all flat lists of
> > subsystems and find the devices lists and trigger the event by poking in
> > the "uevent" sysfs file. Now all the sysdevs do not have a subsystem to
> > find, and do not have a standard "uevent" file.
> >
> > Back to the CPUs, we have all the nice device directories which could
> > have all the CPU features in properties we need to make autoloading of
> > cpufreq, governer, kvm possible (patch exists from Andi Kleen already)
> >
> > But these dumb CPU sysfs device directories are completely invisible for
> > the *usual* logic, and should just join the model and all will just work
> > out-of-the-box.
>
> That all is cool, but I'm not sure how it is related to things like
> available_clocksource and current_clocksource (which happen to be located
> under /sys/devices/system/clocksource/clocksource0/ being simply a path
> in sysfs).
Sure, it isn't related to clocksource at all. I didn't really get the
idea that there are users that just fake core devices only to get a
place to put a couple of attributes. I was still in the context of the
$SUBJECT of this thread.
This stuff should just stay away from devices, not sysdev, not "struct
device".
For other things like CPUs, which are fine to be represented as driver
core devices, all the above is still valid, and they should be real
devices and have their own subsystem, which exposes them to coldplug and
usual event handling.
> Well, Greg apparently thinks that available_clocksource and current_clocksource
> could be located under /sys/bus/clock/. Perhaps other attributes now exported
> through sysdevs could be moved to places like this?
Sure, we could do that. All such subsystems have a directory to put
subsystem-global stuff. In this case it would be a subsystem without any
registered device. But it leaves us open to add real devices to it
later, which might be the case for some similar subsystems.
The other option would be /sys/kernel/clocksource/ with the few
attributes to create.
We should decide if "clocksource" is kind of "device-related" or not. Do
you have any list of subsystems besides "clocksource", which would help
to get a bigger picture what we should expect?
Kay
next prev parent reply other threads:[~2011-03-22 23:46 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-10 0:31 [RFC][PATCH 0/2] Allow subsystems to avoid using sysdevs for defining "core" PM callbacks Rafael J. Wysocki
2011-03-10 0:33 ` [RFC][PATCH 1/2] Introduce struct syscore_ops and related functionality Rafael J. Wysocki
2011-03-10 3:33 ` [linux-pm] " Alan Stern
2011-03-10 10:42 ` Rafael J. Wysocki
2011-03-10 11:30 ` [RFC][Update][PATCH " Rafael J. Wysocki
2011-03-11 17:11 ` Greg KH
2011-03-11 20:13 ` Rafael J. Wysocki
2011-03-11 20:16 ` Greg KH
2011-03-11 20:33 ` Rafael J. Wysocki
2011-03-10 0:34 ` [RFC][PATCH 2/2] Convert several sysdev users to using struct syscore_ops Rafael J. Wysocki
2011-03-11 17:12 ` Greg KH
2011-03-11 20:29 ` Rafael J. Wysocki
2011-03-11 20:33 ` Greg KH
2011-03-11 20:45 ` Rafael J. Wysocki
2011-03-10 13:05 ` [RFC][PATCH 0/2] Allow subsystems to avoid using sysdevs for defining "core" PM callbacks Kay Sievers
2011-03-10 19:04 ` Rafael J. Wysocki
2011-03-12 21:12 ` [PATCH 0/8] " Rafael J. Wysocki
2011-03-12 21:13 ` [PATCH 1/8] PM / Core: Introcude struct syscore_ops Rafael J. Wysocki
2011-03-12 21:15 ` [PATCH 2/8] x86: Use syscore_ops instead of sysdev classes and sysdevs Rafael J. Wysocki
2011-03-13 14:23 ` Thomas Gleixner
2011-03-13 15:07 ` Rafael J. Wysocki
2011-03-12 21:16 ` [PATCH 3/8] ACPI: Use syscore_ops instead of sysdev class and sysdev Rafael J. Wysocki
2011-03-18 21:38 ` Len Brown
2011-03-12 21:17 ` [PATCH 4/8] timekeeping: " Rafael J. Wysocki
2011-03-13 13:56 ` Thomas Gleixner
2011-03-13 15:08 ` Rafael J. Wysocki
2011-03-12 21:18 ` [PATCH 5/8] PCI / Intel IOMMU: " Rafael J. Wysocki
2011-06-02 17:30 ` Tony Luck
2011-06-06 17:57 ` Rafael J. Wysocki
2011-06-06 17:58 ` Luck, Tony
2011-03-12 21:18 ` [PATCH 6/8] KVM: " Rafael J. Wysocki
2011-03-12 21:20 ` [PATCH 7/8] cpufreq: Use syscore_ops for boot CPU suspend/resume Rafael J. Wysocki
2011-03-15 21:43 ` [Update, v2] " Rafael J. Wysocki
2011-03-12 21:21 ` [PATCH 8/8] Introduce ARCH_NO_SYSDEV_OPS config option Rafael J. Wysocki
2011-03-13 13:55 ` Thomas Gleixner
2011-03-13 15:30 ` [Update] " Rafael J. Wysocki
2011-03-13 13:02 ` [PATCH 9-10/10] Allow subsystems to avoid using sysdevs for defining "core" PM callbacks Rafael J. Wysocki
2011-03-13 13:03 ` [PATCH 9/10] sh: Use struct syscore_ops instead of sysdev class and sysdev R. J. Wysocki
2011-03-17 8:20 ` Paul Mundt
2011-03-19 0:47 ` Rafael J. Wysocki
2011-03-22 14:04 ` Paul Mundt
2011-03-22 14:19 ` Kay Sievers
2011-03-22 20:30 ` Rafael J. Wysocki
2011-03-22 20:39 ` Kay Sievers
2011-03-22 21:00 ` Rafael J. Wysocki
2011-03-22 21:12 ` Kay Sievers
2011-03-22 21:49 ` Paul Mundt
2011-03-22 22:00 ` Kay Sievers
2011-03-22 22:23 ` Rafael J. Wysocki
2011-03-22 22:44 ` Kay Sievers
2011-03-22 23:32 ` Rafael J. Wysocki
2011-03-22 23:46 ` Kay Sievers [this message]
2011-03-22 23:50 ` Rafael J. Wysocki
2011-03-23 9:45 ` Russell King - ARM Linux
2011-03-22 22:23 ` Paul Mundt
2011-03-23 11:12 ` Mark Brown
2011-03-23 11:28 ` Paul Mundt
2011-03-22 22:05 ` Rafael J. Wysocki
2011-03-22 22:20 ` Kay Sievers
2011-03-22 22:42 ` Rafael J. Wysocki
2011-03-22 22:56 ` Kay Sievers
2011-03-22 23:05 ` Kay Sievers
2011-03-22 23:47 ` Rafael J. Wysocki
2011-03-22 20:19 ` Rafael J. Wysocki
2011-03-23 9:59 ` Paul Mundt
2011-03-23 20:39 ` Rafael J. Wysocki
2011-03-13 13:04 ` [PATCH 10/10] ARM: Use struct syscore_ops instead of sysdevs for PM in timer and leds Rafael J. Wysocki
2011-03-14 9:06 ` Stephen Boyd
2011-03-14 19:54 ` [Update] " Rafael J. Wysocki
2011-03-21 23:31 ` [PATCH 0/6] Do not use sysdevs for implementing "core" PM operations on x86 Rafael J. Wysocki
2011-03-21 23:34 ` [PATCH 1/6] x86: Use syscore_ops instead of sysdev classes and sysdevs Rafael J. Wysocki
2011-03-21 23:35 ` [PATCH 2/6] timekeeping: Use syscore_ops instead of sysdev class and sysdev Rafael J. Wysocki
2011-03-21 23:36 ` [PATCH 3/6] PCI / Intel IOMMU: " Rafael J. Wysocki
2011-03-22 10:57 ` Joerg Roedel
2011-03-22 22:07 ` Rafael J. Wysocki
2011-03-23 7:48 ` Roedel, Joerg
2011-03-21 23:37 ` [PATCH 4/6] KVM: " Rafael J. Wysocki
2011-03-22 9:18 ` Avi Kivity
2011-03-21 23:38 ` [PATCH 5/6] cpufreq: Use syscore_ops for boot CPU suspend/resume (v2) Rafael J. Wysocki
2011-03-21 23:38 ` [PATCH 6/6] Introduce ARCH_NO_SYSDEV_OPS config option (v2) Rafael J. Wysocki
2011-03-22 10:32 ` [PATCH 0/6] Do not use sysdevs for implementing "core" PM operations on x86 Ingo Molnar
2011-03-22 20:33 ` Rafael J. Wysocki
2011-03-25 22:51 ` [GIT PULL] More power management updates for 2.6.39 Rafael J. Wysocki
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=1300837589.1424.10.camel@zag \
--to=kay.sievers@suse.de \
--cc=gregkh@suse.de \
--cc=lethal@linux-sh.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=magnus.damm@gmail.com \
--cc=rjw@sisk.pl \
/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