Hi Andy,
I got following error in compilation of TILT-3.4 at
http://git.linaro.org/gitweb?p=landing-teams/working/ti/kernel.git;a=shortl…
Using /home/arm/work/kernel/linaro/linux-linaro-bitLITTLE-MP.git as
source for kernel
CHK include/generated/utsrelease.h
make[2]: `include/generated/mach-types.h' is up to date.
CC arch/arm/kernel/asm-offsets.s
In file included from
/home/arm/work/kernel/linaro/linux-linaro-bitLITTLE-MP.git/arch/arm/include/asm/barrier.h:41:0,
from
/home/arm/work/kernel/linaro/linux-linaro-bitLITTLE-MP.git/arch/arm/include/asm/domain.h:14,
from
/home/arm/work/kernel/linaro/linux-linaro-bitLITTLE-MP.git/arch/arm/include/asm/thread_info.h:28,
from
/home/arm/work/kernel/linaro/linux-linaro-bitLITTLE-MP.git/include/linux/thread_info.h:53,
from
/home/arm/work/kernel/linaro/linux-linaro-bitLITTLE-MP.git/include/linux/preempt.h:9,
from
/home/arm/work/kernel/linaro/linux-linaro-bitLITTLE-MP.git/include/linux/spinlock.h:50,
from
/home/arm/work/kernel/linaro/linux-linaro-bitLITTLE-MP.git/include/linux/seqlock.h:29,
from
/home/arm/work/kernel/linaro/linux-linaro-bitLITTLE-MP.git/include/linux/time.h:8,
from
/home/arm/work/kernel/linaro/linux-linaro-bitLITTLE-MP.git/include/linux/timex.h:56,
from
/home/arm/work/kernel/linaro/linux-linaro-bitLITTLE-MP.git/include/linux/sched.h:57,
from
/home/arm/work/kernel/linaro/linux-linaro-bitLITTLE-MP.git/arch/arm/kernel/asm-offsets.c:13:
arch/arm/include/generated/mach/barriers.h:1:33: fatal error:
mach-omap2/barriers.h: No such file or directory
compilation terminated.
make[2]: *** [arch/arm/kernel/asm-offsets.s] Error 1
I tried compiling it with omap4plus_defconfig. I want to use a stable
kernel for panda board,
which one should i always refer to?
--
viresh
Hi,
Compilation for omap2plus_defconfig is broken on current: linux-linaro
branch. [1]
Following is the compilation error:
/home/arm/work/kernel/linaro/linux-linaro-bitLITTLE-MP.git/arch/arm/kernel/sleep.S:
Assembler messages:
/home/arm/work/kernel/linaro/linux-linaro-bitLITTLE-MP.git/arch/arm/kernel/sleep.S:88:
Error: selected processor does not support ARM mode `bfc r0,#24,#8'
--
Viresh
[1]:
http://git.linaro.org/gitweb?p=kernel/linux-linaro-tracking.git;a=shortlog;…
Hi,
Just found that I can't view the lava result on android-build page for
some build.
but not all of them, I still can view some the information of some
builds before.
say the builds of
https://android-build.linaro.org/builds/~linaro-android/snowball-jb-gcc47-i….
For the build #28 even I click the " login to LAVA " link and logged
in, I still get this information like the NG.png attachment file.
But for the build #26, I can see the lava information listed. Like the
attached OK.png file
--
Thanks,
Yongqin Liu
---------------------------------------------------------------
#mailing list
linaro-android(a)lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-android
linaro-validation(a)lists.linaro.org
http://lists.linaro.org/pipermail/linaro-validation
> Prepare devfreq core framework to support devices which
> can idle. When device idleness is detected perhaps through
> runtime-pm, need some mechanism to suspend devfreq load
> monitoring and resume when device is back online. Present
> code continues monitoring unless device is removed from
> devfreq core.
>
> This patch introduces following updates,
>
> - move device load monitoring logic to ondemand governor as
> it is specific to ondemand.
We have this ondemand governor in the mainline devfreq. However,
we have (not upstreamed yet) governors with specific purpose (for
GPU or for a specific chip) with load monitoring logic. Although
we don't have them upstreamed yet, why don't you keep the monitoring
logic sharable by other governors. (From today, I'm not objecting to
have individual workqueue, but I still don't want to let each active
governor reimplement the same things.)
> - devfreq core interacts with governors via events to perform
> specific actions. These events include start/stop devfreq,
> and frequency limit changes outside devfreq. This sets ground
> for adding suspend/resume events.
event_handler with START/STOP/UPDATE seem fine.
However, init() and exit() should be different from START/STOP.
We do not need to do init and exit every time when we do runtime
suspend/resume.
> - use per device work instead of global work to monitor device
> load. This enables suspend/resume of device devfreq and
> reduces monitoring code complexity.
It's fine to have a delayed work struct per device.
However, please try to keep as many things/features in devfreq.c as
possible; i.e., reduce features and code size of governors. Because,
we will be supporting various types of devices with devfreq, there
will be various governors and I don't want them to have shared things
reimplemented. Dealing with the delayed work at devfreq.c and let
governors choose to use it (at its struct) or not should be fine.
In this patchset, the size of ondemand governor has been enlarged
too much for that purpose.
> - Force devfreq users to set min/max supported frequencies in
> device profile to help governors to predict target frequecy
> with in limits.
Is this really necessary?
>
> The devfreq apis are not modified and are kept intact.
The ABIs are not.
You can no longer do "# echo 0 > ABI_path" in order to deactivate.
Cheers!
MyungJoo
>
> Signed-off-by: Rajagopal Venkat <rajagopal.venkat(a)linaro.org>
> ---
ps. please make the patch a bit more readable. (please don't shuffle
the location of pre-existed functions)
> Devfreq returns governor predicted frequency as current
> frequency via sysfs interface. But device may not support
> all frequencies that governor predicts. As per the design
> its driver responsibility to maintain current frequency
> at which device is operating. So add a callback in device
> profile to fix this.
>
> Signed-off-by: Rajagopal Venkat <rajagopal.venkat(a)linaro.org>
We still need to support "intended frequency".
The "cur_freq" node is to show the intended frequency.
As told before, you need to make additional API and ABI for the
"actual frequency".
Cheers!
MyungJoo
> ---
> drivers/devfreq/devfreq.c | 14 ++++++++++++--
> include/linux/devfreq.h | 6 +++---
> 2 files changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
> index 375b5aa1..798e8ca 100644
> --- a/drivers/devfreq/devfreq.c
> +++ b/drivers/devfreq/devfreq.c
> @@ -176,7 +176,6 @@ struct devfreq *devfreq_add_device(struct device *dev,
> devfreq->dev.release = devfreq_dev_release;
> devfreq->profile = profile;
> devfreq->governor = governor;
> - devfreq->previous_freq = profile->initial_freq;
> devfreq->governor_data = data;
> devfreq->nb.notifier_call = devfreq_notifier_call;
> devfreq->min_freq = profile->min_freq;
> @@ -272,7 +271,18 @@ static ssize_t show_governor(struct device *dev,
> static ssize_t show_freq(struct device *dev,
> struct device_attribute *attr, char *buf)
> {
> - return sprintf(buf, "%lu\n", to_devfreq(dev)->previous_freq);
> + int ret;
> + unsigned long freq;
> + struct devfreq *devfreq = to_devfreq(dev);
> +
> + if (devfreq->profile->get_cur_freq) {
> + ret = devfreq->profile->get_cur_freq(devfreq->dev.parent,
> + &freq);
> + if (!ret)
> + return sprintf(buf, "%lu\n", freq);
> + }
> +
> + return sprintf(buf, "<unknown>");
> }
>
> static ssize_t store_min_freq(struct device *dev, struct device_attribute *attr,
> diff --git a/include/linux/devfreq.h b/include/linux/devfreq.h
> index 7c6517f..43f111f 100644
> --- a/include/linux/devfreq.h
> +++ b/include/linux/devfreq.h
> @@ -76,6 +76,8 @@ struct devfreq_dev_status {
> * explained above with "DEVFREQ_FLAG_*" macros.
> * @get_dev_status The device should provide the current performance
> * status to devfreq, which is used by governors.
> + * @get_cur_freq The device should provide the current frequency
> + * at which it is operating.
> * @exit An optional callback that is called when devfreq
> * is removing the devfreq object due to error or
> * from devfreq_remove_device() call. If the user
> @@ -91,6 +93,7 @@ struct devfreq_dev_profile {
> int (*target)(struct device *dev, unsigned long *freq, u32 flags);
> int (*get_dev_status)(struct device *dev,
> struct devfreq_dev_status *stat);
> + int (*get_cur_freq)(struct device *dev, unsigned long *freq);
> void (*exit)(struct device *dev);
> };
>
> @@ -119,7 +122,6 @@ struct devfreq_governor {
> * @nb notifier block used to notify devfreq object that it should
> * reevaluate operable frequencies. Devfreq users may use
> * devfreq.nb to the corresponding register notifier call chain.
> - * @previous_freq previously configured frequency value.
> * @governor_data Private data of the governor. The devfreq framework
> * does not touch this.
> * @min_freq Limit minimum frequency requested by user (0: none)
> @@ -142,8 +144,6 @@ struct devfreq {
> const struct devfreq_governor *governor;
> struct notifier_block nb;
>
> - unsigned long previous_freq;
> -
> void *governor_data; /* private data for governors */
>
> unsigned long min_freq;
> --
> 1.7.11.3
>
>
>
>
>
>
>
>
This patchset updates devfreq core to add support for devices
which can idle. When device idleness is detected perhaps
through runtime-pm, need some mechanism to suspend devfreq
load monitoring and resume when device is back online.
patch 1 adds core design changes mainly moving monitoring
logic to ondemand governor, introducing per device work
and events for core to governor communication.
patch 2 adds devfreq suspend and resume apis.
patch 3 does current frequency bug fix.
The existing devfreq apis are kept intact. Two new apis
devfreq_suspend_device() and devfreq_resume_device() are
added to support suspend/resume of device devfreq.
--
Rajagopal Venkat (3):
devfreq: core updates to support devices which can idle
devfreq: Add suspend and resume apis
devfreq: Add current freq callback in device profile
Documentation/ABI/testing/sysfs-class-devfreq | 33 +-
drivers/devfreq/devfreq.c | 448 ++++++--------------------
drivers/devfreq/governor.h | 6 +-
drivers/devfreq/governor_performance.c | 34 +-
drivers/devfreq/governor_powersave.c | 31 +-
drivers/devfreq/governor_simpleondemand.c | 231 +++++++++++--
drivers/devfreq/governor_userspace.c | 142 ++++----
include/linux/devfreq.h | 78 +++--
8 files changed, 467 insertions(+), 536 deletions(-)
--
1.7.11.3