From: Dmitry Krivoschekov <dmitry.krivoschekov@gmail.com>
To: David Brownell <david-b@pacbell.net>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>,
Pavel Machek <pavel@ucw.cz>,
linux-pm@lists.osdl.org
Subject: Re: Alternative Concept
Date: Tue, 20 Mar 2007 12:45:29 +0300 [thread overview]
Message-ID: <45FFAD39.1000302@gmail.com> (raw)
In-Reply-To: <200703200107.17290.david-b@pacbell.net>
David Brownell wrote:
> On Monday 19 March 2007 5:03 pm, Dmitry Krivoschekov wrote:
>> David Brownell wrote:
>>> On Sunday 18 March 2007 1:25 pm, Dmitry Krivoschekov wrote:
>>>> Sometimes it's quite reasonable to make decisions (or policy)
>>>> at the low level, without exposing events to higher layers,
>>> Of course. Any layer can incorporate a degree of policy.
>> But users should be able to choose to use or do not use the incorporated
>> policy, shouldn't they?
>
> Sometimes. What's a user?
It's a user of a kernel subsystem that (subsystem ) keeps a policy,
i.e. a user it's another kernel subsystem or userspace application,
it depends on implementation of a system.
> Do you really expect every single
> algorithm choice to be packaged as a pluggable policy?
I didn't say pluggable policy, I just said there are must be
an alternative - "use" or "do not use" a predefined policy.
For example, in USB you are able to enable/disable autosuspend rule,
don't know if it's possible to disable it at runtime though.
> Any
> time I've seen systems designed that way, those pluggabilty
> hooks have been a major drag on performance and maintainability.
>
> Most components don't actually _need_ a choice of policies.
>
>
Yes, but they at least need a mechanism to disable an associated policy,
upper layers should be able to decide where the policy well be kept,
they may delegate the keeping to lower layers but also may want to
keep the policy themselves for some reason.
Also, in some cases it is reasonable to adjust rules of a policy
(without changing the policy). For example if you define a policy
"keep an output frequency always for 33 MHz (an input frequency may vary)",
you may want to change the base frequency to 66 MHz sometimes.
>>> It's only when that's badly done -- or the problem is so complex
>>> that multiple policies need to be supported -- that you need to
>>> pull out that old "mechanism not policy" chestnut, and support
>>> some kind of policy switching mechanism (governors, userspace
>>> agents, etc) for different application domains.
>>>
>>>
>>>> e.g. turning a clock off when reference counter gets zero, this is
>>>> what OMAP's clock framework currently does.
>>> There are no choices to be made in that layer; it's no more "policy"
>>> than following the laws of arithmetic is "policy". Software clock
>> there is some principle: "turn the clock off when use counter reaches
>> zero", so it is a policy, and a choice is to disable or not to disable
>> an output clock, it is the simplest case but it's certainly a policy.
>
> That's not a choice; it's how the API is defined. It's not "policy".
>
> Arithmetic is defined so that 2 + 2 == 4. Should we have a "policy"
> allowing it to == 5 instead? Or should we just accept that as how
> things are defined, and move on?
We should accept this if we agree that benefit of using the rule always
exist,
but if the rule constrain some functionality we may want to disable the
rule.
Considering the case with clocks, we may want to leave the clock running
even if there is no users of the clock, but there is a timing constraint
for readiness of a clock device (PLLs can't be started immediately).
Thanks,
Dmitry
next prev parent reply other threads:[~2007-03-20 9:45 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-24 1:23 [RFC] CPUFreq PowerOP integration, Intro 0/3 Eugeny S. Mints
2006-10-07 2:36 ` Alternative Concept [Was: Re: [RFC] CPUFreq PowerOP integration, Intro 0/3] Dominik Brodowski
2006-10-07 3:15 ` Dominik Brodowski
2006-10-08 7:16 ` Pavel Machek
2006-10-12 15:38 ` Mark Gross
2006-10-12 16:02 ` Dominik Brodowski
2006-10-16 21:56 ` Mark Gross
2006-10-17 21:40 ` Matthew Locke
2006-10-12 16:48 ` Pavel Machek
2006-10-12 17:12 ` Vitaly Wool
2006-10-12 17:23 ` Pavel Machek
2006-10-09 18:21 ` Mark Gross
2006-10-26 3:06 ` Dominik Brodowski
2006-10-12 22:43 ` Eugeny S. Mints
2006-10-13 10:55 ` Pavel Machek
2006-10-16 21:44 ` Mark Gross
2006-10-17 8:26 ` Pavel Machek
2006-10-26 3:05 ` Dominik Brodowski
2007-03-13 0:57 ` Alternative Concept Matthew Locke
2007-03-13 11:08 ` Pavel Machek
2007-03-13 20:34 ` Mark Gross
2007-03-14 2:30 ` Ikhwan Lee
2007-03-14 10:43 ` Eugeny S. Mints
2007-03-14 17:19 ` David Brownell
2007-03-14 18:12 ` Igor Stoppa
2007-03-14 18:45 ` David Brownell
2007-03-15 9:53 ` Eugeny S. Mints
2007-03-15 13:04 ` Igor Stoppa
2007-03-16 2:21 ` David Brownell
2007-03-16 3:56 ` Ikhwan Lee
2007-03-16 6:17 ` David Brownell
2007-03-19 2:27 ` Ikhwan Lee
2007-03-19 6:07 ` David Brownell
2007-03-16 13:06 ` Dmitry Krivoschekov
2007-03-16 18:03 ` David Brownell
2007-03-18 20:25 ` Dmitry Krivoschekov
2007-03-19 4:04 ` David Brownell
2007-03-20 0:03 ` Dmitry Krivoschekov
2007-03-20 8:07 ` David Brownell
2007-03-20 9:45 ` Dmitry Krivoschekov [this message]
2007-03-20 10:30 ` Igor Stoppa
2007-03-20 12:13 ` Eugeny S. Mints
2007-03-20 12:39 ` Igor Stoppa
2007-03-20 13:44 ` Dmitry Krivoschekov
2007-03-20 21:03 ` David Brownell
2007-03-20 13:07 ` Dmitry Krivoschekov
2007-03-20 13:52 ` Igor Stoppa
2007-03-20 14:58 ` Dmitry Krivoschekov
2007-03-20 15:36 ` Pavel Machek
2007-03-20 19:16 ` Dmitry Krivoschekov
2007-03-20 20:45 ` Pavel Machek
2007-03-20 22:04 ` David Brownell
2007-03-20 22:06 ` Pavel Machek
2007-03-20 23:29 ` David Brownell
2007-03-20 15:36 ` Igor Stoppa
2007-03-20 19:17 ` Dmitry Krivoschekov
2007-03-20 20:17 ` David Brownell
2007-03-20 20:21 ` David Brownell
2007-03-20 19:58 ` David Brownell
2007-03-24 0:47 ` charging batteries from USB [was: Re: Alternative Concept] Dmitry Krivoschekov
2007-03-24 1:17 ` David Brownell
2007-03-24 1:48 ` Dmitry Krivoschekov
2007-03-24 2:35 ` David Brownell
2007-03-24 10:20 ` Oliver Neukum
2007-03-24 8:36 ` Oliver Neukum
2007-03-14 3:19 ` Alternative Concept Dominik Brodowski
-- strict thread matches above, loose matches on Subject: below --
2007-03-14 22:08 Scott E. Preece
2007-03-14 23:23 ` David Brownell
2007-03-15 7:25 ` Ikhwan Lee
2007-03-15 8:14 ` Amit Kucheria
2007-03-15 10:55 ` Eugeny S. Mints
2007-03-15 10:46 ` Eugeny S. Mints
2007-03-15 10:33 ` Eugeny S. Mints
2007-03-15 13:21 Scott E. Preece
2007-03-15 13:29 Scott E. Preece
2007-03-15 23:07 ` David Brownell
2007-03-15 14:00 Scott E. Preece
2007-03-15 14:38 ` Eugeny S. Mints
2007-03-15 17:33 ` Woodruff, Richard
2007-03-19 14:12 Scott E. Preece
2007-03-20 7:56 ` David Brownell
2007-03-20 14:26 ` Amit Kucheria
2007-03-20 15:08 ` Dmitry Krivoschekov
2007-03-20 17:04 ` David Brownell
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=45FFAD39.1000302@gmail.com \
--to=dmitry.krivoschekov@gmail.com \
--cc=david-b@pacbell.net \
--cc=linux-pm@lists.osdl.org \
--cc=linux@dominikbrodowski.net \
--cc=pavel@ucw.cz \
/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