From: Lukasz Majewski <l.majewski@samsung.com>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: "Rafael J. Wysocky" <rjw@sisk.pl>,
"cpufreq@vger.kernel.org" <cpufreq@vger.kernel.org>,
Linux PM list <linux-pm@vger.kernel.org>,
Vincent Guittot <vincent.guittot@linaro.org>,
Jonghwa Lee <jonghwa3.lee@samsung.com>,
Myungjoo Ham <myungjoo.ham@samsung.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
Lukasz Majewski <l.majewski@majess.pl>,
Andre Przywara <andre.przywara@linaro.org>,
Daniel Lezcano <daniel.lezcano@linaro.org>,
Lists linaro-kernel <linaro-kernel@lists.linaro.org>
Subject: Re: [PATCH 2/5] cpufreq:boost: Add support for software based CPU frequency boost
Date: Thu, 06 Jun 2013 13:49:03 +0200 [thread overview]
Message-ID: <20130606134903.5f69b8fb@amdc308.digital.local> (raw)
In-Reply-To: <CAKohpok3KTfSWDU6PdDd4_VW4Pp+6J80yn5cLrYr5RuBNH-agA@mail.gmail.com>
Hi Viresh,
> Hi,
>
> On 6 June 2013 12:37, Lukasz Majewski <l.majewski@samsung.com> wrote:
> > This commit adds support for software based frequency boosting.
> > Exynos4 SoCs (e.g. 4x12) allow setting of frequency above its normal
> > condition limits. This can be done for some short time.
> >
> > Overclocking (boost) support came from cpufreq driver (which is
> > platform dependent). Hence the data structure describing it is
> > defined at its file.
> >
> > To allow support for either SW and HW (Intel) based boosting, the
> > cpufreq core code has been extended to support both solutions.
> >
> > The main boost switch has been put
> > at /sys/devices/system/cpu/cpufreq/boost.
>
> Log requires some better paragraphs but I am not concerned about it
> for now.
>
> > Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
> > Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
> > ---
> > drivers/cpufreq/cpufreq.c | 156
> > ++++++++++++++++++++++++++++++++++++++++++
> > drivers/cpufreq/freq_table.c | 87 ++++++++++++++++++++++-
> > include/linux/cpufreq.h | 35 +++++++++- 3 files changed, 275
> > insertions(+), 3 deletions(-)
>
> My initial view on this patch is: "It is overly engineered and needs
> to get simplified"
>
> > diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
> > index ca74e27..8cf9a92 100644
> > --- a/drivers/cpufreq/cpufreq.c
> > +++ b/drivers/cpufreq/cpufreq.c
> > @@ -133,6 +133,11 @@ bool have_governor_per_policy(void)
> > return cpufreq_driver->have_governor_per_policy;
> > }
> >
> > +/**
> > + * Global definition of cpufreq_boost structure
> > + */
> > +struct cpufreq_boost *cpufreq_boost;
>
> Probably just a 'static bool' here cpufreq_boost_enabled. Which takes
> care of selection from sysfs.
The pointer to struct cpufreq_boost is needed for further reference
(as it is now done with struct cpufreq_driver pointer - *cpufreq_driver
- defined at cpufreq.c file).
>
> > static struct cpufreq_governor *__find_governor(const char
> > *str_governor) {
> > @@ -761,6 +805,18 @@ static int cpufreq_add_dev_interface(unsigned
> > int cpu, if (cpufreq_set_drv_attr_files(policy,
> > cpufreq_driver->attr)) goto err_out_kobj_put;
> >
> > + if (cpufreq_driver->boost) {
> > + if (sysfs_create_file(cpufreq_global_kobject,
> > + &(global_boost.attr)))
>
> This will report error for systems where we have two policy
> structures. As we are creating something already present.
Good point, thanks.
>
> > + pr_warn("could not register global boost
> > sysfs file\n");
> > + else
> > + pr_debug("registered global boost sysfs
> > file\n");
>
> Please make all your prints to print function name too:
>
> pr_debug("%s: foo\n", __func__, foo);
OK.
>
> > + if (cpufreq_set_drv_attr_files(policy,
> > +
> > cpufreq_driver->boost->attr))
>
> Why is this required? Why do we want platforms to add some files
> in sysfs?
There are two kinds of attributes, which are exported by boost:
1. global boost (/sys/devices/system/cpu/cpufreq/boost)
2. attributes describing cpufreq abilities when boost is available
(/sys/devices/syste/cpu/cpu0/cpufreq/):
- scaling_boost_frequencies - which will show over clocked
frequencies
- the scaling_available_frequencies will also display boosted
frequency (when boost enabled)
Information from 2. is cpufreq_driver dependent. And that information
shouldn't been displayed when boost is not available
>
> > /*********************************************************************
> > + *
> > BOOST *
> > +
> > *********************************************************************/
> > +int cpufreq_boost_trigger_state(struct cpufreq_policy *policy, int
> > state) +{
> > + struct cpufreq_boost *boost;
> > + unsigned long flags;
> > + int ret = 0;
> > +
> > + if (!policy || !policy->boost
> > || !policy->boost->low_level_boost)
> > + return -ENODEV;
> > +
> > + boost = policy->boost;
> > + write_lock_irqsave(&cpufreq_driver_lock, flags);
> > +
> > + if (boost->status != state) {
> > + policy->boost->status = state;
> > + ret = boost->low_level_boost(policy, state);
> > + if (ret) {
> > + pr_err("BOOST cannot %sable low level code
> > (%d)\n",
> > + state ? "en" : "dis", ret);
> > + return ret;
> > + }
> > + }
> > +
> > + write_unlock_irqrestore(&cpufreq_driver_lock, flags);
> > +
> > + pr_debug("cpufreq BOOST %sabled\n", state ? "en" : "dis");
> > +
> > + return 0;
> > +}
> > +
> > +/**
> > + * cpufreq_boost_notifier - notifier callback for cpufreq policy
> > change.
> > + * <at> nb: struct notifier_block * with callback info.
> > + * <at> event: value showing cpufreq event for which this
> > function invoked.
> > + * <at> data: callback-specific data
> > + */
> > +static int cpufreq_boost_notifier(struct notifier_block *nb,
> > + unsigned long event, void *data)
> > +{
> > + struct cpufreq_policy *policy = data;
> > +
> > + if (event == CPUFREQ_INCOMPATIBLE) {
> > + if (!policy || !policy->boost)
> > + return -ENODEV;
> > +
> > + if (policy->boost->status == CPUFREQ_BOOST_EN) {
> > + pr_info("NOTIFIER BOOST: MAX: %d e:%lu cpu:
> > %d\n",
> > + policy->max, event, policy->cpu);
> > + cpufreq_boost_trigger_state(policy, 0);
> > + }
> > + }
> > +
> > + return 0;
> > +}
> > +
> > +/* Notifier for cpufreq policy change */
> > +static struct notifier_block cpufreq_boost_notifier_block = {
> > + .notifier_call = cpufreq_boost_notifier,
> > +};
> > +
> > +int cpufreq_boost_init(struct cpufreq_policy *policy)
> > +{
> > + int ret = 0;
> > +
> > + if (!policy)
> > + return -EINVAL;
>
> Heh, policy can't be NULL here.
Extra precautions :-). I will remove it.
>
> > + if (!cpufreq_driver->boost) {
> > + pr_err("Boost mode not supported on this device\n");
>
> Wow!! You want to screw everybody else's logs with this message.
> Its not a crime if you don't have boost mode supported :)
Hmm, I've exaggerated a bit here.... :)
>
> Actually this routine must be called only if cpufreq_driver->boost
> is valid.
>
> > + return -ENODEV;
> > + }
> > +
> > + policy->boost = cpufreq_boost = cpufreq_driver->boost;
>
> Why are we copying same pointer to policy->boost? Driver is
> passing pointer to a single memory location, just save it globally.
This needs some explanation.
The sysfs entry presented at [1] doesn't bring any useful information
to reuse (like *policy). For this reason the global cpufreq_boost
pointer is needed.
However to efficiently manage the boost, it is necessary to keep per
policy pointer to the only struct cpufreq_boost instance (defined at
cpufreq_driver code).
>
> > + /* disable boost for newly created policy - as we e.g.
> > change
> > + governor */
> > + policy->boost->status = CPUFREQ_BOOST_DIS;
>
> Drivers supporting boost may want boost to be enabled by default,
> maybe without any sysfs calls.
This can be done by setting the struct cpufreq_boost status field to
CPUFREQ_BOOST_EN at cpufreq driver code (when boost structure is
defined)
>
> > + /* register policy notifier */
> > + ret =
> > cpufreq_register_notifier(&cpufreq_boost_notifier_block,
> > + CPUFREQ_POLICY_NOTIFIER);
> > + if (ret) {
> > + pr_err("CPUFREQ BOOST notifier not registered.\n");
> > + return ret;
> > + }
> > + /* add policy to policies list headed at struct
> > cpufreq_boost */
> > + list_add_tail(&policy->boost_list,
> > &cpufreq_boost->policies); +
> > + return 0;
> > +}
> > +EXPORT_SYMBOL_GPL(cpufreq_boost_init);
>
> Why do we need to maintain a list of boost here? notifiers? complex :(
Notifier is needed to disable boost when policy is changed (for
example when we change from ondemand/lab to performance governor).
I wanted to avoid the situation when boost stays enabled across
different governors.
The list of in system available policies is defined to allow boost
enable/disable for all policies available (by changing for example
policy->max field).
If we decide, that we will support only one policy (as it is now at
e.g. Exynos), the list is unnecessary here.
>
> > +/*********************************************************************
> > * REGISTER / UNREGISTER CPUFREQ
> > DRIVER *
> > *********************************************************************/
> >
> > @@ -1954,6 +2106,10 @@ int cpufreq_unregister_driver(struct
> > cpufreq_driver *driver) pr_debug("unregistering driver %s\n",
> > driver->name);
> >
> > subsys_interface_unregister(&cpufreq_interface);
> > +
> > + if (cpufreq_driver->boost)
> > + sysfs_remove_file(cpufreq_global_kobject,
> > &(global_boost.attr));
>
> You haven't removed this from policy. Memory leak.
Yes, you are right.
>
> > unregister_hotcpu_notifier(&cpufreq_cpu_notifier);
> >
> > write_lock_irqsave(&cpufreq_driver_lock, flags);
> > diff --git a/drivers/cpufreq/freq_table.c
> > b/drivers/cpufreq/freq_table.c index d7a7966..0e95524 100644
> > --- a/drivers/cpufreq/freq_table.c
> > +++ b/drivers/cpufreq/freq_table.c
> > @@ -3,6 +3,8 @@
> > *
> > * Copyright (C) 2002 - 2003 Dominik Brodowski
> > *
> > + * Copyright (C) 2013 Lukasz Majewski <l.majewski@samsung.com>
> > + *
>
> You shouldn't add it unless you did some major work on this file. You
> aren't maintaining this file in 2013.
OK, I will remove the entry.
>
> > +static int cpufreq_frequency_table_skip_boost(struct
> > cpufreq_policy *policy,
> > + unsigned int index)
> > +{
> > + if (index == CPUFREQ_BOOST)
> > + if (!policy->boost ||
>
> This shouldn't be true. If index has got CPUFREQ_BOOST, then driver
> has to support boost.
Correct me if I'm wrong here, but in my understanding the boost shall be
only supported when both CPUFREQ_BOOST index is defined in a freq_table
and boost.state = CPUFREQ_BOOST_EN is set.
Setting of CPUFREQ_BOOST shouldn't by default allow to use over
clocking frequency.
>
> > + policy->boost->status == CPUFREQ_BOOST_DIS)
> > + return 1;
> > +
> > + return 0;
> > +}
> > +
> > +unsigned int
> > +cpufreq_frequency_table_boost_max(struct cpufreq_frequency_table
> > *freq_table) +{
> > + int index, boost_freq_max;
> > +
> > + for (index = 0, boost_freq_max = 0;
> > + freq_table[index].frequency != CPUFREQ_TABLE_END;
> > index++)
> > + if (freq_table[index].index == CPUFREQ_BOOST) {
> > + if (freq_table[index].frequency >
> > boost_freq_max)
> > + boost_freq_max =
> > freq_table[index].frequency;
> > + }
> > +
> > + return boost_freq_max;
> > +}
> > +EXPORT_SYMBOL_GPL(cpufreq_frequency_table_boost_max);
>
> why do we need this?
To evaluate the maximal boost frequency from the frequency table. It is
then used as a delimiter (when LAB cooperates with thermal framework).
>
> > /*
> > * if you use these, you must assure that the frequency table is
> > valid
> > * all the time between get_attr and put_attr!
> > diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
> > index 037d36a..1294c8c 100644
> > --- a/include/linux/cpufreq.h
> > +++ b/include/linux/cpufreq.h
> > @@ -88,6 +88,25 @@ struct cpufreq_real_policy {
> > struct cpufreq_governor *governor; /* see below */
> > };
> >
> > +#define CPUFREQ_BOOST_DIS (0)
> > +#define CPUFREQ_BOOST_EN (1)
>
> You don't need these.. Just create variable as bool and 0 & 1 would
> be fine.
Yes, this seems to be a clearer solution.
>
> > +struct cpufreq_policy;
> > +struct cpufreq_boost {
> > + unsigned int max_boost_freq; /* maximum value of
> > + * boosted freq */
> > + unsigned int max_normal_freq; /* non boost max
> > freq */
> > + int status; /* status of boost */
> > +
> > + /* boost sysfs attributies */
> > + struct freq_attr **attr;
> > +
> > + /* low-level trigger for boost */
> > + int (*low_level_boost) (struct cpufreq_policy *policy, int
> > state); +
> > + struct list_head policies;
> > +};
>
> We don't need it. Just add two more fields to cpufreq_driver:
> - have_boost_freqs and low_level_boost (maybe a better name.
> What's its use?)
The separate struct cpufreq_boost was created to explicitly separate
boost fields from cpufreq_driver structure.
If in your opinion this structure is redundant, I can remove it and
extend cpufreq_driver structure.
>
> > struct cpufreq_policy {
> > /* CPUs sharing clock, require sw coordination */
> > cpumask_var_t cpus; /* Online CPUs only */
> > @@ -113,6 +132,9 @@ struct cpufreq_policy {
> >
> > struct cpufreq_real_policy user_policy;
> >
> > + struct cpufreq_boost *boost;
> > + struct list_head boost_list;
>
> We don't need both of these.
*boost pointer is necessary when one wants to enable/disable boost from
e.g governor code (which operates mostly on struct cpufreq_policy
*policy pointers).
The boost_list is necessary to connect policies in a list.
>
> > struct kobject kobj;
> > struct completion kobj_unregister;
> > };
>
> > @@ -277,7 +302,6 @@ struct cpufreq_driver {
> > int cpufreq_register_driver(struct cpufreq_driver *driver_data);
> > int cpufreq_unregister_driver(struct cpufreq_driver *driver_data);
> >
> > -
>
> ??
>
> > void cpufreq_notify_transition(struct cpufreq_policy *policy,
> > struct cpufreq_freqs *freqs, unsigned int state);
> >
> > @@ -403,6 +427,9 @@ extern struct cpufreq_governor
> > cpufreq_gov_conservative; #define CPUFREQ_ENTRY_INVALID ~0
> > #define CPUFREQ_TABLE_END ~1
> >
> > +/* Define index for boost frequency */
> > +#define CPUFREQ_BOOST ~2
>
> s/CPUFREQ_BOOST/CPUFREQ_BOOST_FREQ
Ok, will be changed to something more descriptive.
Thanks for thorough review :-)
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
next prev parent reply other threads:[~2013-06-06 11:49 UTC|newest]
Thread overview: 320+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-06 7:07 [PATCH 0/5] cpufreq:boost: CPU Boost mode support Lukasz Majewski
2013-06-06 7:07 ` [PATCH 1/5] cpufreq: Define cpufreq_set_drv_attr_files() to add per CPU sysfs attributes Lukasz Majewski
2013-06-06 8:27 ` Viresh Kumar
2013-06-06 8:58 ` Lukasz Majewski
2013-06-06 9:00 ` Viresh Kumar
2013-06-06 9:16 ` Lukasz Majewski
2013-06-06 7:07 ` [PATCH 2/5] cpufreq:boost: Add support for software based CPU frequency boost Lukasz Majewski
2013-06-06 10:53 ` Viresh Kumar
2013-06-06 11:49 ` Lukasz Majewski [this message]
2013-06-06 15:46 ` Viresh Kumar
2013-06-07 13:27 ` Lukasz Majewski
2013-06-07 14:13 ` Viresh Kumar
2013-06-07 14:34 ` Lukasz Majewski
2013-06-07 14:44 ` Viresh Kumar
2013-06-07 14:43 ` Lukasz Majewski
2013-06-06 7:07 ` [PATCH 3/5] cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common boost solution Lukasz Majewski
2013-06-06 7:07 ` [PATCH 4/5] cpufreq:exynos:Extend exynos cpufreq driver to support boost Lukasz Majewski
2013-06-06 7:07 ` [PATCH 5/5] cpufreq:boost:Kconfig: Enable boost support at Kconfig Lukasz Majewski
2013-06-06 14:49 ` Dave Jones
2013-06-06 15:14 ` Lukasz Majewski
2013-06-06 15:21 ` Dave Jones
2013-06-06 15:48 ` Viresh Kumar
2013-06-06 15:58 ` Borislav Petkov
2013-06-10 13:20 ` Lukasz Majewski
2013-06-10 13:22 ` Viresh Kumar
2013-06-10 13:42 ` Lukasz Majewski
2013-06-11 9:03 ` [PATCH v2 0/3] cpufreq:boost: CPU Boost mode support Lukasz Majewski
2013-06-11 9:03 ` [PATCH v2 1/3] cpufreq:boost: CPU frequency boost code unification for software and hardware solutions Lukasz Majewski
2013-06-12 5:09 ` Viresh Kumar
2013-06-12 7:39 ` Lukasz Majewski
2013-06-12 8:09 ` Viresh Kumar
2013-06-12 9:09 ` Lukasz Majewski
2013-06-12 9:25 ` Viresh Kumar
2013-06-12 12:30 ` Lukasz Majewski
2013-06-12 11:23 ` Rafael J. Wysocki
2013-06-12 11:40 ` Lukasz Majewski
2013-06-11 9:03 ` [PATCH v2 2/3] cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common boost solution Lukasz Majewski
2013-06-11 9:03 ` [PATCH v2 3/3] cpufreq:exynos:Extend Exynos cpufreq driver to support boost framework Lukasz Majewski
2013-06-26 11:05 ` Viresh Kumar
2013-06-26 13:58 ` Lukasz Majewski
2013-06-27 4:02 ` Viresh Kumar
2013-06-27 6:31 ` Lukasz Majewski
2013-06-12 5:15 ` [PATCH v2 0/3] cpufreq:boost: CPU Boost mode support Viresh Kumar
2013-06-12 6:00 ` Lukasz Majewski
2013-06-12 6:05 ` Viresh Kumar
2013-06-14 7:38 ` [PATCH v3 " Lukasz Majewski
2013-06-14 7:38 ` [PATCH v3 1/3] cpufreq: Add boost frequency support in core Lukasz Majewski
2013-06-17 5:43 ` Viresh Kumar
2013-06-17 7:15 ` Lukasz Majewski
2013-06-17 7:43 ` Viresh Kumar
2013-06-17 9:08 ` Lukasz Majewski
2013-06-17 9:18 ` Viresh Kumar
2013-06-17 9:58 ` Lukasz Majewski
2013-06-17 13:10 ` Viresh Kumar
2013-06-17 13:51 ` Lukasz Majewski
2013-06-18 6:42 ` Viresh Kumar
2013-06-18 8:24 ` Lukasz Majewski
2013-06-18 8:40 ` Viresh Kumar
2013-06-18 9:12 ` Lukasz Majewski
2013-06-18 13:26 ` Rafael J. Wysocki
2013-06-18 13:44 ` Lukasz Majewski
2013-06-19 7:16 ` Lukasz Majewski
2013-06-20 5:11 ` Viresh Kumar
2013-06-20 6:41 ` Lukasz Majewski
2013-06-20 5:05 ` Viresh Kumar
2013-06-20 5:01 ` Viresh Kumar
2013-06-20 10:04 ` Lukasz Majewski
2013-06-14 7:38 ` [PATCH v3 2/3] cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common boost solution Lukasz Majewski
2013-06-14 7:39 ` [PATCH v3 3/3] cpufreq:exynos:Extend Exynos cpufreq driver to support boost framework Lukasz Majewski
2013-06-17 3:20 ` [PATCH v3 0/3] cpufreq:boost: CPU Boost mode support Viresh Kumar
2013-06-17 5:41 ` Lukasz Majewski
2013-06-19 17:12 ` [PATCH v4 0/7] " Lukasz Majewski
2013-06-19 17:12 ` [PATCH v4 1/7] cpufreq: Store cpufreq policies in a list Lukasz Majewski
2013-06-26 10:35 ` Viresh Kumar
2013-06-26 10:54 ` Lukasz Majewski
2013-06-26 10:56 ` Viresh Kumar
2013-06-26 11:04 ` Lukasz Majewski
2013-06-26 11:08 ` Viresh Kumar
2013-06-26 12:15 ` Lukasz Majewski
2013-06-19 17:12 ` [PATCH v4 2/7] cpufreq: Add boost frequency support in core Lukasz Majewski
2013-06-19 17:48 ` Dirk Brandewie
2013-06-19 20:31 ` Lukasz Majewski
2013-06-19 22:25 ` Rafael J. Wysocki
2013-07-17 7:58 ` Viresh Kumar
2013-07-17 11:31 ` Rafael J. Wysocki
2013-07-17 13:01 ` Viresh Kumar
2013-07-17 14:59 ` Lukasz Majewski
2013-07-18 7:51 ` Viresh Kumar
2013-06-20 5:13 ` Viresh Kumar
2013-06-20 20:03 ` Rafael J. Wysocki
2013-06-21 6:23 ` Lukasz Majewski
2013-06-26 10:54 ` Viresh Kumar
2013-06-26 12:54 ` Lukasz Majewski
2013-06-26 14:02 ` Lukasz Majewski
2013-06-27 9:02 ` Viresh Kumar
2013-06-27 9:48 ` Lukasz Majewski
2013-06-27 10:25 ` Viresh Kumar
2013-06-27 11:07 ` Lukasz Majewski
2013-06-27 15:55 ` Lukasz Majewski
2013-06-28 3:40 ` Viresh Kumar
2013-06-28 6:49 ` Lukasz Majewski
2013-06-28 6:51 ` Viresh Kumar
2013-06-28 7:31 ` Lukasz Majewski
2013-06-19 17:12 ` [PATCH v4 3/7] cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common boost solution Lukasz Majewski
2013-06-26 11:03 ` Viresh Kumar
2013-06-26 12:17 ` Lukasz Majewski
2013-06-19 17:12 ` [PATCH v4 4/7] cpufreq:exynos:Extend Exynos cpufreq driver to support boost framework Lukasz Majewski
2013-06-27 8:58 ` Viresh Kumar
2013-06-27 9:08 ` Lukasz Majewski
2013-06-19 17:12 ` [PATCH v4 5/7] cpufreq: Calculate number of busy CPUs Lukasz Majewski
2013-06-19 18:01 ` Dirk Brandewie
2013-06-19 20:58 ` Lukasz Majewski
2013-06-19 22:26 ` Rafael J. Wysocki
2013-06-27 9:36 ` Viresh Kumar
2013-06-27 10:58 ` Lukasz Majewski
2013-06-27 11:16 ` Viresh Kumar
2013-06-27 14:42 ` Lukasz Majewski
2013-06-28 3:50 ` Viresh Kumar
2013-06-28 6:54 ` Lukasz Majewski
2013-07-01 8:15 ` Lukasz Majewski
2013-07-04 5:06 ` Viresh Kumar
2013-07-04 5:43 ` Lukasz Majewski
2013-07-04 6:28 ` Viresh Kumar
2013-07-04 6:49 ` Lukasz Majewski
2013-07-04 12:50 ` Rafael J. Wysocki
2013-06-19 17:12 ` [PATCH v4 6/7] cpufreq: Enable software boost only when up to one busy core is running Lukasz Majewski
2013-06-19 17:12 ` [PATCH v4 7/7] thermal:boost: Disable boost when trip point is reached Lukasz Majewski
2013-06-26 7:48 ` [PATCH v4 0/7] cpufreq:boost: CPU Boost mode support Lukasz Majewski
2013-06-26 7:52 ` Viresh Kumar
2013-07-04 8:50 ` [PATCH v5 " Lukasz Majewski
2013-07-04 8:50 ` [PATCH v5 1/7] cpufreq: Store cpufreq policies in a list Lukasz Majewski
2013-07-16 8:51 ` Viresh Kumar
2013-07-16 9:39 ` Lukasz Majewski
2013-07-04 8:50 ` [PATCH v5 2/7] cpufreq: Add boost frequency support in core Lukasz Majewski
2013-07-16 9:41 ` Viresh Kumar
2013-07-16 12:06 ` Lukasz Majewski
2013-07-17 5:28 ` Viresh Kumar
2013-07-17 7:00 ` Lukasz Majewski
2013-07-04 8:50 ` [PATCH v5 3/7] cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common boost solution Lukasz Majewski
2013-07-16 10:04 ` Viresh Kumar
2013-07-16 11:17 ` Lukasz Majewski
2013-07-04 8:50 ` [PATCH v5 4/7] cpufreq:exynos:Extend Exynos cpufreq driver to support boost framework Lukasz Majewski
2013-07-16 9:48 ` Viresh Kumar
2013-07-16 10:58 ` Lukasz Majewski
2013-07-04 8:50 ` [PATCH v5 5/7] thermal:boost: Automatic enable/disable of BOOST feature Lukasz Majewski
2013-07-04 17:19 ` R, Durgadoss
2013-07-04 20:58 ` Lukasz Majewski
2013-07-05 5:31 ` R, Durgadoss
2013-07-05 6:43 ` Lukasz Majewski
2013-07-11 8:08 ` Lukasz Majewski
2013-07-16 7:28 ` Lukasz Majewski
2013-07-04 8:50 ` [PATCH v5 6/7] cpufreq:boost:Kconfig: Enable software managed BOOST support at Kconfig Lukasz Majewski
2013-07-16 9:58 ` Viresh Kumar
2013-07-16 11:50 ` Lukasz Majewski
2013-07-17 5:24 ` Viresh Kumar
2013-07-17 7:17 ` Lukasz Majewski
2013-07-17 7:52 ` Viresh Kumar
2013-07-17 8:12 ` Lukasz Majewski
2013-07-17 8:29 ` Viresh Kumar
2013-07-17 9:11 ` Lukasz Majewski
2013-07-04 8:50 ` [PATCH v5 7/7] Documentation:cpufreq:boost: Update BOOST documentation Lukasz Majewski
2013-07-16 10:01 ` Viresh Kumar
2013-07-16 11:33 ` Lukasz Majewski
2013-07-17 5:22 ` Viresh Kumar
2013-07-17 7:36 ` Lukasz Majewski
2013-07-17 7:59 ` Viresh Kumar
2013-07-17 8:13 ` Lukasz Majewski
2013-07-09 7:02 ` [PATCH v5 0/7] cpufreq:boost: CPU Boost mode support Lukasz Majewski
2013-07-09 7:04 ` Viresh Kumar
2013-07-16 7:26 ` Lukasz Majewski
2013-07-16 8:46 ` Viresh Kumar
2013-07-25 16:33 ` [PATCH v6 0/8] " Lukasz Majewski
2013-07-25 16:33 ` [PATCH v6 1/8] cpufreq: Store cpufreq policies in a list Lukasz Majewski
2013-07-26 10:14 ` Viresh Kumar
2013-07-26 10:58 ` Lukasz Majewski
2013-07-26 11:02 ` Viresh Kumar
2013-07-26 12:46 ` Lukasz Majewski
2013-07-29 7:03 ` Viresh Kumar
2013-07-25 16:33 ` [PATCH v6 2/8] cpufreq: Add boost frequency support in core Lukasz Majewski
2013-07-26 7:17 ` Viresh Kumar
2013-07-26 8:33 ` Lukasz Majewski
2013-07-26 9:33 ` Viresh Kumar
2013-07-26 10:10 ` Lukasz Majewski
2013-07-26 9:36 ` Viresh Kumar
2013-07-26 10:11 ` Lukasz Majewski
2013-08-12 9:07 ` Lukasz Majewski
2013-08-12 9:10 ` Viresh Kumar
2013-07-26 12:36 ` Rafael J. Wysocki
2013-07-26 13:08 ` Lukasz Majewski
2013-07-25 16:33 ` [PATCH v6 3/8] cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common boost solution Lukasz Majewski
2013-07-26 7:28 ` Viresh Kumar
2013-07-26 8:09 ` Lukasz Majewski
2013-07-26 9:24 ` Viresh Kumar
2013-07-26 9:44 ` Lukasz Majewski
2013-08-12 9:12 ` Lukasz Majewski
2013-08-12 9:14 ` Viresh Kumar
2013-07-25 16:33 ` [PATCH v6 4/8] thermal:boost: Automatic enable/disable of BOOST feature Lukasz Majewski
2013-08-12 9:17 ` Lukasz Majewski
2013-07-25 16:33 ` [PATCH v6 5/8] cpufreq:boost:Kconfig: Provide support for software managed BOOST Lukasz Majewski
2013-07-26 10:24 ` Viresh Kumar
2013-07-26 11:21 ` Lukasz Majewski
2013-07-29 6:58 ` Viresh Kumar
2013-08-12 10:26 ` Lukasz Majewski
2013-08-12 10:28 ` Viresh Kumar
2013-08-12 10:50 ` Lukasz Majewski
2013-07-25 16:33 ` [PATCH v6 6/8] cpufreq:exynos:Extend Exynos cpufreq driver to support boost framework Lukasz Majewski
2013-07-26 10:26 ` Viresh Kumar
2013-07-26 11:26 ` Lukasz Majewski
2013-07-29 7:01 ` Viresh Kumar
2013-08-12 9:52 ` Lukasz Majewski
2013-07-25 16:33 ` [PATCH v6 7/8] Documentation:cpufreq:boost: Update BOOST documentation Lukasz Majewski
2013-07-25 16:33 ` [PATCH v6 8/8] cpufreq:exynos4x12: Change L0 driver data to CPUFREQ_BOOST_FREQ Lukasz Majewski
2013-07-26 10:28 ` [PATCH v6 0/8] cpufreq:boost: CPU Boost mode support Viresh Kumar
2013-08-13 10:08 ` [PATCH v7 0/7] " Lukasz Majewski
2013-08-13 10:08 ` [PATCH v7 1/7] cpufreq: Add boost frequency support in core Lukasz Majewski
2013-08-26 5:28 ` Viresh Kumar
2013-08-26 7:02 ` Lukasz Majewski
2013-08-26 7:06 ` Viresh Kumar
2013-08-26 7:11 ` Lukasz Majewski
2013-08-26 13:12 ` Rafael J. Wysocki
2013-08-26 14:00 ` Viresh Kumar
2013-08-26 14:46 ` Lukasz Majewski
2013-08-13 10:08 ` [PATCH v7 2/7] cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common boost solution Lukasz Majewski
2013-08-26 5:32 ` Viresh Kumar
2013-08-13 10:08 ` [PATCH v7 3/7] thermal:boost: Automatic enable/disable of BOOST feature Lukasz Majewski
2013-08-26 5:33 ` Viresh Kumar
2013-08-26 6:50 ` Lukasz Majewski
2013-08-13 10:08 ` [PATCH v7 4/7] cpufreq:boost:Kconfig: Provide support for software managed BOOST Lukasz Majewski
2013-08-26 5:35 ` Viresh Kumar
2013-08-13 10:08 ` [PATCH v7 5/7] cpufreq:exynos:Extend Exynos cpufreq driver to support boost framework Lukasz Majewski
2013-08-26 5:36 ` Viresh Kumar
2013-08-13 10:08 ` [PATCH v7 6/7] Documentation:cpufreq:boost: Update BOOST documentation Lukasz Majewski
2013-08-26 5:36 ` Viresh Kumar
2013-08-13 10:08 ` [PATCH v7 7/7] cpufreq:exynos4x12: Change L0 driver data to CPUFREQ_BOOST_FREQ Lukasz Majewski
2013-08-26 5:37 ` Viresh Kumar
2013-08-19 6:38 ` [PATCH v7 0/7] cpufreq:boost: CPU Boost mode support Viresh Kumar
2013-08-19 6:50 ` Lukasz Majewski
2013-08-19 23:29 ` Rafael J. Wysocki
2013-08-20 8:11 ` Lukasz Majewski
2013-08-20 12:32 ` Rafael J. Wysocki
2013-08-26 15:50 ` [PATCH v8 " Lukasz Majewski
2013-08-26 15:50 ` [PATCH v8 1/7] cpufreq: Add boost frequency support in core Lukasz Majewski
2013-08-26 15:50 ` [PATCH v8 2/7] cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common boost solution Lukasz Majewski
2013-08-26 15:50 ` [PATCH v8 3/7] thermal:boost: Automatic enable/disable of BOOST feature Lukasz Majewski
2013-08-26 15:50 ` [PATCH v8 4/7] cpufreq:boost:Kconfig: Provide support for software managed BOOST Lukasz Majewski
2013-08-26 15:50 ` [PATCH v8 5/7] cpufreq:exynos:Extend Exynos cpufreq driver to support boost framework Lukasz Majewski
2013-08-26 15:50 ` [PATCH v8 6/7] Documentation:cpufreq:boost: Update BOOST documentation Lukasz Majewski
2013-08-26 15:50 ` [PATCH v8 7/7] cpufreq:exynos4x12: Change L0 driver data to CPUFREQ_BOOST_FREQ Lukasz Majewski
2013-09-20 16:00 ` [PATCH RESEND v8 0/7] cpufreq:boost: CPU Boost mode support Lukasz Majewski
2013-09-20 16:00 ` [PATCH RESEND v8 1/7] cpufreq: Add boost frequency support in core Lukasz Majewski
2013-09-20 16:00 ` [PATCH RESEND v8 2/7] cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common boost solution Lukasz Majewski
2013-09-20 16:01 ` [PATCH RESEND v8 3/7] thermal:boost: Automatic enable/disable of BOOST feature Lukasz Majewski
2013-09-20 16:01 ` [PATCH RESEND v8 4/7] cpufreq:boost:Kconfig: Provide support for software managed BOOST Lukasz Majewski
2013-09-20 16:01 ` [PATCH RESEND v8 5/7] cpufreq:exynos:Extend Exynos cpufreq driver to support boost framework Lukasz Majewski
2013-09-20 16:01 ` [PATCH RESEND v8 6/7] Documentation:cpufreq:boost: Update BOOST documentation Lukasz Majewski
2013-09-20 16:01 ` [PATCH RESEND v8 7/7] cpufreq:exynos4x12: Change L0 driver data to CPUFREQ_BOOST_FREQ Lukasz Majewski
2013-10-14 12:17 ` [PATCH v9 0/7] cpufreq:boost: CPU Boost mode support Lukasz Majewski
2013-10-14 12:17 ` [PATCH v9 1/7] cpufreq: Add boost frequency support in core Lukasz Majewski
2013-10-14 12:17 ` [PATCH v9 2/7] cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common boost solution Lukasz Majewski
2013-10-14 12:17 ` [PATCH v9 3/7] thermal:boost: Automatic enable/disable of BOOST feature Lukasz Majewski
2013-10-15 9:32 ` Zhang Rui
2013-10-15 15:43 ` Lukasz Majewski
2013-10-17 15:09 ` Zhang, Rui
2013-10-14 12:17 ` [PATCH v9 4/7] cpufreq:boost:Kconfig: Provide support for software managed BOOST Lukasz Majewski
2013-10-14 12:17 ` [PATCH v9 5/7] cpufreq:exynos:Extend Exynos cpufreq driver to support boost framework Lukasz Majewski
2013-10-14 12:17 ` [PATCH v9 6/7] Documentation:cpufreq:boost: Update BOOST documentation Lukasz Majewski
2013-10-14 12:17 ` [PATCH v9 7/7] cpufreq:exynos4x12: Change L0 driver data to CPUFREQ_BOOST_FREQ Lukasz Majewski
2013-11-05 17:26 ` [PATCH v10 0/7] cpufreq:boost: CPU Boost mode support Lukasz Majewski
2013-11-05 17:26 ` [PATCH v10 1/7] cpufreq: Add boost frequency support in core Lukasz Majewski
2013-11-05 17:26 ` [PATCH v10 2/7] cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common boost solution Lukasz Majewski
2013-11-05 17:26 ` [PATCH v10 3/7] cpufreq:boost:Kconfig: Provide support for software managed BOOST Lukasz Majewski
2013-11-05 17:26 ` [PATCH v10 4/7] cpufreq:exynos:Extend Exynos cpufreq driver to support boost framework Lukasz Majewski
2013-11-05 17:26 ` [PATCH v10 5/7] Documentation:cpufreq:boost: Update BOOST documentation Lukasz Majewski
2013-11-05 17:26 ` [PATCH v10 6/7] cpufreq:exynos4x12: Change L0 driver data to CPUFREQ_BOOST_FREQ Lukasz Majewski
2013-11-05 17:26 ` [PATCH v10 7/7] thermal:exynos:boost: Automatic enable/disable of BOOST feature (at Exynos4412) Lukasz Majewski
2013-11-28 13:05 ` Lukasz Majewski
2013-12-02 14:53 ` Eduardo Valentin
2013-12-03 7:31 ` Lukasz Majewski
2013-12-03 12:36 ` Eduardo Valentin
2013-12-03 15:42 ` Lukasz Majewski
2013-12-04 14:10 ` Eduardo Valentin
2013-12-05 11:03 ` Lukasz Majewski
2013-12-05 13:25 ` Eduardo Valentin
2013-12-06 14:03 ` Lukasz Majewski
2013-12-02 12:19 ` [PATCH RESEND v10 0/7] cpufreq:boost: CPU Boost mode support Lukasz Majewski
2013-12-02 12:19 ` [PATCH RESEND v10 1/7] cpufreq: Add boost frequency support in core Lukasz Majewski
2013-12-02 12:19 ` [PATCH RESEND v10 2/7] cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common boost solution Lukasz Majewski
2013-12-02 12:19 ` [PATCH RESEND v10 3/7] cpufreq:boost:Kconfig: Provide support for software managed BOOST Lukasz Majewski
2013-12-02 12:19 ` [PATCH RESEND v10 4/7] cpufreq:exynos:Extend Exynos cpufreq driver to support boost framework Lukasz Majewski
2013-12-02 12:19 ` [PATCH RESEND v10 5/7] Documentation:cpufreq:boost: Update BOOST documentation Lukasz Majewski
2013-12-02 12:19 ` [PATCH RESEND v10 6/7] cpufreq:exynos4x12: Change L0 driver data to CPUFREQ_BOOST_FREQ Lukasz Majewski
2013-12-02 12:19 ` [PATCH RESEND v10 7/7] thermal:exynos:boost: Automatic enable/disable of BOOST feature (at Exynos4412) Lukasz Majewski
2013-12-04 6:59 ` [PATCH RESEND v10 0/7] cpufreq:boost: CPU Boost mode support Lukasz Majewski
2013-12-04 14:12 ` Eduardo Valentin
2013-12-09 10:04 ` Lukasz Majewski
2013-12-13 16:38 ` [PATCH v11 " Lukasz Majewski
2013-12-13 16:38 ` [PATCH v11 1/7] cpufreq: Add boost frequency support in core Lukasz Majewski
2013-12-13 16:38 ` [PATCH v11 2/7] cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common boost solution Lukasz Majewski
2013-12-13 16:38 ` [PATCH v11 3/7] cpufreq:boost:Kconfig: Provide support for software managed BOOST Lukasz Majewski
2013-12-13 16:38 ` [PATCH v11 4/7] cpufreq:exynos:Extend Exynos cpufreq driver to support boost framework Lukasz Majewski
2013-12-13 16:38 ` [PATCH v11 5/7] Documentation:cpufreq:boost: Update BOOST documentation Lukasz Majewski
2013-12-13 16:38 ` [PATCH v11 6/7] cpufreq:exynos4x12: Change L0 driver data to CPUFREQ_BOOST_FREQ Lukasz Majewski
2013-12-13 16:38 ` [PATCH v11 7/7] thermal:exynos:boost: Automatic enable/disable of BOOST feature (at Exynos4412) Lukasz Majewski
2013-12-19 14:50 ` Eduardo Valentin
2013-12-20 14:24 ` [PATCH v12 0/7] cpufreq:boost: CPU Boost mode support Lukasz Majewski
2013-12-20 14:24 ` [PATCH v12 1/7] cpufreq: Add boost frequency support in core Lukasz Majewski
2013-12-20 14:24 ` [PATCH v12 2/7] cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common boost solution Lukasz Majewski
2013-12-20 14:24 ` [PATCH v12 3/7] cpufreq:boost:Kconfig: Provide support for software managed BOOST Lukasz Majewski
2013-12-20 14:24 ` [PATCH v12 4/7] cpufreq:exynos:Extend Exynos cpufreq driver to support boost framework Lukasz Majewski
2013-12-20 14:24 ` [PATCH v12 5/7] Documentation:cpufreq:boost: Update BOOST documentation Lukasz Majewski
2013-12-20 14:24 ` [PATCH v12 6/7] cpufreq:exynos4x12: Change L0 driver data to CPUFREQ_BOOST_FREQ Lukasz Majewski
2013-12-20 14:24 ` [PATCH v12 7/7] thermal:exynos:boost: Automatic enable/disable of BOOST feature (at Exynos4412) Lukasz Majewski
2014-01-10 6:35 ` Zhang Rui
2014-01-07 6:58 ` [PATCH v12 0/7] cpufreq:boost: CPU Boost mode support Lukasz Majewski
2014-01-08 0:35 ` Rafael J. Wysocki
2014-01-09 7:19 ` Lukasz Majewski
2014-01-10 6:33 ` Zhang Rui
2014-01-16 9:40 ` Lukasz Majewski
2014-01-16 15:51 ` Rafael J. Wysocki
2014-01-16 15:56 ` Lukasz Majewski
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=20130606134903.5f69b8fb@amdc308.digital.local \
--to=l.majewski@samsung.com \
--cc=andre.przywara@linaro.org \
--cc=cpufreq@vger.kernel.org \
--cc=daniel.lezcano@linaro.org \
--cc=jonghwa3.lee@samsung.com \
--cc=l.majewski@majess.pl \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=myungjoo.ham@samsung.com \
--cc=rjw@sisk.pl \
--cc=vincent.guittot@linaro.org \
--cc=viresh.kumar@linaro.org \
/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;
as well as URLs for NNTP newsgroup(s).