From: Kay Sievers <kay.sievers@suse.de>
To: Paul Mundt <lethal@linux-sh.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>,
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: Tue, 22 Mar 2011 23:00:56 +0100 [thread overview]
Message-ID: <1300831256.1815.22.camel@zag> (raw)
In-Reply-To: <20110322214922.GA7503@linux-sh.org>
On Wed, 2011-03-23 at 06:49 +0900, Paul Mundt wrote:
> On Tue, Mar 22, 2011 at 10:12:36PM +0100, Kay Sievers wrote:
> > On Tue, 2011-03-22 at 22:00 +0100, Rafael J. Wysocki wrote:
> > > On Tuesday, March 22, 2011, Kay Sievers wrote:
> > > > On Tue, 2011-03-22 at 21:30 +0100, Rafael J. Wysocki wrote:
> > > > >
> > > > > Perhaps there's a more straightforward way to make some files show up in
> > > > > sysfs on a specific path than defininig an otherwise useless bus type and
> > > > > device object?
> > > >
> > > > That's absolutely not the point. Please don't get yourself into that
> > > > thinking. If people want to "export stuff to userspace", they must not
> > > > invent new things. We need to get rid of the silly special cases.
> > >
> > > Why exactly? Do they actually hurt anyone and if so then how?
> >
> > Sure, "devices" are devices, and devices have well-defines set of
> > properties, not some magic directory, people can mess around with the
> > way they like.
> >
> This is starting to get silly. In the case of interrupt controllers as
> with clocksources the bus abstraction is completely meaningless. I could
> register a type of "system" bus, but how would that be any different from
> what we have from sysdevs already today? All it does is force people to
> duplicate crap all over the place instead and pretend like extra busses
> exist in order to fit some arbitrary definition of how the driver model
> should work.
>
> You talk about inventing special interfaces to bypass the device model,
> but that's not the case here. Rolling my own interface with kobjects and
> attribute groups as with /sys/power or making an arbitrary bus type for a
> single class of system devices seems infinitely more hackish than the
> current sysdev model.
>
> The comment at the top of sys.c says:
>
> * sys.c - pseudo-bus for system 'devices' (cpus, PICs, timers, etc)
Which is what we need to get rid of. It does not make any sense on the
global picture to have anything like that exported to userspace.
> Which is precisely where I would expect interrupt controllers and timers
> and CPUs to go. I'm not going to make an IRQ bus or a timer bus and
> arbitrarily map some things there and some things somewhere else in the
> name of some abstraction insanity. These interrupt controllers all have
> consistent attributes that make the sysdev class model work well, but
> there are also many other types of interrupt controllers on the same CPUs
> that use a different abstraction.
>
> Beyond that, we also have sysdev class utilization for DMA controllers,
> per-CPU store queues, etc, etc. all of which would need to be converted
> to something else (see for example arch/sh/kernel/cpu/sh4/sq.c -- which
> in turn was modelled after the cpufreq code, which also would need to
> change to something else). It's not entirely obvious how to convert these
> things, or why one should even bother. I can live with the struct device
> overhead even if I find it to be a meaningless abstraction in this case,
> but what sort of bus/class model to shoe horn these things in to is
> rather beyond me.
>
> Indeed it seems to me that these are precisely the sorts of things that
> sysdevs are intended for, which is why I elected to use them from the
> onset. Simply saying "don't use sysdevs" and "pretend like you have some
> sort of a magical pseudo-bus that's not a system bus" doesn't quite do it
> for me.
Nope, a device has a "name", a "subsystem" and a "devpath", has
well-defined core-maintained properties at the device directory. It is
not some random custom directory which people can put where they like
it. Userspace has expectations about devices which need to be met, and
that can only happen if these devices are "struct device".
All real devices sort into a hierarchy, possibly in different parent
locations, and have a single point of classification which is the
devices/ directory and contains symlinks. Only that way we can cope with
it in userspace.
People should really stop messing around in /sys for optimization
purposes. We have a common device model, and need to use it. Sysdevs do
not fit into that model.
I can't tell how that fits into your use case, but please use something
else than sysfs, if you need device information exported, but you can't
use "struct device".
Thanks,
Kay
next prev parent reply other threads:[~2011-03-22 22:01 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 [this message]
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
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=1300831256.1815.22.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