Re: Can't build correct kernel for 13.07 linaro-ubuntu on pandaboard

2013-09-29 Thread Andy Green
On 30 September 2013 02:54, Chao Xu caesarxuc...@gmail.com wrote:
 Hi,

 I tried to build linaro kernel for pandaboard. I have tried everything what
 I can think of but the kernel still can't boot correctly. Any help will be
 appreciated. Here is what I did:
 1. I flash the 13.07 linaro-ubuntu-pandaboard image into the sd card
 (http://releases.linaro.org/13.07/ubuntu/panda). This image works fine.
 2. I clone the kernel source code from
 git://git.linaro.org/kernel/linux-linaro-stable.git.
 3. checkout the lsk 13.07 tag.
 4. copy the config file from original image (i.e.
 /boot/config-3.10.1.0-1-linaro-omap).

This can be trouble... if new, required config options that the kernel
was tested with are somehow not on by default, you'll be missing them
this way.

Better to look at omap2plus_defconfig (make ARCH=arm
omap2plus_defconfig ) from the new kernel, that's what people were
actually using.

 5. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- CFLAGS=-O
 LOADADDR=0x80008000 uImage
 The cross compiler on my machine is gcc-4.7-arm-linux-gnueabihf-base
 6. From pandaboard, I load the built uImage via scp.

 The problem I met:
 1. In most cases, the kernel can't boot correctly. And the terminal keeps
 printing hub 1-1:1.0: hub_port_status failed (err = -71).

The hub error doesn't sound too terrible but can't boot correctly
might not be good.

Because of the way TI did things there are dependencies in their boot.
 Originally you had to worry about the right X-loader (MLO) with a
compatible version of U-Boot which did the things that the particular
version of the kernel you had wanted.  Later they put X-loader into
U-Boot tree, so those at least should be updated together, but the
kernel still relies on the detail of what it expects to inherit from
U-Boot in terms of PM actions (state of IP unit power) and other
things.  Ie, maybe update your U-Boot.

They can get rid of this kind of issue by banning all unnecessary init
from the bootloaders and forcing the kernel to assert whatever states
it needs, but that proved impossible to coordinate / agree, although
they made big strides with the kernel owning clocks properly at least.

 2.Sometime, the kernel can finish booting. But the terminal prints for
 several times the aforementioned error message after booting. Plus, I don't
 have any module running, 'lsmod' shows nothing.

Well for the modules you need to copy them over to your rootfs.  I
usually do something like this

make ARCH=arm INSTALL_MOD_STRIP=1 modules_install INSTALL_MOD_PATH=`pwd`/staging

then cp -rp or scp or rsync or whatever ./staging/* to / on the remote
rootfs (it has /lib/modules/... in there).

-Andy

 Please help! Thank you.

 --
 Regards,
 Chao Xu

 ___
 linaro-dev mailing list
 linaro-dev@lists.linaro.org
 http://lists.linaro.org/mailman/listinfo/linaro-dev


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Can't build correct kernel for 13.07 linaro-ubuntu on pandaboard

2013-09-29 Thread Andy Green
On 30 September 2013 09:52, Chao Xu caesarxuc...@gmail.com wrote:
 Thank you Andy! I tried with omap2plus_defconfig and the kernel seemed to be
 working, no more hub 1-1:1.0: hub_port_status failed (err = -71) so far.

FWIW I don't think they are fatal errors for your boot anyway.  If it
was failing to boot it was probably something else.

 But I still don't understand why the config file copied from the /boot
 directory of a 13.07 linaro-ubuntu-pandaboard image doesn't work. I thought
 this was what linaro group used to compile the kernel. Could you explain a
 little more?

Maybe the root cause is elsewhere (U-Boot version?) and
omap2plus_defconfig simply disables the things that are broken by the
root cause on your setup.  So it only looks better.

 Another problem is the ethernet is still not working. Here is what I tried
 to debug this problem:
 1. 'ifup eth0' replies 'Error getting hardware address for eth0: No such
 device'.
 2. 'dmesg| grep eth' shows only this: usbcore: registered new interface
 driver cdc_ether. But on the stock linaro image, it shows a lot more:

Seems no eth0, you can check with ifconfig -a

 [2.447448] usbcore: registered new interface driver cdc_ether
 [4.287170] smsc95xx 1-1.1:1.0: eth0: register 'smsc95xx' at
 usb-ehci-omap.0-1.1, smsc95xx U
 SB 2.0 Ethernet, 0e:60:7e:2a:4e:01
 [   21.024139] ADDRCONF(NETDEV_UP): eth0: link is not ready
 [   22.556945] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
 [   22.557800] smsc95xx 1-1.1:1.0: eth0: link up, 100Mbps, full-duplex, lpa
 0xCDE1
 [   32.933746] eth0: no IPv6
 3. Since smsc95xx is the eth driver, so I tried dmesg|grep 'smsc95xx',  it
 shows:
 [1.830596] usbcore: registered new interface driver smsc95xx

Yeah the driver is in but no usb device was probed.

 4. I suspect it's still a usb problem, because 'lsusb' gives me 'unable to
 initialize libusb: -99.

 Could someone give me some suggestions?

You're using the U-Boot that worked on the Linaro image that works?
Linaro toolchain to build the kernel?

Same U-Boot environment pieces, whatever they are nowadays, boot.scr,
ini, txt etc

Same MLO file from the working image?

You copied your modules over as described?

What's your power supply like?

-Andy

 Thanks again.
 On Sun, Sep 29, 2013 at 7:21 PM, Andy Green andy.gr...@linaro.org wrote:

 On 30 September 2013 02:54, Chao Xu caesarxuc...@gmail.com wrote:
  Hi,
 
  I tried to build linaro kernel for pandaboard. I have tried everything
  what
  I can think of but the kernel still can't boot correctly. Any help will
  be
  appreciated. Here is what I did:
  1. I flash the 13.07 linaro-ubuntu-pandaboard image into the sd card
  (http://releases.linaro.org/13.07/ubuntu/panda). This image works fine.
  2. I clone the kernel source code from
  git://git.linaro.org/kernel/linux-linaro-stable.git.
  3. checkout the lsk 13.07 tag.
  4. copy the config file from original image (i.e.
  /boot/config-3.10.1.0-1-linaro-omap).

 This can be trouble... if new, required config options that the kernel
 was tested with are somehow not on by default, you'll be missing them
 this way.

 Better to look at omap2plus_defconfig (make ARCH=arm
 omap2plus_defconfig ) from the new kernel, that's what people were
 actually using.

  5. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- CFLAGS=-O
  LOADADDR=0x80008000 uImage
  The cross compiler on my machine is gcc-4.7-arm-linux-gnueabihf-base
  6. From pandaboard, I load the built uImage via scp.
 
  The problem I met:
  1. In most cases, the kernel can't boot correctly. And the terminal
  keeps
  printing hub 1-1:1.0: hub_port_status failed (err = -71).

 The hub error doesn't sound too terrible but can't boot correctly
 might not be good.

 Because of the way TI did things there are dependencies in their boot.
  Originally you had to worry about the right X-loader (MLO) with a
 compatible version of U-Boot which did the things that the particular
 version of the kernel you had wanted.  Later they put X-loader into
 U-Boot tree, so those at least should be updated together, but the
 kernel still relies on the detail of what it expects to inherit from
 U-Boot in terms of PM actions (state of IP unit power) and other
 things.  Ie, maybe update your U-Boot.

 They can get rid of this kind of issue by banning all unnecessary init
 from the bootloaders and forcing the kernel to assert whatever states
 it needs, but that proved impossible to coordinate / agree, although
 they made big strides with the kernel owning clocks properly at least.

  2.Sometime, the kernel can finish booting. But the terminal prints for
  several times the aforementioned error message after booting. Plus, I
  don't
  have any module running, 'lsmod' shows nothing.

 Well for the modules you need to copy them over to your rootfs.  I
 usually do something like this

 make ARCH=arm INSTALL_MOD_STRIP=1 modules_install
 INSTALL_MOD_PATH=`pwd`/staging

 then cp -rp or scp or rsync or whatever ./staging

Re: Does linux-linaro support kernel page size bigger than 4K?

2013-09-09 Thread Andy Green
On 10 September 2013 05:46, Subash Patel subas...@gmail.com wrote:
 Hi Xu, Qiang,

 I doubt if it has anything todo with linaro kernel. ARM linux code is
 programming the page sizes as 4K.

Steve Capper sent out some cool patches for Transparent Huge Pagetables

http://lists.linaro.org/pipermail/linaro-kernel/2013-August/006574.html

They applied fine to linux-linaro-core-tracking and seem to work.

If you want to change the whole kernel to hugepages, you have to
recook or meddle your rootfs with a library preload.  But those
patches just hide huge pages in linear allocations of smaller pages,
so nobody notices.

-Andy

 From my experience playing with the page tables, you will have to fiddle
 with the section size and
 page size programming in the ARM mmu initialization. Depending on kernel
 split, you store the page
 table pointers in TTBR0 and TTBR1, which point to 1MB sections each. The
 entries here are marked
 to point to 4k pages, You will have to change them to point to 64K. I don't
 know someone who has tried
 huge pages(64K) in public domain for v7 yet.

 Note: Theoretically it should be possible for the kernel to work with 4K
 pages, and user space to allocate
 64K pages. It is a messy change (as it involves changes to process
 management as well) Even I am interested
 to explore more on this. But tied up with something else at the moment :(

 Regards,
 Subash


 On Wed, Aug 28, 2013 at 12:05 AM, Xu, Qiang qian...@qti.qualcomm.com
 wrote:

 Hi Linaro



 I am a software engineer from Qualcomm. I want to know that if Linaro can
 change its memory page size in kernel ?



 As my CPU is arm-v7, it supports 4k/64k/1M/16M page size translation, but
 in my linux kernel whose version is 2.6.38, the page size is always 4K,



 Do the linux-linaro support different page size in kernel?






 ___
 linaro-dev mailing list
 linaro-dev@lists.linaro.org
 http://lists.linaro.org/mailman/listinfo/linaro-dev



 ___
 linaro-dev mailing list
 linaro-dev@lists.linaro.org
 http://lists.linaro.org/mailman/listinfo/linaro-dev


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Panda, Android Bluetooth

2013-08-18 Thread Andy Green
On 18 August 2013 14:41, Fathi Boudra fathi.bou...@linaro.org wrote:
 Hey Mike,

 On 17 August 2013 20:07, Mike Turquette mturque...@linaro.org wrote:
 On Thu, Aug 15, 2013 at 6:02 PM, Andy Green andy.gr...@linaro.org wrote:
 On 16 August 2013 08:22, Mike Turquette mturque...@linaro.org wrote:
 Hi all,

 I'm interested in looking at some Bluetooth stuff on my OMAP 4460
 Panda ES. Looking at the bug reports I don't see any Jelly Bean
 releases that have BT working properly on Panda. Is this correct?

 Can you please point me to a release where BT and display/hdmi are
 working for Panda? It's OK if it is ICS.

 I'm OK starting with binaries but I would much prefer to be able to
 build from source and reproduce any known-good bins. I have already
 built JB from the latest tip as well as the 13.07 manifest (display is
 working fine but BT doesn't work, bugs already filed). I tried the
 12.07 Panda LEB (which I think was the last ICS release?) but the
 binaries supplied did not have display working even after running the
 install-binaries-4.0.4.sh script.

 Nicolas Dechesne may be able to help more directly, but mainline BT
 was never workable reliably on Panda.

 That's disappointing since an article on omappedia references the
 Linaro release and says, Note: Wifi, bluetooth, YouTube, jpeg, video
 playback (both .mp4 and .3gp), and audio playback (both .mp3 and .aac)
 all have been verified as working in this release. You can see it
 here:

 http://www.omappedia.com/wiki/Android_Panda_Build_Source#Building_from_Linaro

 What about asking Linaro guys that actually produce this build?

 Looking at our test results, the bluetooth test failed in 12.07 release.
 A bug has been opened at that time:
 https://bugs.launchpad.net/linaro-android/+bug/987765

 Adding Vishal in CC, who's probably know the bluetooth status in
 Linaro Android builds better than me.

Mike's saying even video didn't work when he tried that.

Reading that bug it sounds like a firmware issue in the image.  I say
in the bug it's working on kernel side at that time.

However like the video problem, it sort of hinges on the meaning of working.

HDMI and DVI on Panda have worked to some extent for a long while.
But they've never worked properly dual-head and in fact because they
share a PLL for the pixel clock, they'll never work outside of special
conditions like same monitor and resolution.  Last I saw of it there's
a behaviour in HDMI hotlug detect handling in the driver that means
some monitors won't be seen as plugged, because they delay sending hpd
by up to 1s (I have one of these monitors).  The code in the Panda
release was forward-ported from 3.0 DSS stack on omapzoom (since
that's the only thing TI had on offer with working Android SGX) and
that deviates hugely from mainline DSS, so any improvements in this
area didn't get transplanted.

Bluetooth is similar on mainline basis, it was able to work for a
while but when hammered it fell over.

-Andy

 The p-android stuff on omapzoom was meant to have numerous patches
 that actually made it work.  At one point we talked to some guys from
 TI and got some patches, however they were patches against
 p-android-3.0 that not only did not apply on mainline but were 100%
 patching code that anyway did not exist in mainline, so we got
 literally nowhere with it.

 The p-android stuff are busy history trees, so it is very hard to
 extract a coherent series that fixes bluetooth.  Even to do direct
 diffs at file level isn't easy since the files have all moved around
 and the 3.0 one we know worked is radically different than current
 mainline anyway.  Some of the issues were down to PM related stuff and
 the p-android arrangements for that bear no relationship to mainline.

 Anyway Nicolas may know more, but the best bet may be to find a TI
 Alumni who worked on it and get the skinny.

 Nicolas, any inputs?

 Thanks,
 Mike


 -Andy

 Thanks,
 Mike

 Cheers,
 --
 Fathi Boudra
 Builds and Baselines Manager | Release Manager
 Linaro.org | Open source software for ARM SoCs

 ___
 linaro-dev mailing list
 linaro-dev@lists.linaro.org
 http://lists.linaro.org/mailman/listinfo/linaro-dev

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Panda, Android Bluetooth

2013-08-15 Thread Andy Green
On 16 August 2013 08:22, Mike Turquette mturque...@linaro.org wrote:
 Hi all,

 I'm interested in looking at some Bluetooth stuff on my OMAP 4460
 Panda ES. Looking at the bug reports I don't see any Jelly Bean
 releases that have BT working properly on Panda. Is this correct?

 Can you please point me to a release where BT and display/hdmi are
 working for Panda? It's OK if it is ICS.

 I'm OK starting with binaries but I would much prefer to be able to
 build from source and reproduce any known-good bins. I have already
 built JB from the latest tip as well as the 13.07 manifest (display is
 working fine but BT doesn't work, bugs already filed). I tried the
 12.07 Panda LEB (which I think was the last ICS release?) but the
 binaries supplied did not have display working even after running the
 install-binaries-4.0.4.sh script.

Nicolas Dechesne may be able to help more directly, but mainline BT
was never workable reliably on Panda.

The p-android stuff on omapzoom was meant to have numerous patches
that actually made it work.  At one point we talked to some guys from
TI and got some patches, however they were patches against
p-android-3.0 that not only did not apply on mainline but were 100%
patching code that anyway did not exist in mainline, so we got
literally nowhere with it.

The p-android stuff are busy history trees, so it is very hard to
extract a coherent series that fixes bluetooth.  Even to do direct
diffs at file level isn't easy since the files have all moved around
and the 3.0 one we know worked is radically different than current
mainline anyway.  Some of the issues were down to PM related stuff and
the p-android arrangements for that bear no relationship to mainline.

Anyway Nicolas may know more, but the best bet may be to find a TI
Alumni who worked on it and get the skinny.

-Andy

 Thanks,
 Mike

 ___
 linaro-dev mailing list
 linaro-dev@lists.linaro.org
 http://lists.linaro.org/mailman/listinfo/linaro-dev

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [PATCH 2 0/2] RFC: introduce arch_early_time for early boot timestamps

2013-08-13 Thread Andy Green
On 14 August 2013 03:08, Deepak Saxena dsax...@linaro.org wrote:
 Idea is good though one note on this is that the DT binding is very
 Linux-specific and there is a move away from OS-specific bindings.

I see... yes I read rumblings about this.  I have an idea how to
rearrange the DT bits to solve that objection I think.

 You'll have to repost to a wider audience including the new DT binding
 maintainers to get their input. You also need to add the binding to
 Documentation/devicetree/bindings regardless of what the final binding
 is.

Yes, will do.  Thanks for the input.

-Andy

 ~Deepak

 On 9 August 2013 07:34, Andy Green andy.gr...@linaro.org wrote:
 The following patches extend accurate time much further back into
 the boot process by adding an optional arch_early_time source that
 starts counting about 1.75ms after the MMU is enabled.

 This exposes currently hidden kernel boot times exceeding 340ms for a 2GByte
 dual A9.

 Currently only Arm globaltimer is supported as the early time source.

 Where the globaltimer is and how to map it is configured by
 Device Tree as explained in the second patch.

 To get monotonic time in the kernel starting from before the normal time
 source can be initialized, the early time source offset is allowed to be
 added to scheduler clock time in the first patch.

 ---

 Andy Green (2):
   scheduler: time: allow arch-specific time offset function
   arm: time: add globaltimer-based arch_early_time


  arch/arm/Kconfig   |   16 ++
  arch/arm/Kconfig.debug |   10 
  arch/arm/boot/dts/mb8ac0300eb.dts  |   10 +++-
  arch/arm/configs/fujitsu_defconfig |2 +
  arch/arm/include/asm/memory.h  |8 +++
  arch/arm/kernel/devtree.c  |1
  arch/arm/kernel/setup.c|   50 ++
  arch/arm/kernel/time.c |  101 
 
  arch/arm/mach-mb8ac0300/Kconfig|3 +
  arch/arm/mm/mmu.c  |   49 +
  include/linux/time.h   |7 ++
  kernel/sched/clock.c   |   12 ++--
  mm/Kconfig |2 -
  13 files changed, 263 insertions(+), 8 deletions(-)

 --

 ___
 linaro-dev mailing list
 linaro-dev@lists.linaro.org
 http://lists.linaro.org/mailman/listinfo/linaro-dev



 --
 Deepak Saxena - Kernel Working Group Lead
 Linaro.org | Open source software for ARM SoCs
 Follow Linaro: http://www.facebook.com/pages/Linaro

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[PATCH 2 2/2] arm: time: add globaltimer-based arch_early_time

2013-08-09 Thread Andy Green
 : 0x80284000 - 0x802a0cc0   ( 116 kB)
[0.336248].bss : 0x802a0cc0 - 0x802ddab4   ( 244 kB)
[0.336493] Preemptible hierarchical RCU implementation.
[0.336506]  Dump stacks of tasks blocking RCU-preempt GP.
[0.336518]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[0.336555] NR_IRQS:16 nr_irqs:16 16
[0.344257] sched_clock: 32 bits at 41MHz, resolution 24ns, wraps every 
103727ms
[0.344788] Console: colour dummy device 80x30
[0.344985] console [tty0] enabled
[0.345045] Calibrating delay loop... 1318.91 BogoMIPS (lpj=6594560)

when normal time starts, it is offset by the corresponding early time, so the 
logs are
monotonic and consistent in time.

To use enable

CONFIG_EARLY_TIME_ARM_GLOBALTIMER=y

A Device Tree stanza like this should be added to the top level description.
The first reg / size pair is the physical address and the second pair the
virtual address.

early-time {
compatible = arm,globaltimer;
reg = 0xf810 0x1000, 0xfd10 0x1000;
freq = 16550;
zero = 1;
cpumask = 3;
};

Signed-off-by: Andy Green andy.gr...@linaro.org
---
 arch/arm/Kconfig  |4 +
 arch/arm/Kconfig.debug|   10 
 arch/arm/boot/dts/mb8ac0300eb.dts |8 +++
 arch/arm/kernel/time.c|  101 +
 arch/arm/mm/mmu.c |   49 ++
 5 files changed, 172 insertions(+)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index f3f4bcf..a3b1d75 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -2311,6 +2311,10 @@ config ARM_CPU_SUSPEND
 
 endmenu
 
+config HAS_ARCH_EARLY_TIME
+   bool
+   default n
+
 source net/Kconfig
 
 source drivers/Kconfig
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index de41088..10b4249 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -900,4 +900,14 @@ config PID_IN_CONTEXTIDR
  additional instructions during context switch. Say Y here only if you
  are planning to use hardware trace tools with this kernel.
 
+config EARLY_TIME_ARM_GLOBALTIMER
+   bool Enable early Arm globaltimer support
+   default n
+   select HAS_ARCH_EARLY_TIME
+   help
+ If you have a spare globaltimer in your SoC, you can use it to
+ get accurate log timings starting from very early in boot and
+ before the very first log entry.
+ You'll need to speify some additional gnarly details if enabled.
+
 endmenu
diff --git a/arch/arm/boot/dts/mb8ac0300eb.dts 
b/arch/arm/boot/dts/mb8ac0300eb.dts
index 76878d6..875649b 100644
--- a/arch/arm/boot/dts/mb8ac0300eb.dts
+++ b/arch/arm/boot/dts/mb8ac0300eb.dts
@@ -29,6 +29,14 @@
linux,initrd-end = 0;
};
 
+   early-time {
+   compatible = arm,globaltimer;
+   reg = 0xf810 0x1000, 0xfd10 0x1000;
+   freq = 16550;
+   zero = 1;
+   cpumask = 3;
+   };
+
alsa: mb8ac0300_adau1361 {
compatible = fujitsu,mb8ac0300_adau1361;
channel = 0;
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c
index 98aee32..37b570f 100644
--- a/arch/arm/kernel/time.c
+++ b/arch/arm/kernel/time.c
@@ -25,11 +25,15 @@
 #include linux/clocksource.h
 #include linux/irq.h
 #include linux/sched_clock.h
+#include linux/of_fdt.h
 
 #include asm/thread_info.h
 #include asm/stacktrace.h
 #include asm/mach/arch.h
 #include asm/mach/time.h
+#include asm/mach/map.h
+#include asm/io.h
+#include asm/div64.h
 
 #if defined(CONFIG_RTC_DRV_CMOS) || defined(CONFIG_RTC_DRV_CMOS_MODULE) || \
 defined(CONFIG_NVRAM) || defined(CONFIG_NVRAM_MODULE)
@@ -121,3 +125,100 @@ void __init time_init(void)
else
clocksource_of_init();
 }
+
+#ifdef CONFIG_EARLY_TIME_ARM_GLOBALTIMER
+
+static void __iomem *etagt_base;
+static u32 etagt_ps;
+
+#define GLOBALTIMER_CPU_ACCESS_OFS 0x54
+#define GLOBALTIMER_LOW_OFS 0x200
+#define GLOBALTIMER_HIGH_OFS 0x204
+#define GLOBALTIMER_ENABLE_OFS 0x208
+
+void arch_early_time_init(unsigned long node)
+{
+   const u32 *reg;
+   const u32 *freq;
+   const u32 *zero;
+   const u32 *cpumask;
+   unsigned long l;
+   u64 ps = 10240ull;
+
+   /* already checked by caller */
+   reg = of_get_flat_dt_prop(node, reg, l);
+   etagt_base = (void __iomem *)be32_to_cpu(reg[2]);
+
+   freq = of_get_flat_dt_prop(node, freq, l);
+   if (!freq || l != 4) {
+   pr_err(%s NULL freq or len %lu\n, __func__, l);
+   return;
+   }
+
+   zero = of_get_flat_dt_prop(node, zero, l);
+   if (!zero)
+   return;
+
+   cpumask = of_get_flat_dt_prop(node, cpumask, l);
+   if (!cpumask)
+   return;
+
+   do_div(ps, be32_to_cpu(*freq));
+   etagt_ps = (u32)ps;
+
+   __raw_writel(be32_to_cpu(*cpumask),
+   etagt_base

[PATCH 2 0/2] RFC: introduce arch_early_time for early boot timestamps

2013-08-09 Thread Andy Green
The following patches extend accurate time much further back into
the boot process by adding an optional arch_early_time source that
starts counting about 1.75ms after the MMU is enabled.

This exposes currently hidden kernel boot times exceeding 340ms for a 2GByte
dual A9.

Currently only Arm globaltimer is supported as the early time source.

Where the globaltimer is and how to map it is configured by
Device Tree as explained in the second patch.

To get monotonic time in the kernel starting from before the normal time
source can be initialized, the early time source offset is allowed to be
added to scheduler clock time in the first patch.

---

Andy Green (2):
  scheduler: time: allow arch-specific time offset function
  arm: time: add globaltimer-based arch_early_time


 arch/arm/Kconfig   |   16 ++
 arch/arm/Kconfig.debug |   10 
 arch/arm/boot/dts/mb8ac0300eb.dts  |   10 +++-
 arch/arm/configs/fujitsu_defconfig |2 +
 arch/arm/include/asm/memory.h  |8 +++
 arch/arm/kernel/devtree.c  |1 
 arch/arm/kernel/setup.c|   50 ++
 arch/arm/kernel/time.c |  101 
 arch/arm/mach-mb8ac0300/Kconfig|3 +
 arch/arm/mm/mmu.c  |   49 +
 include/linux/time.h   |7 ++
 kernel/sched/clock.c   |   12 ++--
 mm/Kconfig |2 -
 13 files changed, 263 insertions(+), 8 deletions(-)

-- 

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[PATCH 2 1/2] scheduler: time: allow arch-specific time offset function

2013-08-09 Thread Andy Green
This introduces an optional arch_early_time() which by default doesn't exist and
doesn't cause any extra code to be generated.

If it is configured and declared though, it can be used in an architecture or
platform-specific way to provide time during early boot.

After early boot when normal time is available, it can stop counting and just
add its offset, so time in the boot is monotonic.

Signed-off-by: Andy Green andy.gr...@linaro.org
---
 include/linux/time.h |7 +++
 kernel/sched/clock.c |   12 ++--
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/include/linux/time.h b/include/linux/time.h
index d5d229b..06fbb61 100644
--- a/include/linux/time.h
+++ b/include/linux/time.h
@@ -181,6 +181,13 @@ extern s32 timekeeping_get_tai_offset(void);
 extern void timekeeping_set_tai_offset(s32 tai_offset);
 extern void timekeeping_clocktai(struct timespec *ts);
 
+#ifdef CONFIG_HAS_ARCH_EARLY_TIME
+extern void arch_early_time_init(unsigned long node);
+extern u64 arch_early_time(u64 normal);
+#else
+#define arch_early_time(_x) ((u64)_x)
+#endif
+
 struct tms;
 extern void do_sys_times(struct tms *);
 
diff --git a/kernel/sched/clock.c b/kernel/sched/clock.c
index c3ae144..04b0490 100644
--- a/kernel/sched/clock.c
+++ b/kernel/sched/clock.c
@@ -245,10 +245,10 @@ u64 sched_clock_cpu(int cpu)
WARN_ON_ONCE(!irqs_disabled());
 
if (sched_clock_stable)
-   return sched_clock();
+   return arch_early_time(sched_clock());
 
if (unlikely(!sched_clock_running))
-   return 0ull;
+   return arch_early_time(0);
 
scd = cpu_sdc(cpu);
 
@@ -257,7 +257,7 @@ u64 sched_clock_cpu(int cpu)
else
clock = sched_clock_local(scd);
 
-   return clock;
+   return arch_early_time(clock);
 }
 
 void sched_clock_tick(void)
@@ -339,7 +339,7 @@ u64 local_clock(void)
unsigned long flags;
 
local_irq_save(flags);
-   clock = sched_clock_cpu(smp_processor_id());
+   clock = arch_early_time(sched_clock_cpu(smp_processor_id()));
local_irq_restore(flags);
 
return clock;
@@ -355,9 +355,9 @@ void sched_clock_init(void)
 u64 sched_clock_cpu(int cpu)
 {
if (unlikely(!sched_clock_running))
-   return 0;
+   return arch_early_time(0);
 
-   return sched_clock();
+   return arch_early_time(sched_clock());
 }
 
 u64 cpu_clock(int cpu)


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [PATCH 0/2] RFC: introduce arch_early_time for early boot timestamps

2013-08-08 Thread Andy Green
On 8 August 2013 17:35, Peter Maydell peter.mayd...@linaro.org wrote:
 On 8 August 2013 03:44, Andy Green andy.gr...@linaro.org wrote:
 These patches give accurate, monotonic timestamps from the very first log
 entry allowing insight into where the time is going during the whole of
 the boot process.

 It's a debug feature like DEBUG_LL, it does not cooperate with
 ARCH_MULTIPLATFORM (it works with such a kernel though) but can only be 
 enabled
 for a single platform at compile-time.

 I think this kind of only-one-platform compile-time-set feature
 is definitely going in the wrong direction, even for a debug
 feature. It's bad enough that DEBUG_LL works like that.

Yes it's doing the same thing as DEBUG_LL.  DEBUG_LL hides things in a
per-platform assembler file in addition to config.

 Can't you put the relevant information into the device tree
 so that it works on multiplatform kernels? That's the way
 the kernel's chosen to store its this is the config for
 this platform data, after all...

I assumed if it could be done, DEBUG_LL would be doing it.

It's starting time in assembler before the MMU is switched on.  I
don't think there's any existing code for walking the dtb at that
time.

Maybe it can start time a bit later after MMU and use the early dtb
walking bits, I'll take a look but it's not a normal situation and may
not have a normal solution.

-Andy

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [PATCH 0/2] RFC: introduce arch_early_time for early boot timestamps

2013-08-08 Thread Andy Green
On 8 August 2013 18:50, Peter Maydell peter.mayd...@linaro.org wrote:
 On 8 August 2013 11:23, Andy Green andy.gr...@linaro.org wrote:
 On 8 August 2013 17:35, Peter Maydell peter.mayd...@linaro.org wrote
 Can't you put the relevant information into the device tree
 so that it works on multiplatform kernels? That's the way
 the kernel's chosen to store its this is the config for
 this platform data, after all...

 I assumed if it could be done, DEBUG_LL would be doing it.

 I think DEBUG_LL should also be doing it. The virtualization
 team is going to be looking into this, because we really don't
 want to have lots of people trying to start VMs and coming
 back with I get no output bug reports :-)

Well good luck it looks like a bigger job.

I can see how to get it from the flat device tree by adding properties
to chosen { } and riding on early_init_dt_scan_chosen() easily enough.
 From the results I have already I know on this platform that's ~500us
after where we set it up at the moment, which is not really hurting.
So I'll give that a go, thanks for the advice.

-Andy

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[PATCH 2/2] arm: time: add globaltimer-based arch_early_time

2013-08-07 Thread Andy Green
 init, 236K bss, 71044K reserved, 0K highmem)
[0.040750] Virtual kernel memory layout:
[0.040750] vector  : 0x - 0x1000   (   4 kB)
[0.040750] fixmap  : 0xfff0 - 0xfffe   ( 896 kB)
[0.040750] vmalloc : 0x9080 - 0xff00   (1768 MB)
[0.040750] lowmem  : 0x8000 - 0x9000   ( 256 MB)
[0.040750] pkmap   : 0x7fe0 - 0x8000   (   2 MB)
[0.040750] modules : 0x7f80 - 0x7fe0   (   6 MB)
[0.040750]   .text : 0x80008000 - 0x8026cb28   (2451 kB)
[0.040750]   .init : 0x8026d000 - 0x80287c80   ( 108 kB)
[0.040750]   .data : 0x80288000 - 0x802a4ca0   ( 116 kB)
[0.040750].bss : 0x802a4ca0 - 0x802dff74   ( 237 kB)
[0.040997] Preemptible hierarchical RCU implementation.
[0.041010]  Dump stacks of tasks blocking RCU-preempt GP.
[0.041022]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[0.041059] NR_IRQS:16 nr_irqs:16 16
[0.048966] sched_clock: 32 bits at 41MHz, resolution 24ns, wraps every 
103727ms
[0.049495] Console: colour dummy device 80x30
[0.049688] console [tty0] enabled
[0.050483] Calibrating delay loop... 1318.91 BogoMIPS (lpj=6594560)
[0.138981] pid_max: default: 32768 minimum: 301
...

when normal time starts, it is offset by the corresponding early time, so the 
logs are
monotonic and consistent in time.

Like DEBUG_LL it's not compatible with ARCH_MULTIPLATFORM and not designed
to be on by default, it's a debugging aid for studying where the real time
is going during early kernel boot.

If you have a globaltimer on your SoC, to use it set
CONFIG_EARLY_TIME_ARM_GLOBALTIMER=y and ..._PHYS to the base address of the
SoC region that contains the globaltimer at +0x200.

..._VIRT needs to be set to somewhere in the static virtual mapping region
where it won't step on anything: if you already have a static virtual mapping
for this area you can re-use the static mapping virtual address here.

..._FREQ needs to be the clock rate of the globaltimer clock in Hz.

Normally you want to enable ..._ZERO, however it's configurable because you
may also start the globaltimer in your bootloader, which will let you measure
the total time from that to events in the kernel boot flow.

For example:

CONFIG_EARLY_TIME_ARM_GLOBALTIMER=y
CONFIG_EARLY_TIME_ARM_GLOBALTIMER_ZERO=y
CONFIG_EARLY_TIME_ARM_GLOBALTIMER_PHYS=0xf810
CONFIG_EARLY_TIME_ARM_GLOBALTIMER_VIRT=0xfd10
CONFIG_EARLY_TIME_ARM_GLOBALTIMER_FREQ=16550

Signed-off-by: Andy Green andy.gr...@linaro.org
---
 arch/arm/Kconfig   |4 +++
 arch/arm/Kconfig.debug |   35 ++
 arch/arm/kernel/head.S |   65 
 arch/arm/kernel/time.c |   41 ++
 4 files changed, 145 insertions(+)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index f3f4bcf..a3b1d75 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -2311,6 +2311,10 @@ config ARM_CPU_SUSPEND
 
 endmenu
 
+config HAS_ARCH_EARLY_TIME
+   bool
+   default n
+
 source net/Kconfig
 
 source drivers/Kconfig
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index de41088..e3a6570 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -900,4 +900,39 @@ config PID_IN_CONTEXTIDR
  additional instructions during context switch. Say Y here only if you
  are planning to use hardware trace tools with this kernel.
 
+config EARLY_TIME_ARM_GLOBALTIMER
+   bool Enable early Arm globaltimer support
+   default n
+   select HAS_ARCH_EARLY_TIME
+   help
+ If you have a spare globaltimer in your SoC, you can use it to
+ get accurate log timings starting from very early in boot and
+ before the very first log entry.
+ You'll need to speify some additional gnarly details if enabled.
+
+config EARLY_TIME_ARM_GLOBALTIMER_ZERO
+   bool zeroing the globaltimer early in boot
+   depends on EARLY_TIME_ARM_GLOBALTIMER
+   default y
+   help
+ If you started the globaltimer in your bootloader, you can disable
+ this to stop the kernel code zeroing the timer.  Then your logs
+ will reflect time from the point it was zeroed in the bootloader.
+ But normally, you want to see time from very early in kernel boot.
+
+config EARLY_TIME_ARM_GLOBALTIMER_PHYS
+   hex Physical address of your globaltimer
+   depends on EARLY_TIME_ARM_GLOBALTIMER
+
+config EARLY_TIME_ARM_GLOBALTIMER_VIRT
+   hex Virtual mapping address of your globaltimer
+   depends on EARLY_TIME_ARM_GLOBALTIMER
+   help
+ This shoud match a static mapping so the timer can be used
+ seamlessly after the static mappings are set up
+
+config EARLY_TIME_ARM_GLOBALTIMER_FREQ
+   int Frequency of your globaltimer in Hz
+   depends on EARLY_TIME_ARM_GLOBALTIMER
+
 endmenu
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index

[PATCH 1/2] scheduler: time: allow arch-specific time offset function

2013-08-07 Thread Andy Green
This introduces an optional arch_early_time() which by default doesn't exist and
doesn't cause any extra code to be generated.

If it is configured and declared though, it can be used in an architecture or
platform-specific way to provide time during early boot.

After early boot when normal time is available, it can stop counting and just
add its offset, so time in the boot is monotonic.

Signed-off-by: Andy Green andy.gr...@linaro.org
---
 include/linux/time.h |6 ++
 kernel/sched/clock.c |   12 ++--
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/include/linux/time.h b/include/linux/time.h
index d5d229b..57dc58e 100644
--- a/include/linux/time.h
+++ b/include/linux/time.h
@@ -181,6 +181,12 @@ extern s32 timekeeping_get_tai_offset(void);
 extern void timekeeping_set_tai_offset(s32 tai_offset);
 extern void timekeeping_clocktai(struct timespec *ts);
 
+#ifdef CONFIG_HAS_ARCH_EARLY_TIME
+extern u64 arch_early_time(u64 normal);
+#else
+#define arch_early_time(_x) ((u64)_x)
+#endif
+
 struct tms;
 extern void do_sys_times(struct tms *);
 
diff --git a/kernel/sched/clock.c b/kernel/sched/clock.c
index c3ae144..04b0490 100644
--- a/kernel/sched/clock.c
+++ b/kernel/sched/clock.c
@@ -245,10 +245,10 @@ u64 sched_clock_cpu(int cpu)
WARN_ON_ONCE(!irqs_disabled());
 
if (sched_clock_stable)
-   return sched_clock();
+   return arch_early_time(sched_clock());
 
if (unlikely(!sched_clock_running))
-   return 0ull;
+   return arch_early_time(0);
 
scd = cpu_sdc(cpu);
 
@@ -257,7 +257,7 @@ u64 sched_clock_cpu(int cpu)
else
clock = sched_clock_local(scd);
 
-   return clock;
+   return arch_early_time(clock);
 }
 
 void sched_clock_tick(void)
@@ -339,7 +339,7 @@ u64 local_clock(void)
unsigned long flags;
 
local_irq_save(flags);
-   clock = sched_clock_cpu(smp_processor_id());
+   clock = arch_early_time(sched_clock_cpu(smp_processor_id()));
local_irq_restore(flags);
 
return clock;
@@ -355,9 +355,9 @@ void sched_clock_init(void)
 u64 sched_clock_cpu(int cpu)
 {
if (unlikely(!sched_clock_running))
-   return 0;
+   return arch_early_time(0);
 
-   return sched_clock();
+   return arch_early_time(sched_clock());
 }
 
 u64 cpu_clock(int cpu)


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[PATCH 0/2] RFC: introduce arch_early_time for early boot timestamps

2013-08-07 Thread Andy Green
The following patches introduce a debug feature, accurate timestamps
on all kernel logs during boot.

At the moment until time is set up in the kernel, all logs are timestamped
[0.00] giving the impression these early boot activities have no duration.
That's far from the case.

These patches give accurate, monotonic timestamps from the very first log
entry allowing insight into where the time is going during the whole of
the boot process.

It's a debug feature like DEBUG_LL, it does not cooperate with
ARCH_MULTIPLATFORM (it works with such a kernel though) but can only be enabled
for a single platform at compile-time.

To use it, you need an ARM SoC with a globaltimer, which is very common now.
Even if the globaltimer is used by the kernel, we can use it in early boot
and stop using it as soon as a normal time source is set up, so there's no
conflict.

There are more details on how to use it and examples of the results
in the second patch.

---

Andy Green (2):
  scheduler: time: allow arch-specific time offset function
  arm: time: add globaltimer-based arch_early_time


 arch/arm/Kconfig   |4 +++
 arch/arm/Kconfig.debug |   35 ++
 arch/arm/kernel/head.S |   65 
 arch/arm/kernel/time.c |   41 ++
 include/linux/time.h   |6 
 kernel/sched/clock.c   |   12 -
 6 files changed, 157 insertions(+), 6 deletions(-)

-- 

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: LSK getting started

2013-08-06 Thread Andy Green
On 6 August 2013 20:47, Mark Brown broo...@kernel.org wrote:
 On Tue, Aug 06, 2013 at 08:24:52AM +0800, Andy Green wrote:

 I went through and split out the fixes after examining each one.

 Please submit things normally - attachments are non-standard and
 difficult to work with (both from the point of view of applying and from
 the point of view of workflow) and if you don't mention them they're not
 always terribly visible either.  I didn't actually notice there was
 anything here first time around...

I wonder why Google has an attachment button.

 If you do send attachments keep them as text/plain so that things like
 quoting in replies work.

Bad google.

 4) warning-elimination: ata: ata_hpa_resize default assignment

 Issue is upstream but I can't reproduce original compiler warning

 If the compiler figures it out we can probably drop this then.  If it
 is still needed then it should be being submitted upstream.

Yes it's strange though I did not have a stroke and start editing code
randomly, this was generating an error in the recent past.

 6) warning-elimination: nobody uses cci_pmu_destroy

 Presumably coming from the CCI stuff Tixy pulled in

 I'll apply this but please do send it to the ARM LT, we should be fixing
 this stuff in linux-linaro too.

Tixy's on the list and hopefully able to process these newfangled
attachments with his steampunk email client.

 7) warning-elimination: regmap: cast pointer arg from int

 This seems to be a genuine issue of passing an int to a function
 wanting a const void *.  However I can't reproduce the warning.

 This looks like you had a compiler bug or were carrying some other
 breakage; val is a pointer so we're just doing pointer arithmetic here,
 there's no casting needed and if there were the cast you're adding
 should be on val not on the final result.

At the time it generated an warning it silenced it.

I can see it's reasonable to ignore it when it isn't any longer, so fair enough.

I have not updated my toolchain since March, so whatever changed is in
the larger set of code, eg, headers, there's definitely something
curious about the fixes that still apply but no longer genenrate the
warning that got them fixed when the fix is removed.

I noticed on 3.11-rc3 there's a make option W=? that I didn't see
before, don't know when it was introduced.  Maybe there has been some
fiddling with gcc commandline at make level that impacts what's
reported.  As I say the toolchain is no different only thing that
changed is the code as a whole.

 8) warning-elimination: usb: dwc3

 This only made problems if you have CONFIG_PM but not CONFIG_SUSPEND,
 dunno if people care or not.

 This should certainly be addressed upstream, please submit it.

 1 4, and 8 I doubt anyone will buy upstream, but you should still
 consider 1.  4 can't be demonstrated to be a problem right now
 (although it has been...)  8 we turned on SUSPEND ourselves since it
 was a problem.

 Please use descriptive names for things rather than just numbers, it
 makes everything more legible.  Except for the THUMB thing I don't see
 why any of these shouldn't be upstream - what makes you believe that
 there would be a problem?

Hm you know the dynamic of people submitting things for your critique
is not the only conversational mode that's possible, has that crossed
your mind?

-Andy

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: LSK getting started

2013-08-06 Thread Andy Green
On Aug 6, 2013 11:06 PM, Jon Medhurst (Tixy) t...@linaro.org wrote:

 On Tue, 2013-08-06 at 21:12 +0800, Andy Green wrote:
  On 6 August 2013 20:47, Mark Brown broo...@kernel.org wrote:
   On Tue, Aug 06, 2013 at 08:24:52AM +0800, Andy Green wrote:

   6) warning-elimination: nobody uses cci_pmu_destroy
  
   Presumably coming from the CCI stuff Tixy pulled in
  
   I'll apply this but please do send it to the ARM LT, we should be
fixing
   this stuff in linux-linaro too.
 
  Tixy's on the list and hopefully able to process these newfangled
  attachments with his steampunk email client.

 I'd mostly stopped reading this thread but somehow managed to notice
 this. A proper mailed patch to the list, or a quick mail to me would
 have been more obvious ;-) I went back to the the original mail and

Yes fair enough.  I can just see the mail telling me to post them on
linaro-kernel though.

 scrolled down to the bottom to find the attachments in my steampunk
 email client, and I'll add that to my CCI topic branch.

Thanks.

 The PMU support is a Frankenstein creation cobbled together from
 previous patches and intended to keep CCI support in Gator working.
 There are newer patches on the upstream lists which may break things
 again, but I've sorta stopped pro-actively trying to keep my branches
 up-to-date with latest work, as I don't seem to have the time any more
 and it seems a forlorn task. Especially as a lot of it seems under
 constant churn as people ague about how things should look. Best to just
 wait for it to turn up in mainline and deal with it them.

That may not be a bad approach.  There were those patches a while back that
killed various things like perf that crept in llct, it's a sign that unless
there's some pedigree or direct support behind where the series came from
it might be better to be without them.

-Andy

 --
 Tixy

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: LSK getting started

2013-08-05 Thread Andy Green
On 5 August 2013 10:45, Andy Green andy.gr...@linaro.org wrote:
 Hi Mark -

 I have some small practical questions about LSK.  I was able to make a
 tree with our linux-linaro-core-tracking@v3.10 LT patches on LSK basis
 work well (so far).

 I found this repo (it needs its ./description updating)

 https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=summary

 1) There seems to be two choices, linux-linaro-lsk and 
 linux-linaro-lsk-android.

 I chose the android one, I assume it has the same androidization
 series on top that linux-linaro-core-tracking used at 3.10?  Are there
 any other differences?

 2) I saw the vexpress integration stuff from ARM LT was included
 already which is good, is there a wiki page (or README.html or the
 gitweb is also good) explaining the composition?

 3) In our LT tree we patch mainline to remove all warnings coming with
 our defconfig.  Then if we see any warnings coming, we know it's our
 fault and we need to go fix it.  Are you interested in taking a
 similar approach?

 4) Maybe this is too much thinking ahead, but shouldn't these lsk
 branches be versioned, like linux-linaro-lsk-3.10?  Otherwise when the
 next lsk version is announced there'll be a problem.

5) Gator bits don't seem to be in there, presumably that's something
ARM would like to see in there (it appears in llct)

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0482a/BABEJAAI.html
https://git.linaro.org/gitweb?p=landing-teams/working/arm/kernel.git;a=shortlog;h=refs/heads/3.10-armlt-gator-5.15

-Andy

 -Andy

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: LSK getting started

2013-08-05 Thread Andy Green
On 5 August 2013 16:58, Jon Medhurst (Tixy) t...@linaro.org wrote:
 On Mon, 2013-08-05 at 10:45 +0800, Andy Green wrote:

 2) I saw the vexpress integration stuff from ARM LT was included
 already which is good, is there a wiki page (or README.html or the
 gitweb is also good) explaining the composition?

 The vexpress branch is basicall the same as what is in linux-linaro for
 the 13.07 release. I always merge my topics one at a time with --no-ff
 so it's easier to see how a branch is composed. A brief one line summary

Right, it's much clearer that way.  I was really asking about
composition of what's in LSK, since for your and Andrey's tracking /
rebase + merge branches I can look at the log and see.  But LSK will
have a linear history, it's already hard to see what's in there
without log --graph.

However this is very useful documentation --

 for each is...

 tracking-armlt-config
 vexpress config fragments

 tracking-armlt-rtsm
 Device-tree updates for RTSM

 tracking-armlt-ve-updates
 Miscellaneous fixes for vexpress.

 tracking-armlt-hdlcd
 HDCLCD driver (TC2's video hardware).

 tracking-armlt-clcd
 Modifications to CLCD driver to work with device-tree, needed
 for fast models.

 tracking-armlt-misc-fixes
 Miscellaneous fixes useful for vexpress and TC2 but not
 necessarily to vexpress specific code.

 tracking-armlt-tc2-dt
 TC2 device-tree updates.

 tracking-armlt-mcpm
 Tweaks to the MCPM code which aren't upstream.

 tracking-armlt-cci
 CCI driver and CCI PMU patches.

We started using that the other day trying to track down a nasty bug,
I didn't even know we got it from vexpress ^^

The whole list is good things to have I just wonder how ongoing
updates will be handled for backport.  For example at some point
Tweaks to the MCPM code which aren't upstream. will go upstream and
probably be a bit different by then, someone should revert (it may
not be that clean since other patches may have meddled) the old one in
lsk and replace with the upstream patches.  Mark's watching out for
that, or you are for the trees you merged that went into LSK, or
what's the plan?

-Andy

 tracking-armlt-spc
 vexpress Serial Power Controller (SPC) present in ARM Versatile
 Express TC2 core tiles.

 tracking-armlt-psci
 PSCI changes to enable run time selection of PSCI.

 tracking-armlt-dcscb
 Tweaks to the DCSCB code (RTSM's cluster control) which aren't
 upstream.

 tracking-armlt-tc2-pm
 TC2 PM functions and big.LITTLE cpuidle driver.

 tracking-armlt-tc2-psci
 Updates TC2 PM functions to use PSCI. This topic is stacked on
 top of -tc2-pm as it modifies it.

 tracking-armlt-tc2-cpufreq
 big.LITTLE cpufreq driver for vexpress.

 tracking-armlt-iks-cpufreq
 IKS cpufreq driver.

 The latter is probably not vexpress specific, I just inherited it
 because no-one else was handling it.

 --
 Tixy



___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: LSK getting started

2013-08-05 Thread Andy Green
On 5 August 2013 18:00, Jon Medhurst (Tixy) t...@linaro.org wrote:
 On Mon, 2013-08-05 at 10:53 +0100, Mark Brown wrote:
 On 5 August 2013 10:44, Jon Medhurst (Tixy) t...@linaro.org wrote:
 On Mon, 2013-08-05 at 17:13 +0800, Andy Green wrote:

  The whole list is good things to have I just wonder how
 ongoing

  updates will be handled for backport.  For example at some
 point
  Tweaks to the MCPM code which aren't upstream. will go
 upstream and
  probably be a bit different by then, someone should
 revert (it may
  not be that clean since other patches may have meddled) the
 old one in
  lsk and replace with the upstream patches.  Mark's
 watching out for
  that, or you are for the trees you merged that went into
 LSK, or
  what's the plan?



 Plan? There's no plan that I know of.


 As was mentioned on linaro-kernel the plan is that you should be
 sending me incremental updates as needed.

 But who decides what's needed? If what is in 3.10 works, why backport a
 different version? And I hadn't planned on spending any time on
 backporting new versions or fixes.

Often there are improvements from upstream comment inbetween the last
private drop of something and it appearing upstream.  That can just be
style or it can be better error handling or covering cases that
weren't originally obvious.  You won't literally always need to
backport the changes if it's removing a comment or something but
generally someone's going to at least have to eyeball the version that
went upstream and check nothing nasty got fixed before ignoring it.

More to the point there may need to be some kind of traceability
list for what fed LSK like the merged topics list you sent, and if
Mark expects someone to monitor those then an owner associated with
that as well (maybe you can pass the buck up to the component merge
branch author).  Otherwise with it being a long term history branch
pretty soon there will be so many patches piled on you'll have to do
git diff v3.10 --stat to try understand what's actually in there.

Somebody needs to follow the status of the contribution branch content
in terms of it went upstream now or it got rejected or it was redone
etc.

There won't be that many topic branches overall in LSK, so it should
be something that can stay under control if it's understood it needs
to be under control.

-Andy

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: LSK getting started

2013-08-05 Thread Andy Green
On 5 August 2013 18:16, Mark Brown broo...@linaro.org wrote:
 On 5 August 2013 03:45, Andy Green andy.gr...@linaro.org wrote:


 1) There seems to be two choices, linux-linaro-lsk and
 linux-linaro-lsk-android.

 I chose the android one, I assume it has the same androidization
 series on top that linux-linaro-core-tracking used at 3.10?  Are there
 any other differences?


 There are some patches to improve the performance of the interactive
 scheduler in there as well. Currently we didn't take John's branch in order
 to make it easier to track the Google stuff while we're preparing for
 release, that will get filtered in sometime this week.

I see, thanks.

 There may be other stuff lurking in linux-linaro that I'm not aware of,
 everything is supposed to be individually selected for backport.

Literally linux-linaro I'm not sure is useful for anything, the tree
LTs are basing on is linux-linaro-core-tracking.

It's composed by rebase and then merges, so it's easy to see what's in
there from a quick git log.

https://git.linaro.org/gitweb?p=kernel/linux-linaro-tracking.git;a=shortlog;h=refs/heads/linux-linaro-core-tracking

For tracking, we rebase our BSP patches on this every rc and get all
the latest nice things like IKS and HMP coming in our tree with no
drama.

For v3.10 what I've done is switch the basis from the v3.10 version of
llct to your tree, and that went easily too.

 3) In our LT tree we patch mainline to remove all warnings coming with
 our defconfig.  Then if we see any warnings coming, we know it's our
 fault and we need to go fix it.  Are you interested in taking a
 similar approach?


 We will take suitably non-invasive warning fixes and obviously any actual
 bug fixes that are fixed in the upstream LTS but we won't actively go
 looking for warnings in anything that's not built for testing of LSK
 ourselves. There is no commitment to making things in the underlying kernel
 warning free.

Sounds reasonable attached is our current patch for your
consideration.  There's a permanent #warning about an unwind tables
TODO this also knocks out the others are actual problems.

 4) Maybe this is too much thinking ahead, but shouldn't these lsk
 branches be versioned, like linux-linaro-lsk-3.10?  Otherwise when the
 next lsk version is announced there'll be a problem.


 This is what I inherited, we'd certainly start versioning things when
 there's more than one LSK around but having a this is the default version
 pointer does seem useful. I was intending to add versioned branches as part
 of the official release (which should be 13.08 now Greg's announced v3.10 as
 a LTS).

If we start doing it shortly it's fine.  Otherwise people who want
3.10-specific one will have no choice but to point at the latest one
if that's all there is, and that will not always be 3.10.  Having the
default one mirror the latest versioned one sounds like the best of
both worlds.

-Andy


clean-warnings
Description: Binary data
___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: LSK getting started

2013-08-05 Thread Andy Green
On 5 August 2013 18:59, Mark Brown broo...@kernel.org wrote:
 On Mon, Aug 05, 2013 at 06:42:33PM +0800, Andy Green wrote:
 On 5 August 2013 18:16, Mark Brown broo...@linaro.org wrote:

  There may be other stuff lurking in linux-linaro that I'm not aware of,
  everything is supposed to be individually selected for backport.

 Literally linux-linaro I'm not sure is useful for anything, the tree
 LTs are basing on is linux-linaro-core-tracking.

 It's composed by rebase and then merges, so it's easy to see what's in
 there from a quick git log.

 That doesn't help with understanding why any of it is there or what it's
 for.

Andrey is here hopefully he can do a Tixy-style breakdown.

 Sounds reasonable attached is our current patch for your
 consideration.  There's a permanent #warning about an unwind tables
 TODO this also knocks out the others are actual problems.

 Please split this up into proper patches, and of course you should be
 submitting any fixes upstream if they're still present - if you're doing
 this sort of warning cleanup work it's going to be useful upstream too.
 I had a quick glance through and:

These are only applied on lsk and llct, I don't actually know where
the code patched came from but I think they're all mainline.  I'll
check it out later.

  - Things like just assigning a value to variables at declaration are
worrying since that just shuts up the flow analysis warnings even if
they're actually pointing out a genuine missed code path.

In this case it's okay, that var is written via a pointer arg to
another call, but the call either returns an err or fills it in.  The
value is only used on non-error path.  It's just keeping the compiler
happy.

  - The regmap change isn't something that I've seen upstream...

If you mean where did the original come from

commit 5a08d15602987bbdff3407d7645f95b7a70f1a6f
Author: Stephen Warren swar...@nvidia.com
Date:   Wed Mar 20 17:02:02 2013 -0600

regmap: don't corrupt work buffer in _regmap_raw_write()

  - For printf() warnings consider changing the printf() format specifier
to be accurate rather than casting.

Yes fair enough.

-Andy

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: LSK getting started

2013-08-05 Thread Andy Green
On 5 August 2013 22:11, Mark Brown broo...@kernel.org wrote:
 On Mon, Aug 05, 2013 at 07:37:10PM +0800, Andy Green wrote:
 On 5 August 2013 18:59, Mark Brown broo...@kernel.org wrote:

   - The regmap change isn't something that I've seen upstream...

 If you mean where did the original come from

 I mean I haven't seen that warning that I'm aware of.

 commit 5a08d15602987bbdff3407d7645f95b7a70f1a6f
 Author: Stephen Warren swar...@nvidia.com
 Date:   Wed Mar 20 17:02:02 2013 -0600

 regmap: don't corrupt work buffer in _regmap_raw_write()

 Note that the above change is part of v3.10...

I know, it's just unclear what you were saying about the regmap
change isn't something that I've seen upstream...

I went through and split out the fixes after examining each one.

1) warning elimination: arm: silence THUMB2 no unwind warning

I think RMK wants it to blow warnings, the issue is there's no frame
context if you build THUMB2 (which we are).  In Kconfig

# RMK wants arm kernels compiled with frame pointers or stack unwinding.
# If you know what you are doing and are willing to live without stack
# traces, you can get a slightly smaller kernel by setting this option to
# n, but then RMK will have to kill you ;).
config FRAME_POINTER
bool
depends on !THUMB2_KERNEL

so I doubt he'll accept a patch silencing it.  For me, it's a
pointless warning and for lsk fixed at 3.10 it's also pointless IMO.

2) warning-elimination: android: binder

This seems to be a problem with a patch already upstream

3) warning-elimination: androidization: mm

Problem coming from Androidization patches

4) warning-elimination: ata: ata_hpa_resize default assignment

Issue is upstream but I can't reproduce original compiler warning

5) warning-elimination: ion: use size_t-specific format

Introduced in Androidization

6) warning-elimination: nobody uses cci_pmu_destroy

Presumably coming from the CCI stuff Tixy pulled in

7) warning-elimination: regmap: cast pointer arg from int

This seems to be a genuine issue of passing an int to a function
wanting a const void *.  However I can't reproduce the warning.

8) warning-elimination: usb: dwc3

This only made problems if you have CONFIG_PM but not CONFIG_SUSPEND,
dunno if people care or not.


So 3 and 5 are out-of-mainline Androidizaton issues.

6 only exists on ARM LT tree - llct / lsk and need to be dealt with here.

1 4, and 8 I doubt anyone will buy upstream, but you should still
consider 1.  4 can't be demonstrated to be a problem right now
(although it has been...)  8 we turned on SUSPEND ourselves since it
was a problem.

2 is a problem from mainline.

7 is your department.

-Andy


warning elimination: arm: silence THUMB2 no unwind warning
Description: Binary data


warning-elimination: ion: use size_t-specific format
Description: Binary data


warning-elimination: nobody uses cci_pmu_destroy
Description: Binary data


warning-elimination: regmap: cast pointer arg from int
Description: Binary data


warning-elimination: androidization: mm
Description: Binary data


warning-elimination: ata: ata_hpa_resize default assignment
Description: Binary data


warning-elimination: usb: dwc3
Description: Binary data


warning-elimination: android: binder
Description: Binary data
___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: LSK getting started

2013-08-05 Thread Andy Green
On 6 August 2013 11:03, John Stultz john.stu...@linaro.org wrote:
 On 08/05/2013 05:24 PM, Andy Green wrote:


 2) warning-elimination: android: binder

 This seems to be a problem with a patch already upstream

 3) warning-elimination: androidization: mm

 Problem coming from Androidization patches

 [snip]

 5) warning-elimination: ion: use size_t-specific format

 Introduced in Androidization


 Thanks Andy!

 I've applied these three to the linaro-fixes/experimental/android-3.10
 branch.

Thanks.

 Are you planning on sending #2 above on to lkml/Greg?

Yes, you and Mark are on cc.

-Andy

 thanks
 -john

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


LSK getting started

2013-08-04 Thread Andy Green
Hi Mark -

I have some small practical questions about LSK.  I was able to make a
tree with our linux-linaro-core-tracking@v3.10 LT patches on LSK basis
work well (so far).

I found this repo (it needs its ./description updating)

https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=summary

1) There seems to be two choices, linux-linaro-lsk and linux-linaro-lsk-android.

I chose the android one, I assume it has the same androidization
series on top that linux-linaro-core-tracking used at 3.10?  Are there
any other differences?

2) I saw the vexpress integration stuff from ARM LT was included
already which is good, is there a wiki page (or README.html or the
gitweb is also good) explaining the composition?

3) In our LT tree we patch mainline to remove all warnings coming with
our defconfig.  Then if we see any warnings coming, we know it's our
fault and we need to go fix it.  Are you interested in taking a
similar approach?

4) Maybe this is too much thinking ahead, but shouldn't these lsk
branches be versioned, like linux-linaro-lsk-3.10?  Otherwise when the
next lsk version is announced there'll be a problem.

-Andy

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Organizing Config Fragments

2013-08-01 Thread Andy Green
On 1 August 2013 14:11, Viresh Kumar viresh.ku...@linaro.org wrote:
 Hi Andrey,

 linaro/configs/* is getting bigger and bigger, probably its the right time to
 organize it better for the future. There can be multiple things that we can
 do to avoid confusions of names but for now probably we can create
 separate directories for boards, rootfs  kernel fragments? Or some
 other idea that you might have?

Just a thought these seem to me like they are covering up for missing
select xxx in the related Kconfig option (eg, CONFIG_ANDROID), or
stuff that should be in the defconfig (eg, omap4, vexpress).

There's also an issue the fragments are all =y when for
ARCH_MULTIPLATFORM, it implies all things not needed for rootfs mount
need to be =m.

-Andy

 --
 viresh

 ___
 linaro-dev mailing list
 linaro-dev@lists.linaro.org
 http://lists.linaro.org/mailman/listinfo/linaro-dev

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Organizing Config Fragments

2013-08-01 Thread Andy Green
On 1 August 2013 16:30, Ryan Harkin ryan.har...@linaro.org wrote:
 On 1 August 2013 07:57, Andy Green andy.gr...@linaro.org wrote:
 On 1 August 2013 14:11, Viresh Kumar viresh.ku...@linaro.org wrote:
 Hi Andrey,

 linaro/configs/* is getting bigger and bigger, probably its the right time 
 to
 organize it better for the future. There can be multiple things that we can
 do to avoid confusions of names but for now probably we can create
 separate directories for boards, rootfs  kernel fragments? Or some
 other idea that you might have?

 Just a thought these seem to me like they are covering up for missing
 select xxx in the related Kconfig option (eg, CONFIG_ANDROID), or
 stuff that should be in the defconfig (eg, omap4, vexpress).

 Is the platform specific defconfig still relevant in a multiarch
 kernel?  I guess the fragments should adding items missing from the
 default multiarch config.  Excuse my ignorance, 'cause I don't know
 how multiarch works...

It lets you have more than one CONFIG_ARCH_blah at once enabled in the
config and working in the one kernel binary .  You give it one of the
valid dtbs to tell it what it is at runtime.

We use it to have the CONFIG_ARCH_(dual aa9 SoC) and
CONFIG_ARCH_(big.LITTLE SoC) in the same kernel binary so the same
kernel can start up on both platforms.

Once it's started though, it's just bloat to have peripheral drivers
present on only one of the platforms built-in to the monolithic
kernel.  For example those two SoCs have different video IPs, so we
need them to be both built as modules and then use the different
Device Tree definition to bind to just the right module at runtime so
it all works out nicely.

So you do still need to tell the kernel what drivers are relevant to
your combined set of arches, your defconfig needs to reflect that (and
builds everything selected as modules where possible).

 Historically, the main reason for us creating the frags was because of
 the platforms (eg, Ubuntu) adding lots of config options that weren't
 in the defconfig.  The vexpress defconfig has always been broken.  But
 over-riding the defconfig with Ubuntu/Android/whatever options was a
 bigger bodge than creating fragments.

Right I think eg, adding selects to CONFIG_ANDROID in its Kconfig, or
adding CONFIG_ANDROID_TYPICAL to do that and select CONFIG_ANDROID
would soak up some of them anyway.

General Ubuntuesque options I don't know, maybe that's more legit.

 So I think they are still important for Linaro's builds.  Escpecially
 as we aren't building multiarch kernels for all our platforms yet.


 There's also an issue the fragments are all =y when for
 ARCH_MULTIPLATFORM, it implies all things not needed for rootfs mount
 need to be =m.

 That's a good point and something we should look into.  We should
 really be using multiarch kernels sooner rather than later, right?

I think it makes a lot of sense for each vendor to have their own
stuff building as a single multiarch kernel if possible.  Then you can
just provide one image with one or two kernels (LPAE and non-LPAE
don't play together) plus a lot of modules and dtbs that covers all
the cases.

It will be possible to enable different vendor arches all at the same
time as well, but the different bootloader requirements situation will
scuttle that.  Some combinations will work like Fujitsu AA9 has
bootloader in internal NOR, it can share an SD with OMAP4 using MLO
inside VFAT okay.

At any rate to get the SoC support upstream now you have to meet the
checklist for ARCH_MULTIPLATFORM so it's certainly the way of the
future.

-Andy


 -Andy

 --
 viresh

 ___
 linaro-dev mailing list
 linaro-dev@lists.linaro.org
 http://lists.linaro.org/mailman/listinfo/linaro-dev

 ___
 linaro-dev mailing list
 linaro-dev@lists.linaro.org
 http://lists.linaro.org/mailman/listinfo/linaro-dev

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Organizing Config Fragments

2013-08-01 Thread Andy Green
On 2 August 2013 01:46, Jon Medhurst (Tixy) t...@linaro.org wrote:
 On Thu, 2013-08-01 at 17:40 +0100, Peter Maydell wrote:
 On 1 August 2013 09:30, Ryan Harkin ryan.har...@linaro.org wrote:
  The vexpress defconfig has always been broken.

 ...maybe we could fix it?

 It has been suggested that should be deleted as people can use the
 multiplatform defconfig (though I believe that is missing the regulator
 config for mmc as well).

 People have different ideas where various configs should live, boards
 specific defconfig, multiplatform defconfig or in Kconfig; and any
 particular change probably would have people arguing against it. And

That's probably a correct prediction... but it doesn't mean all of the
solutions are equally good.

I guess nobody outside Linaro with these kernels uses and most don't
even know about the config fragments scripts.  We inherit them from
llct but nobody uses them in Fujitsu.

 - For things fixing a defconfig, or making it appropriate for other
patches added in that kernel, shouldn't we patch the defconfig
directly (via make savedefconfig)?  Then people will use the fix and
you have a fix to suggest upstream.

 - For optional things that follow from enabling a single Kconfig
selection (eg, CONFIG_ANDROID) why not have it enforced at the
selection of that config?

 - For Ubuntize or --

 with vexpress we have the added complication thrown into the mix that
 people use it a lot with QEMU ;-)

...if there's something special needed for QEMU, maybe the fragments
are the right answer.  Or if it's just lack of models for IP maybe
building the drivers modular anyway and knocking them out in dts
(status=not okay) is the right answer.

However currently they all have a let's make a fat kernel =y
approach when our defconfig is more like allmodules, so for us we
can't use any of the fragments meaningfully, so eliminating them
doesn't sound like a bad idea.

-Andy

 --
 Tixy


 ___
 linaro-dev mailing list
 linaro-dev@lists.linaro.org
 http://lists.linaro.org/mailman/listinfo/linaro-dev

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Organizing Config Fragments

2013-08-01 Thread Andy Green
On 2 August 2013 07:38, Peter Maydell peter.mayd...@linaro.org wrote:
 On 2 August 2013 00:26, Andy Green andy.gr...@linaro.org wrote:
 On 2 August 2013 01:46, Jon Medhurst (Tixy) t...@linaro.org wrote:
 with vexpress we have the added complication thrown into the mix that
 people use it a lot with QEMU ;-)

 ...if there's something special needed for QEMU, maybe the fragments
 are the right answer.

 My general aim is that the kernel that works on h/w should
 also work on the QEMU model. In general it does, though we
 rely a bit on various driver probe routines gracefully coping
 with the device not actually being present. Somebody put

We have a similar situation with a (non-QEMU) simulator, but it's not
possible to win on that since just probing an empty address will blow
a bus fault.  We have to take the approach to knock out the missing
device instantiations in the dtsi.

 something new into the kernel and exposed a missing bit
 of QEMU emulation support is also a periodic event, but those
 are just bugs that need fixing.

 The biggest roadblock I'm seeing at the moment actually is
 that there's a big class of problems (which generally
 boil down to wrong kernel config or sometimes wrong
 QEMU command line arguments) which manifest as kernel
 produces no output. 'common and easy user error' + 'zero
 diagnostics' = 'lots of annoying support email' :-)

Right, I can imagine.

 x86 manages to do much better here because the everything
 looks like a PC effect means it's much easier for the kernel
 to produce output to serial or video very early. It's much
 easier to configure an ARM kernel so it doesn't look for the
 serial port in the right place or so it falls over before it
 gets round to actually being able to output to serial (and
 earlyprintk is very hit-and-miss especially in a multiplatform
 kernel). I'm not sure there's really a good solution to this
 problem, though :-(

The problem is the bootloader being flexible and meddling with the
dtb chosen line to match its private state (bootargs in U-Boot env for
example).  I don't know how to stop U-Boot doing that, since if it
even gets wind that you loaded a dtb image it's all over it meddling.
But if you could stop it, preparing a golden chosen commandline in
the dts and telling people to disable bootloader dtb meddling would be
a nice debugging aid.

We use a stub bootloader instead that always uses the chosen already in the dts.

-Andy

 -- PMM

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [PATCH] uboot optimize memmove

2013-07-29 Thread Andy Green
Looping Will...

On 29 July 2013 16:28, Dirk Behme dirk.be...@de.bosch.com wrote:
 On 26.07.2013 15:42, Andy Green wrote:

 On 26 July 2013 20:58, Wolfgang Denk w...@denx.de wrote:

 ...

 you not make sure that you provide optimized implementations for such
 functions and consequently #define __HAVE_ARCH_MEMMOVE (and
 __HAVE_ARCH_MEMCPY) ?


 Yes I found these afterwards... performance is slightly better than
 memcpy() thanks to Nicolas Pitre it seems.  The U-Boot config for the
 platform we have didn't know about them, it's much better with them.

 After I wrote this patch it was also pointed out by Will Newton at
 Linaro that we have Neon accelerated memcpy lying around with BSD
 license

 https://launchpad.net/cortex-strings

 however for my purposes NOR boot is working good enough with the ARCH
 versions.


 I've had a look to

 https://launchpad.net/cortex-strings

 and there downloaded

 https://launchpad.net/cortex-strings/trunk/2013.01/+download/cortex-strings-1.0-2013.01.tar.bz2

 (from the green download button on the right side).

 The README mentions

 src/neon  contains NEON based routines for AArch32.

 but the cortex-strings-1.0-2013.01.tar.bz2 seems to contain an empty
 src/neon directory. Is this intended?

I don't know... I agree that dir is empty... Will, do you know the
story?  I found nice-looking ones in reference/newlib but I don't
think they're NEON.

-Andy

 Best regards

 Dirk



___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [PATCH] uboot optimize memmove

2013-07-28 Thread Andy Green
Dear Wolfgang Denk,

On 27 July 2013 03:06, Wolfgang Denk w...@denx.de wrote:
 Dear Andy Green,

 In message 
 caafg0w7p6rvvamqsksc09yqnfpod08ydtbeh_mqrz6n+b4i...@mail.gmail.com you 
 wrote:

  Instead of making assumptions on the performance of memcpy() and

 As I wrote, I measured the performance and got a very big gain, it's
 3x faster on my setup to use memcpy() then default memmove().

 Yes, in your single test case of copying a Linux kernel image,
 i. e. a multi-megabyte file.

That single test case of copying a multi-megabyte file is the
reason d'etre of a bootloader...if it doesn't perform well doing that
then it's a problem.

However I agree the alternative arch-specific implementation for ARM
is pretty good, so this is kind of moot.

Since I traced my problem to here I fixed it there, but that actual
problem was were using the default implementations at all (the config
was inherited)..

 By calling that an assumption you're saying that there exist
 platforms where 32-bit linear memmove() is slower than doing it with
 8-bit actions?

 No.  I said you should not assume that memcpy() is always faster than
 memmove(); a system may use optiomized versions of either.

I did not assume that, I looked at your code for both and saw, and
proved, that using 32-bit operations for mass move actions is going to
perform better than using 8-bit operations.

That's not something you can write off as an assumption, it's a fact.

  adding the overhead of an additional function call (which can be
  expensive especially for short copy operations) it would make more

 I am not sure U-Boot is really in the business of doing small
 memmoves, but okay...

 It's easy to avoid this overhead, and also get rid of the
 restrictions you built into it (otimizong only the non-overlapping
 case), so if we touch that code, we should do it right.

Given that code should perferably never be used, maybe it should print
a warning like Using default memory ops and leave it like it is.
The problem is not correctness just inefficiency.

  sense to pull the copy a word at a time code from memcpy() into
  memmove(), too.
 
  On the other hand - if you really care about performance, then why do

 I spent several hours figuring out why our NOR boot performance was
 terrible it's because this default memmove code is gloriously
 inefficient for all cases.

 If you like it like that, no worries.

 Don't twist my words.  I asked for a different, better implementation,
 that's all.

Unfortunately I'm only looking at it because it made trouble, and we
now no longer use that code.

For the use-case I'm studying (very fast overall boot) it still may
make sense to implement the NEON stuff in which case I'll offer a
patch for that.

-Andy


 Best regards,

 Wolfgang Denk

 --
 DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
 HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
 Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
 The only time the world beats a path to your door is when you are  in
 the bathroom.

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[PATCH] uboot optimize memmove

2013-07-26 Thread Andy Green
While studying the reason why kernel copy from NOR was so slow on our platform,
I realized U-Boot is pulling it from 32-bit NOR in 8-bit chunks needlessly.

bootm uses memmove() and that just takes the approach by default to move u8s
around.

This optimization prefers memcpy() implementation (done mostly in 32-bit reads
and writes) if there's no overlap in source and dest, resulting in a huge
speedup on our platform (480ms copy from 32-bit NOR --- 140ms)

Signed-off-by: Andy Green andy.gr...@linaro.org
---
 lib/string.c |   10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/lib/string.c b/lib/string.c
index c3ad055..96d66e0 100644
--- a/lib/string.c
+++ b/lib/string.c
@@ -542,13 +542,21 @@ void * memmove(void * dest,const void *src,size_t count)
if (src == dest)
return dest;
 
-   if (dest = src) {
+   if (dest  src) {
+
+   if ((unsigned long)dest + count = (unsigned long)src)
+   return memcpy(dest, src, count);
+
tmp = (char *) dest;
s = (char *) src;
while (count--)
*tmp++ = *s++;
}
else {
+
+   if ((unsigned long)src + count = (unsigned long)dest)
+   return memcpy(dest, src, count);
+
tmp = (char *) dest + count;
s = (char *) src + count;
while (count--)


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [PATCH] uboot optimize memmove

2013-07-26 Thread Andy Green
On 26 July 2013 20:58, Wolfgang Denk w...@denx.de wrote:
 Dear Andy Green,

 In message 20130726065323.27333.82421.stgit@localhost.localdomain you wrote:
 While studying the reason why kernel copy from NOR was so slow on our 
 platform,
 I realized U-Boot is pulling it from 32-bit NOR in 8-bit chunks needlessly.

 bootm uses memmove() and that just takes the approach by default to move u8s
 around.

 This optimization prefers memcpy() implementation (done mostly in 32-bit 
 reads
 and writes) if there's no overlap in source and dest, resulting in a huge
 speedup on our platform (480ms copy from 32-bit NOR --- 140ms)

 Sorry, but I dislike your patch.

I see.

 Instead of making assumptions on the performance of memcpy() and

As I wrote, I measured the performance and got a very big gain, it's 
3x faster on my setup to use memcpy() then default memmove().

By calling that an assumption you're saying that there exist
platforms where 32-bit linear memmove() is slower than doing it with
8-bit actions?

 adding the overhead of an additional function call (which can be
 expensive especially for short copy operations) it would make more

I am not sure U-Boot is really in the business of doing small
memmoves, but okay...

 sense to pull the copy a word at a time code from memcpy() into
 memmove(), too.

 On the other hand - if you really care about performance, then why do

I spent several hours figuring out why our NOR boot performance was
terrible it's because this default memmove code is gloriously
inefficient for all cases.

If you like it like that, no worries.

 you not make sure that you provide optimized implementations for such
 functions and consequently #define __HAVE_ARCH_MEMMOVE (and
 __HAVE_ARCH_MEMCPY) ?

Yes I found these afterwards... performance is slightly better than
memcpy() thanks to Nicolas Pitre it seems.  The U-Boot config for the
platform we have didn't know about them, it's much better with them.

After I wrote this patch it was also pointed out by Will Newton at
Linaro that we have Neon accelerated memcpy lying around with BSD
license

https://launchpad.net/cortex-strings

however for my purposes NOR boot is working good enough with the ARCH versions.

-Andy

 Best regards,

 Wolfgang Denk

 --
 DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
 HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
 Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
 It is dangerous to be sincere unless you are also stupid.
 - George Bernard Shaw

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Perf test giving strange results

2013-06-26 Thread Andy Green
Hi -

Trying perf test on llct-based 3.10-rc6 isn't entirely happy.

root@aa9-eb:~# perf test
 1: vmlinux symtab matches kallsyms: FAILED!
 2: detect open syscall event  : Ok
 3: detect open syscall event on all cpus  : Ok
 4: read samples using the mmap interface  : Ok
 5: parse events tests :  Warning:
function sizeof not defined
  Warning: function sizeof not defined
  Warning: function scsi_trace_parse_cdb not defined
  Warning: function scsi_trace_parse_cdb not defined
  Warning: function scsi_trace_parse_cdb not defined
  Warning: function scsi_trace_parse_cdb not defined
  Warning: function jiffies_to_msecs not defined
  Warning: function jiffies_to_msecs not defined
  Warning: bad op token {
  Warning: bad op token {
  Warning: bad op token {
  Warning: Error: expected type 4 but read 0
  Warning: bad op token {
  Warning: Error: expected type 4 but read 0
  Warning: bad op token {
  Warning: bad op token {
  Warning: bad op token {
  Warning: bad op token {
  Warning: bad op token {
  Warning: unknown op '{'
  Warning: unknown op '{'
 Ok
 6: Validate PERF_RECORD_* events  perf_sample fields : FAILED!
 7: Test perf pmu format parsing   : Ok
 8: Test dso data interface: Ok
 9: roundtrip evsel-name check: Ok
10: Check parsing of sched tracepoints fields  : FAILED!
11: Generate and check syscalls:sys_enter_open event fields: Ok
12: struct perf_event_attr setup   : (omitted) Ok
13: Test matching and linking mutliple hists   : Ok
14: Try 'use perf' in python, checking link problems   : FAILED!
15: Test breakpoint overflow signal handler: FAILED!
16: Test breakpoint overflow sampling  : FAILED!
17: Test number of exit event of a simple workload : FAILED!
18: Test software clock events have valid period values: Ok


I started tracing the first failure... it stops because it can't find
_stext in /proc/kallsyms.  But it is there

root@aa9-eb:~# cat /proc/kallsyms | grep _stext
800081c0 T _stext

test 5 (parse event tests) seems to be badly broken.

Is this just our problem or is it broken for everyone?

-Andy

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Perf test giving strange results

2013-06-26 Thread Andy Green
On 26 June 2013 17:57, Milosz Wasilewski milosz.wasilew...@linaro.org wrote:
 On 26 June 2013 09:16, Andy Green andy.gr...@linaro.org wrote:

Hi Milosz -

 test 5 (parse event tests) seems to be badly broken.

 Is this just our problem or is it broken for everyone?

 I'm not sure if the reason is the same but this test was broken in
 LAVA for some time now. The latest result on 3.10.0-1-linaro-omap
 kernel looks like this:

 perf test - parse events tests
 :Can't open event dir : No such file or directory
 Can't open event dir : No such file or directory
 Warning : function scsi_trace_parse_cdb not defined
 Warning : function scsi_trace_parse_cdb not defined
 Warning : function scsi_trace_parse_cdb not defined
 Warning : function scsi_trace_parse_cdb not defined
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : function jiffies_to_msecs not defined
 Warning : function jiffies_to_msecs not defined
 Warning : bad op token {
 Warning : bad op token {
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : Error : expected type 4 but read 0
 Warning : bad op token {
 Warning : bad op token {
 Warning : bad op token {
 Warning : bad op token {
 Warning : bad op token {
 Warning : unknown op '{'
 Warning : unknown op '{'
 FAIL

Thanks.

I guess it is simply broken upstream, or we missed a point somewhere.

Llct does have one patch compared to vanilla 3.10-rc6 but that's it

diff --git a/tools/perf/config/utilities.mak b/tools/perf/config/utilities.mak
index 8ef3bd3..3e89719 100644
--- a/tools/perf/config/utilities.mak
+++ b/tools/perf/config/utilities.mak
@@ -173,7 +173,7 @@ _ge-abspath = $(if $(is-executable),$(1))
 # Usage: absolute-executable-path-or-empty = $(call
get-executable-or-default,variable,default)
 #
 define get-executable-or-default
-$(if $($(1)),$(call _ge_attempt,$($(1)),$(1)),$(call _ge_attempt,$(2),$(1)))
+$(if $($(1)),$(call _ge_attempt,$($(1)),$(1)),$(call _ge_attempt,$(2)))
 endef
 _ge_attempt = $(if
$(get-executable),$(get-executable),$(_gea_warn)$(call _gea_err,$(2)))
 _gea_warn = $(warning The path '$(1)' is not executable.)


What's the plan for tests that are in Lava that are themselves
partially broken?  We should snip or force the results, patch to turn
off those tests?

-Andy

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Gator with IKS config but not running on big.LITTLE

2013-06-20 Thread Andy Green
On 20 June 2013 17:34, Dave Martin dave.mar...@linaro.org wrote:
 On Thu, Jun 13, 2013 at 12:08:49PM +0100, Jon Medhurst (Tixy) wrote:
 On Thu, 2013-06-13 at 12:14 +0800, Andy Green wrote:
  Hi -
 
  Something maybe unrelated after inserting gator successfully  get
  some kernel logs coming
 
  [   52.491528] CPU PMU: unable to set irq affinity (irq=0, cpu=0)
  [   52.496351] CPU PMU: unable to set irq affinity (irq=0, cpu=0)
  ...
 
  irq = 0 isn't looking very happy... are there more new DT properties
  we need somewhere to be compatible?  Our actual pmu section just looks
  like this
 
  pmu {
  compatible = arm,cortex-a9-pmu;
  interrupts = 0 98 0x4,
  0 99 0x4;
  };

 This isn't an area I have any knowledge in, sorry. But for what it's
 worth that looks the same format as vexpress pmu nodes. IRQs are
 obviously different, and the number of them match the number of CPUs.

Hi Dave -

 This may be another side effect on the perf hacks of the changed IKS
 CPU pairing.

Thanks... when I updated to -rc6 pieces without those patches, the
logs about irq affinity are gone.  So it may well have been related.

 I don't intend to fix this unless someone has a strong need for it.
 I'm working on something to supersede those perf hacks, but it won't
 be ready immediately.

AFAIK we're alright at the moment now.

-Andy

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Gator with IKS config but not running on big.LITTLE

2013-06-12 Thread Andy Green
Thanks for the info: you're right I missed that.  When I add it, the
BUG is gone on gator module insertion, so from my POV we can call it
fixed.

-Andy

On 11 June 2013 23:12, Jon Medhurst (Tixy) t...@linaro.org wrote:
 On Tue, 2013-06-11 at 22:49 +0800, Andy Green wrote:
 Blows chunks the same with this

 cpus {
 #size-cells = 0;
 #address-cells = 1;

 cpu@0 {
 compatible = arm,cortex-a9;
 next-level-cache = L2;
 reg = 0;
 };
 cpu@1 {
 compatible = arm,cortex-a9;
 next-level-cache = L2;
 reg = 1;
 };
 };

 I think it's following Lorenzo's method.

 You missed

 device_type = cpu;

 from both cpu nodes. That's a mandatory attribute mentioned in the docs,
 and also what the gator code searches for with of_find_node_by_type().

 I'm still going to make gator codp with missing cpu nodes.

 --
 Tixy

 -Andy

 On 11 June 2013 22:34, Jon Medhurst (Tixy) t...@linaro.org wrote:
  On Tue, 2013-06-11 at 22:09 +0800, Andy Green wrote:
  Thanks.  This and the similar issue with perf might be telling us a
  global probed SoC capability flag for bL or-ed with the config being
  there might be helpful.
 
  Now we have accepted DT bindings for cpu nodes [1] perhaps all board's
  device-trees should be updated to use them? I believe that
  'mpidr_cpuids_count is 0 and nr_cpu_ids is 2' means you don't have cpu
  nodes in your device tree?
 
  And code like gator should use some common kernel functions for looking
  up cpu mappings rather than parsing DT for cpu nodes itself.
 
  I'll make gator behave one way or the other so it doesn't break on
  platforms with missing cpu node or no IKS.
 
  [1] 
  http://lists.infradead.org/pipermail/linux-arm-kernel/2013-May/170234.html
 
  --
  Tixy
 



___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Gator with IKS config but not running on big.LITTLE

2013-06-12 Thread Andy Green
Hi -

Something maybe unrelated after inserting gator successfully  get
some kernel logs coming

[   52.491528] CPU PMU: unable to set irq affinity (irq=0, cpu=0)
[   52.496351] CPU PMU: unable to set irq affinity (irq=0, cpu=0)
...

irq = 0 isn't looking very happy... are there more new DT properties
we need somewhere to be compatible?  Our actual pmu section just looks
like this

pmu {
compatible = arm,cortex-a9-pmu;
interrupts = 0 98 0x4,
0 99 0x4;
};

-Andy

On 13 June 2013 08:26, Andy Green andy.gr...@linaro.org wrote:
 Thanks for the info: you're right I missed that.  When I add it, the
 BUG is gone on gator module insertion, so from my POV we can call it
 fixed.

 -Andy

 On 11 June 2013 23:12, Jon Medhurst (Tixy) t...@linaro.org wrote:
 On Tue, 2013-06-11 at 22:49 +0800, Andy Green wrote:
 Blows chunks the same with this

 cpus {
 #size-cells = 0;
 #address-cells = 1;

 cpu@0 {
 compatible = arm,cortex-a9;
 next-level-cache = L2;
 reg = 0;
 };
 cpu@1 {
 compatible = arm,cortex-a9;
 next-level-cache = L2;
 reg = 1;
 };
 };

 I think it's following Lorenzo's method.

 You missed

 device_type = cpu;

 from both cpu nodes. That's a mandatory attribute mentioned in the docs,
 and also what the gator code searches for with of_find_node_by_type().

 I'm still going to make gator codp with missing cpu nodes.

 --
 Tixy

 -Andy

 On 11 June 2013 22:34, Jon Medhurst (Tixy) t...@linaro.org wrote:
  On Tue, 2013-06-11 at 22:09 +0800, Andy Green wrote:
  Thanks.  This and the similar issue with perf might be telling us a
  global probed SoC capability flag for bL or-ed with the config being
  there might be helpful.
 
  Now we have accepted DT bindings for cpu nodes [1] perhaps all board's
  device-trees should be updated to use them? I believe that
  'mpidr_cpuids_count is 0 and nr_cpu_ids is 2' means you don't have cpu
  nodes in your device tree?
 
  And code like gator should use some common kernel functions for looking
  up cpu mappings rather than parsing DT for cpu nodes itself.
 
  I'll make gator behave one way or the other so it doesn't break on
  platforms with missing cpu node or no IKS.
 
  [1] 
  http://lists.infradead.org/pipermail/linux-arm-kernel/2013-May/170234.html
 
  --
  Tixy
 



___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Gator with IKS config but not running on big.LITTLE

2013-06-11 Thread Andy Green
Hi -

If you have a CONFIG_ARCH_MULTIPLATFORM kernel, with big.LITTLE
configured but running on say, a CA9 system, and you have gator from
llct, and you insert gator

root@localhost:~# modprobe gator
[   73.951009] [ cut here ]
[   73.955673] kernel BUG at
/projects/linaro/linux-2.6/drivers/gator/gator_iks.c:43!
[   73.963260] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP THUMB2

[   73.969392] Modules linked in: gator(+) hid_generic usbhid hid
f_usb20hdc_otg usbcore f_usb30_udc udc_core usb_common
[   73.980325] CPU: 1 PID: 1711 Comm: modprobe Not tainted
3.10.0-linaro_fjslt-tracking-bsp2.0.0-rc1+ #87
[   73.989678] task: ea395400 ti: ea38a000 task.ti: ea38a000
[   73.995221] PC is at gator_module_init+0x5f/0xb0 [gator]
[   74.000594] LR is at of_find_node_by_type+0x33/0x3c
[   74.005488] pc : [7f8f5070]lr : [801de123]psr: 800f0033
[   74.005488] sp : ea38be58  ip : 7f8f0090  fp : 7f8efe64
[   74.016980] r10: 001c  r9 :   r8 : 7f8f5011
[   74.022211] r7 : 7f8efea0  r6 : 7f8effc0  r5 :   r4 : 
[   74.028777] r3 : 0002  r2 :   r1 : 400f0013  r0 : 
[   74.035344] Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA Thumb
Segment user
[   74.042706] Control: 50c5387d  Table: a957404a  DAC: 
[   74.048493]
[   74.048493] LR: 0x801de0a3:
[   74.052776] e0a0  f08f4802 4620fb51 bf00bd38 8048f5e0 460eb573
490d4615 f7ffaa01 4604fe17
[   74.061000] e0c0  f75ab188 9b01fa7f d80c4298 212c4620 fcd6f756
1c44b100 46214630 f75a462a
[   74.069262] e0e0  2000fb6b f06fe001 bd7c0012 8033e4e9 4604b5f8
460e4d0c f08f4628 4607f9fe
[   74.077494] e100  e007b104 e006686c b1186860 f75a4631 b110f9bd
2c006aa4 4803d1f6 f08f4639
[   74.085713] e120  4620fb2a bf00bdf8 8048f5e0 4604b5f8 460e4d0c
f08f4628 4607f9e0 e007b104
[   74.093930] e140  e006686c b1186820 f75a4631 b110f99f 2c006aa4
4803d1f6 f08f4639 4620fb0c
[   74.102150] e160  bf00bdf8 8048f5e0 4605b570 6844480a f9c3f08f
e0064606 b11868e0 f75a4629
[   74.110371] e180  b110f985 2c006aa4 4803d1f6 f08f4631 4620faf2
bf00bd70 8048f5e0 460eb570
[   74.118591] e1a0  21004605 6820e007 4631b118 f96ef75a 4628b130
f7ff4621 4604fcfb d1f22800
[   74.126811]
[   74.126811] SP: 0xea38bdd8:
[   74.131085] bdd8  001d  80412ab4 ea38be54 
0001 001d 
[   74.139301] bdf8  80412ab4 7f8f5072 800f0033  ea38be44
8000c1e1  400f0013
[   74.147522] be18   0002   7f8effc0
7f8efea0 7f8f5011 
[   74.155738] be38  001c 7f8efe64 7f8f0090 ea38be58 801de123
7f8f5070 800f0033 
[   74.163954] be58  7f8f5011  7f8efe58 ea38bf58 0001
800084f5 7f8f5011 
[   74.172174] be78  0001 7f8efe58 7f8efe58 ea38bf58 0001
7f8efea0 ea96fec0 0001
[   74.180391] be98  001c 8004a4cd 7f8efe64 7fff 80047b3d
ea38bf1c 0028 
[   74.188607] beb8   80412434 7f8effac 80271bec f0c54c18
ea38beec 76f6efa8 2033
[   74.196835] Process modprobe (pid: 1711, stack limit = 0xea38a238)
[   74.203022] Stack: (0xea38be58 to 0xea38c000)
[   74.207384] be40:
7f8f5011 
[   74.215579] be60: 7f8efe58 ea38bf58 0001 800084f5 7f8f5011
 0001 7f8efe58
[   74.223773] be80: 7f8efe58 ea38bf58 0001 7f8efea0 ea96fec0
0001 001c 8004a4cd
[   74.231968] bea0: 7f8efe64 7fff 80047b3d ea38bf1c 0028
  80412434
[   74.240163] bec0: 7f8effac 80271bec f0c54c18 ea38beec 76f6efa8
2033  ea38bf1c
[   74.248357] bee0: 5f696261 8000c0b5 f0ca 76e5d000 0305
7f8edf44 000d 
[   74.256549] bf00:     
  
[   74.264740] bf20:     2033
 76d41000 76f6efa8
[   74.272931] bf40: 0080 8000c764 ea38a000  
8004a727 f0b84000 0011c385
[   74.281125] bf60: f0c542b8 f0c54048 f0c9de18 7bfc 9bac
  
[   74.289315] bf80: 003c 003d 0025  001a
0022 76f6fbe4 0004
[   74.297506] bfa0: 77fa81c0 8000c5c1 76f6fbe4 0004 76d41000
0011c385 76f6efa8 0002
[   74.305700] bfc0: 76f6fbe4 0004 77fa81c0 0080 77fb0158
 0011c385 
[   74.313895] bfe0: 76eeec00 7ec74368 76f693ad 76eeec10 8010
76d41000 ab7dd821 ab7ddc21
[   74.322199] [7f8f5070] (gator_module_init+0x5f/0xb0 [gator]) from
[800084f5] (do_one_initcall+0x61/0xd8)
[   74.332064] [800084f5] (do_one_initcall+0x61/0xd8) from
[8004a4cd] (load_module+0xbdd/0xdc8)
[   74.340875] [8004a4cd] (load_module+0xbdd/0xdc8) from
[8004a727] (SyS_init_module+0x6f/0x7e)
[   74.349693] [8004a727] (SyS_init_module+0x6f/0x7e) from
[8000c5c1] (ret_fast_syscall+0x1/0x46)
[   74.358673] Code: 4b12 681b 429c d000 (de02) 4c11
[   74.363473] ---[ end trace 4b8ff3a1ee8d2385 ]---

-Andy

___
linaro-dev mailing list
linaro-dev@lists.linaro.org

Re: Gator with IKS config but not running on big.LITTLE

2013-06-11 Thread Andy Green
I see... I was still on -rc4

https://git.linaro.org/gitweb?p=kernel/linux-linaro-tracking.git;a=commitdiff;h=882503738c0cbef28da55b511913c0c603016e26

...behind the times...   thanks for the fix.

-Andy

On 11 June 2013 21:04, Jon Medhurst (Tixy) t...@linaro.org wrote:
 On Tue, 2013-06-11 at 20:29 +0800, Andy Green wrote:
 Hi -

 If you have a CONFIG_ARCH_MULTIPLATFORM kernel, with big.LITTLE
 configured but running on say, a CA9 system, and you have gator from
 llct, and you insert gator

 Looks like a bug I fixed a week ago...
 https://bugs.launchpad.net/linaro/+bug/1184712

 That fix is now in the llct.

 --
 Tixy


 root@localhost:~# modprobe gator
 [   73.951009] [ cut here ]
 [   73.955673] kernel BUG at
 /projects/linaro/linux-2.6/drivers/gator/gator_iks.c:43!
 [   73.963260] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP THUMB2

 [   73.969392] Modules linked in: gator(+) hid_generic usbhid hid
 f_usb20hdc_otg usbcore f_usb30_udc udc_core usb_common
 [   73.980325] CPU: 1 PID: 1711 Comm: modprobe Not tainted
 3.10.0-linaro_fjslt-tracking-bsp2.0.0-rc1+ #87
 [   73.989678] task: ea395400 ti: ea38a000 task.ti: ea38a000
 [   73.995221] PC is at gator_module_init+0x5f/0xb0 [gator]
 [   74.000594] LR is at of_find_node_by_type+0x33/0x3c
 [   74.005488] pc : [7f8f5070]lr : [801de123]psr: 800f0033
 [   74.005488] sp : ea38be58  ip : 7f8f0090  fp : 7f8efe64
 [   74.016980] r10: 001c  r9 :   r8 : 7f8f5011
 [   74.022211] r7 : 7f8efea0  r6 : 7f8effc0  r5 :   r4 : 
 [   74.028777] r3 : 0002  r2 :   r1 : 400f0013  r0 : 
 [   74.035344] Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA Thumb
 Segment user
 [   74.042706] Control: 50c5387d  Table: a957404a  DAC: 
 [   74.048493]
 [   74.048493] LR: 0x801de0a3:
 [   74.052776] e0a0  f08f4802 4620fb51 bf00bd38 8048f5e0 460eb573
 490d4615 f7ffaa01 4604fe17
 [   74.061000] e0c0  f75ab188 9b01fa7f d80c4298 212c4620 fcd6f756
 1c44b100 46214630 f75a462a
 [   74.069262] e0e0  2000fb6b f06fe001 bd7c0012 8033e4e9 4604b5f8
 460e4d0c f08f4628 4607f9fe
 [   74.077494] e100  e007b104 e006686c b1186860 f75a4631 b110f9bd
 2c006aa4 4803d1f6 f08f4639
 [   74.085713] e120  4620fb2a bf00bdf8 8048f5e0 4604b5f8 460e4d0c
 f08f4628 4607f9e0 e007b104
 [   74.093930] e140  e006686c b1186820 f75a4631 b110f99f 2c006aa4
 4803d1f6 f08f4639 4620fb0c
 [   74.102150] e160  bf00bdf8 8048f5e0 4605b570 6844480a f9c3f08f
 e0064606 b11868e0 f75a4629
 [   74.110371] e180  b110f985 2c006aa4 4803d1f6 f08f4631 4620faf2
 bf00bd70 8048f5e0 460eb570
 [   74.118591] e1a0  21004605 6820e007 4631b118 f96ef75a 4628b130
 f7ff4621 4604fcfb d1f22800
 [   74.126811]
 [   74.126811] SP: 0xea38bdd8:
 [   74.131085] bdd8  001d  80412ab4 ea38be54 
 0001 001d 
 [   74.139301] bdf8  80412ab4 7f8f5072 800f0033  ea38be44
 8000c1e1  400f0013
 [   74.147522] be18   0002   7f8effc0
 7f8efea0 7f8f5011 
 [   74.155738] be38  001c 7f8efe64 7f8f0090 ea38be58 801de123
 7f8f5070 800f0033 
 [   74.163954] be58  7f8f5011  7f8efe58 ea38bf58 0001
 800084f5 7f8f5011 
 [   74.172174] be78  0001 7f8efe58 7f8efe58 ea38bf58 0001
 7f8efea0 ea96fec0 0001
 [   74.180391] be98  001c 8004a4cd 7f8efe64 7fff 80047b3d
 ea38bf1c 0028 
 [   74.188607] beb8   80412434 7f8effac 80271bec f0c54c18
 ea38beec 76f6efa8 2033
 [   74.196835] Process modprobe (pid: 1711, stack limit = 0xea38a238)
 [   74.203022] Stack: (0xea38be58 to 0xea38c000)
 [   74.207384] be40:
 7f8f5011 
 [   74.215579] be60: 7f8efe58 ea38bf58 0001 800084f5 7f8f5011
  0001 7f8efe58
 [   74.223773] be80: 7f8efe58 ea38bf58 0001 7f8efea0 ea96fec0
 0001 001c 8004a4cd
 [   74.231968] bea0: 7f8efe64 7fff 80047b3d ea38bf1c 0028
   80412434
 [   74.240163] bec0: 7f8effac 80271bec f0c54c18 ea38beec 76f6efa8
 2033  ea38bf1c
 [   74.248357] bee0: 5f696261 8000c0b5 f0ca 76e5d000 0305
 7f8edf44 000d 
 [   74.256549] bf00:     
   
 [   74.264740] bf20:     2033
  76d41000 76f6efa8
 [   74.272931] bf40: 0080 8000c764 ea38a000  
 8004a727 f0b84000 0011c385
 [   74.281125] bf60: f0c542b8 f0c54048 f0c9de18 7bfc 9bac
   
 [   74.289315] bf80: 003c 003d 0025  001a
 0022 76f6fbe4 0004
 [   74.297506] bfa0: 77fa81c0 8000c5c1 76f6fbe4 0004 76d41000
 0011c385 76f6efa8 0002
 [   74.305700] bfc0: 76f6fbe4 0004 77fa81c0 0080 77fb0158
  0011c385 
 [   74.313895] bfe0: 76eeec00 7ec74368 76f693ad 76eeec10 8010
 76d41000 ab7dd821 ab7ddc21
 [   74.322199] [7f8f5070] (gator_module_init+0x5f/0xb0 [gator]) from
 [800084f5] (do_one_initcall+0x61/0xd8

Re: Gator with IKS config but not running on big.LITTLE

2013-06-11 Thread Andy Green
No, unfortunately I am evidently ahead of the times ^^ -- your patch
does not fix my bug...

I have a valid DT table, it's just not on a SoC that has big.LITTLE.

mpidr_cpuids_count is 0 and nr_cpu_ids is 2 ...

Instead of using DT being there or not it seems you need to test
something more to do with it being on a big.LITTLE or not...

-Andy

On 11 June 2013 21:23, Jon Medhurst (Tixy) t...@linaro.org wrote:
 On Tue, 2013-06-11 at 21:08 +0800, Andy Green wrote:
 I see... I was still on -rc4

 https://git.linaro.org/gitweb?p=kernel/linux-linaro-tracking.git;a=commitdiff;h=882503738c0cbef28da55b511913c0c603016e26

 ...behind the times...

 Actually, it was also fixed on -rc4 too [1]. From your BUG() output
 below I think you're even more behind the times than you thought ;-)

 [1] 
 https://git.linaro.org/gitweb?p=kernel/linux-linaro-tracking.git;a=shortlog;h=refs/tags/tracking-gator-llct-20130604.0

thanks for the fix.

 -Andy

 On 11 June 2013 21:04, Jon Medhurst (Tixy) t...@linaro.org wrote:
  On Tue, 2013-06-11 at 20:29 +0800, Andy Green wrote:
  Hi -
 
  If you have a CONFIG_ARCH_MULTIPLATFORM kernel, with big.LITTLE
  configured but running on say, a CA9 system, and you have gator from
  llct, and you insert gator
 
  Looks like a bug I fixed a week ago...
  https://bugs.launchpad.net/linaro/+bug/1184712
 
  That fix is now in the llct.
 
  --
  Tixy
 
 
  root@localhost:~# modprobe gator
  [   73.951009] [ cut here ]
  [   73.955673] kernel BUG at
  /projects/linaro/linux-2.6/drivers/gator/gator_iks.c:43!
  [   73.963260] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP THUMB2
 
  [   73.969392] Modules linked in: gator(+) hid_generic usbhid hid
  f_usb20hdc_otg usbcore f_usb30_udc udc_core usb_common
  [   73.980325] CPU: 1 PID: 1711 Comm: modprobe Not tainted
  3.10.0-linaro_fjslt-tracking-bsp2.0.0-rc1+ #87
  [   73.989678] task: ea395400 ti: ea38a000 task.ti: ea38a000
  [   73.995221] PC is at gator_module_init+0x5f/0xb0 [gator]
  [   74.000594] LR is at of_find_node_by_type+0x33/0x3c
  [   74.005488] pc : [7f8f5070]lr : [801de123]psr: 800f0033
  [   74.005488] sp : ea38be58  ip : 7f8f0090  fp : 7f8efe64
  [   74.016980] r10: 001c  r9 :   r8 : 7f8f5011
  [   74.022211] r7 : 7f8efea0  r6 : 7f8effc0  r5 :   r4 : 
  [   74.028777] r3 : 0002  r2 :   r1 : 400f0013  r0 : 
  [   74.035344] Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA Thumb
  Segment user
  [   74.042706] Control: 50c5387d  Table: a957404a  DAC: 
  [   74.048493]
  [   74.048493] LR: 0x801de0a3:
  [   74.052776] e0a0  f08f4802 4620fb51 bf00bd38 8048f5e0 460eb573
  490d4615 f7ffaa01 4604fe17
  [   74.061000] e0c0  f75ab188 9b01fa7f d80c4298 212c4620 fcd6f756
  1c44b100 46214630 f75a462a
  [   74.069262] e0e0  2000fb6b f06fe001 bd7c0012 8033e4e9 4604b5f8
  460e4d0c f08f4628 4607f9fe
  [   74.077494] e100  e007b104 e006686c b1186860 f75a4631 b110f9bd
  2c006aa4 4803d1f6 f08f4639
  [   74.085713] e120  4620fb2a bf00bdf8 8048f5e0 4604b5f8 460e4d0c
  f08f4628 4607f9e0 e007b104
  [   74.093930] e140  e006686c b1186820 f75a4631 b110f99f 2c006aa4
  4803d1f6 f08f4639 4620fb0c
  [   74.102150] e160  bf00bdf8 8048f5e0 4605b570 6844480a f9c3f08f
  e0064606 b11868e0 f75a4629
  [   74.110371] e180  b110f985 2c006aa4 4803d1f6 f08f4631 4620faf2
  bf00bd70 8048f5e0 460eb570
  [   74.118591] e1a0  21004605 6820e007 4631b118 f96ef75a 4628b130
  f7ff4621 4604fcfb d1f22800
  [   74.126811]
  [   74.126811] SP: 0xea38bdd8:
  [   74.131085] bdd8  001d  80412ab4 ea38be54 
  0001 001d 
  [   74.139301] bdf8  80412ab4 7f8f5072 800f0033  ea38be44
  8000c1e1  400f0013
  [   74.147522] be18   0002   7f8effc0
  7f8efea0 7f8f5011 
  [   74.155738] be38  001c 7f8efe64 7f8f0090 ea38be58 801de123
  7f8f5070 800f0033 
  [   74.163954] be58  7f8f5011  7f8efe58 ea38bf58 0001
  800084f5 7f8f5011 
  [   74.172174] be78  0001 7f8efe58 7f8efe58 ea38bf58 0001
  7f8efea0 ea96fec0 0001
  [   74.180391] be98  001c 8004a4cd 7f8efe64 7fff 80047b3d
  ea38bf1c 0028 
  [   74.188607] beb8   80412434 7f8effac 80271bec f0c54c18
  ea38beec 76f6efa8 2033
  [   74.196835] Process modprobe (pid: 1711, stack limit = 0xea38a238)
  [   74.203022] Stack: (0xea38be58 to 0xea38c000)
  [   74.207384] be40:
  7f8f5011 
  [   74.215579] be60: 7f8efe58 ea38bf58 0001 800084f5 7f8f5011
   0001 7f8efe58
  [   74.223773] be80: 7f8efe58 ea38bf58 0001 7f8efea0 ea96fec0
  0001 001c 8004a4cd
  [   74.231968] bea0: 7f8efe64 7fff 80047b3d ea38bf1c 0028
    80412434
  [   74.240163] bec0: 7f8effac 80271bec f0c54c18 ea38beec 76f6efa8
  2033  ea38bf1c
  [   74.248357] bee0: 5f696261 8000c0b5 f0ca 76e5d000 0305
  7f8edf44 000d 
  [   74.256549] bf00:  

Re: Gator with IKS config but not running on big.LITTLE

2013-06-11 Thread Andy Green
Blows chunks the same with this

cpus {
#size-cells = 0;
#address-cells = 1;

cpu@0 {
compatible = arm,cortex-a9;
next-level-cache = L2;
reg = 0;
};
cpu@1 {
compatible = arm,cortex-a9;
next-level-cache = L2;
reg = 1;
};
};

I think it's following Lorenzo's method.

-Andy

On 11 June 2013 22:34, Jon Medhurst (Tixy) t...@linaro.org wrote:
 On Tue, 2013-06-11 at 22:09 +0800, Andy Green wrote:
 Thanks.  This and the similar issue with perf might be telling us a
 global probed SoC capability flag for bL or-ed with the config being
 there might be helpful.

 Now we have accepted DT bindings for cpu nodes [1] perhaps all board's
 device-trees should be updated to use them? I believe that
 'mpidr_cpuids_count is 0 and nr_cpu_ids is 2' means you don't have cpu
 nodes in your device tree?

 And code like gator should use some common kernel functions for looking
 up cpu mappings rather than parsing DT for cpu nodes itself.

 I'll make gator behave one way or the other so it doesn't break on
 platforms with missing cpu node or no IKS.

 [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2013-May/170234.html

 --
 Tixy


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [ANNOUNCE] linux-linaro kernel schedule / llct age

2013-06-04 Thread Andy Green

On 05/06/13 04:05, the mail apparently from Andrey Konovalov included:

On 06/04/2013 03:22 AM, Andy Green wrote:

On 22/05/13 02:48, the mail apparently from Andrey Konovalov included:


The next steps are:
May 22: ll rebuild based on llct-20130521.0
May 23: ll rebuild based on llct-20130521.0, linux-linaro release
candidate, code freeze


The last llct update for this cycle is scheduled on May 21,
The last linux-linaro update for this cycle is scheduled on May 23.
May 23 is the linux-linaro code freeze for 13.05 (only bug fixes
allowed
after this date).


This happened, which is good, but llct has not updated for 3.10-rc3 or
3.10-rc4 yet, which is not good; llct is two weeks old.  Something
similar happened last month.


Agreed. This is not good. And I've pushed the llct updates to fix that.


Thanks.


On the other side, I am considering dropping llct as an intermediate
step when creating the ll tree. The linux-linaro-stable work done in
13.05 shown that topic dependencies may be more complex, and could not
be met by just creating one intermediate tree. The more generic approach
seems to add explicit topic dependencies into the manifest, so that the
tool to merge the topic together would use this information.


I think that might be telling you that you're trying to get one llct 
branch to do too many integration angles at once.


There's certainly a place for a tree that just collects a bunch of 
aligned topic trees like ARMLT vexpress, bl switcher, Androidization and 
binds them standalone.  That's the one we want.


As you do more like solving conflicts between bsp trees you're 
integrating, we don't want to subscribe to that so it's another, 
separate step I think.



Another point to mention, is the proposal to merge the board enablement
topics first, and the generic features next (the LSK case). This would
assume the generic topics to enable their features for all the linaro
supported boards, or adding separate topic to enable the features for
particular boards. This also breaks the current 2-level llct/ll model.


I don't think that's a good idea the problem will be the tree is 
unbuildable from the start when you bind the bsps that depend on the new 
generic features (vexpress for any big.LITTLE...) but only merge in the 
dependencies like vexpress later.


It's better if the tree stays buildable as you go for sanity checks if 
nothing else, merging the generic features without users, then adding 
the users meets that.



Also I am going to more actively use rebasing the topic to their most
recent base w/o topic owners intervention (e.g. like I did for one month
for the Samsung LT's integration topic few cycles ago).
For the topic owners this would mean something like that if their topic
C is based on topics A and B, the topic C must be based on the A and B
tip when submitted to for inclusion into linux-linaro(-whatever) tree,
and after that it will be automatically rebased onto the most recent
version of topic A and B unless there are conflicts requiring the topic
owner's help. This is a very rough idea at the moment - I am not quite
sure if it could even work.


Yeah we started out with TI tree purely doing rebases and it works as a 
flow, although with the - frankly - stupid structure of carrying around 
2,500 patches of other people's rotting junk being enforced it becomes 
hard to manage.


Later I realized we're totally compatible with merge if we get them all 
over with before we rebase our actual bsp tree patches on top as the 
last guys, that's the approach we take now.


Now we have more control over how to arrange the work we completely ban 
out history series of patches in our rebase part for the bsp, we squash 
in topic patches currently limited to just 40 patches, even though a lot 
of work is going on with them.  We use tagging for every working build 
that's notable to allow capture or understanding of the delta.  So the 
problem of slow or unmanageable rebase is eliminated.


This is another sign that the proposal you mentioned above is broken 
though, merge management can only happen underneath the rebase part, so 
you'll need to be be merging the generic trees first...



I realize this isn't the case for everyone but actually the literal
schedule for 13.05 holds zero interest for me.


In long term this should evolve into change log / release notes.
(I do use it for writing the release notes)


Timely updates on llct for each mainline -rc are very interesting
though, in fact we depend on them.


OK. Could you use ll instead of llct, if ll were updated frequently
enough (soon after every -rc at least)?


At the moment with llct I can put my finger on your merges and explain 
what kind of thing we have in our tree inbetween Linus and our bsp 
patches, that is nice.  (We have some extra trees merged in as well 
locally like upstream-headed mailbox series).


Last time we discussed this ll already has other bsps merged in, eg, 
Samsung.  At the moment we're basically

Re: [ANNOUNCE] linux-linaro kernel schedule / llct age

2013-06-03 Thread Andy Green

On 22/05/13 02:48, the mail apparently from Andrey Konovalov included:


The next steps are:
May 22: ll rebuild based on llct-20130521.0
May 23: ll rebuild based on llct-20130521.0, linux-linaro release
candidate, code freeze


The last llct update for this cycle is scheduled on May 21,
The last linux-linaro update for this cycle is scheduled on May 23.
May 23 is the linux-linaro code freeze for 13.05 (only bug fixes allowed
after this date).


This happened, which is good, but llct has not updated for 3.10-rc3 or 
3.10-rc4 yet, which is not good; llct is two weeks old.  Something 
similar happened last month.


I realize this isn't the case for everyone but actually the literal 
schedule for 13.05 holds zero interest for me.


Timely updates on llct for each mainline -rc are very interesting 
though, in fact we depend on them.


Is it possible things have gotten a little unbalanced with all the 
excitement of code freezes, releases, schedules that make the 
choo-choo noises for the monthly release train set, we're not giving the 
llct tracking activity enough love?


-Andy

--
Andy Green | Fujitsu Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Tiny BL switcher compatibility issue with PMU on non-BL SoC

2013-05-30 Thread Andy Green

On 30/05/13 18:50, the mail apparently from Dave Martin included:

On Thu, May 30, 2013 at 10:06:20AM +0800, Andy Green wrote:

Hi -

We're using one kernel binary with BL Switcher enabled in config,
but able to work on SoC without Big Little.

This is OK except where the BL patches touch the PMU driver.  It
makes an assumption about BL configured == in use which is not true.
PMU init fails and when you try to use perf list later, it blows
chunks.

I worked around it with the hack below, so it can fail out from the
bigLITTLE path when it doesn't see the cluster property in DT, but
there's presumably a better way to do that which more directly
checks if we care about BL in this execution environment.

-Andy



Author: Andy Green andy.gr...@linaro.org
Date:   Thu May 30 09:44:17 2013 +0800

 bl switcher fix dont assume bl active in pmu probe

 Signed-off-by: Andy Green andy.gr...@linaro.org

diff --git a/arch/arm/kernel/perf_event_cpu.c
b/arch/arm/kernel/perf_event_cpu.c
index b3ae24f..c02ea21 100644
--- a/arch/arm/kernel/perf_event_cpu.c
+++ b/arch/arm/kernel/perf_event_cpu.c
@@ -440,6 +440,9 @@ static int cpu_pmu_device_probe(struct
platform_device *pdev)
 hwid = of_get_property(ncluster, reg, len);
 if (hwid  len == 4)
 cluster = be32_to_cpup(hwid);
+   } else {
+   ret = probe_current_pmu(pmu);
+   goto bail;


Can you provide logs?


If you really want them, but ---


Why is the DT different for MP versus IKS?


That is not the issue (nor did I mention IKS anywhere...), we are using 
CONFIG_ARCH_MULTIPLATFORM and supporting SoCs based on CA9 and SoCs with 
other things.  In the case I'm talking about, the kernel with 
big.LITTLE configured on finds itself waking up on a CA9 box.



It is incorrect for the DT to be different, because the hardware is
exactly the same in both cases.

If the DT isn't different, then can you elaborate on what is fixed
by this change?


The bug where having BL_SWITCHER configured on has gotten mixed up with 
the idea that the kernel must therefore be running on a bL SoC, for PMU 
purposes.  In a CONFIG_ARCH_MULTIPLATFORM world, that ain't so.


I think the bug is smaller and less interesting than you're giving it 
credit for ^^ but it's still something that should be fixed.


-Andy


You may be getting affected by the fact that we're relying on non-
pstreamed DT bindings to describe the PMUs in the system.  Discussions
upstream are taking a different direction, so this code is going to
get substantially rewritten at some point.  The perf support for IKS
is a big hack at the moment...  Unfortunately, I have ongoing
distractions which mean that progress on this is mostly stalled
right now.

There is also a separate problem caused by a recent change to the IKS
code which breaks the perf support's assumptions about what physical/
logical CPU mappings are possible.  I need to fix this, but it's not
done yet...  If you are using up-to-date IKS code, it's possible you're
hitting this issue.

Cheers
---Dave


 }
 /* set sibling mask to all cpu mask if socket is not
specified */
 /*
@@ -501,7 +504,7 @@ static int cpu_pmu_device_probe(struct
platform_device *pdev)
 } else {
 ret = probe_current_pmu(pmu);
 }
-
+bail:
 if (ret)
 goto error;



--
Andy Green | Fujitsu Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  -
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev



--
Andy Green | Fujitsu Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Tiny BL switcher compatibility issue with PMU on non-BL SoC

2013-05-29 Thread Andy Green

Hi -

We're using one kernel binary with BL Switcher enabled in config, but 
able to work on SoC without Big Little.


This is OK except where the BL patches touch the PMU driver.  It makes 
an assumption about BL configured == in use which is not true.  PMU init 
fails and when you try to use perf list later, it blows chunks.


I worked around it with the hack below, so it can fail out from the 
bigLITTLE path when it doesn't see the cluster property in DT, but 
there's presumably a better way to do that which more directly checks if 
we care about BL in this execution environment.


-Andy



Author: Andy Green andy.gr...@linaro.org
Date:   Thu May 30 09:44:17 2013 +0800

bl switcher fix dont assume bl active in pmu probe

Signed-off-by: Andy Green andy.gr...@linaro.org

diff --git a/arch/arm/kernel/perf_event_cpu.c 
b/arch/arm/kernel/perf_event_cpu.c

index b3ae24f..c02ea21 100644
--- a/arch/arm/kernel/perf_event_cpu.c
+++ b/arch/arm/kernel/perf_event_cpu.c
@@ -440,6 +440,9 @@ static int cpu_pmu_device_probe(struct 
platform_device *pdev)

hwid = of_get_property(ncluster, reg, len);
if (hwid  len == 4)
cluster = be32_to_cpup(hwid);
+   } else {
+   ret = probe_current_pmu(pmu);
+   goto bail;
}
/* set sibling mask to all cpu mask if socket is not 
specified */

/*
@@ -501,7 +504,7 @@ static int cpu_pmu_device_probe(struct 
platform_device *pdev)

} else {
ret = probe_current_pmu(pmu);
}
-
+bail:
if (ret)
goto error;



--
Andy Green | Fujitsu Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: arm-probe (with ARM Energy probe)

2013-05-27 Thread Andy Green

On 27/05/13 16:53, the mail apparently from Robert Brehm included:

Hi,

I have downloaded and compiled/installed (on Ubuntu 12.04  the arm-probe
from: https://git.linaro.org/gitweb?p=tools/arm-probe.git;a=tree

Now I am facing some issues using the tool. My Arm Energy Probe shows up
as virtual serial port as /dev/ttyACM0 and I am able to open that port via “

# sudo screen /dev/ttyACM0

and when I “ctrl-c” in screen I get a response from the energy probe
saying “ARM Energy Probe”. So the probe should be working fine.

If I however run

# arm-probe –c ch1

All it just shows is the blelow, there are no data streamed out at all:

# configuration: ./config
# config_name: K70-SOM
# trigger: 0.40V (hyst 0.20V) 0.00W (hyst 0.20W) 400us
Configuration: K70-SOM
# date: Fri, 24 May 2013 15:45:57 +0200
# host: rb
#

This is the content of my configuration file:

# arm-probe configuration file
#
# setup name
K70-SOM
/dev/ttyACM0
  ch1 0.470 1 -0.000253 0 VCORE1/MPU
  ch2 0.470 2 -0.000253 0 VCORE1/MPU
  ch3 0.470 3 -0.000253 0 VCORE1/MPU


Have you tried using the config file here?

https://git.linaro.org/gitweb?p=tools/arm-probe.git;a=blob;f=config;h=2daed868003999ec3da619a4b0ebc9b4c11b6b6f;hb=HEAD

It changed recently to use /dev/serial/by-id/... and instead of polling 
for AEPs just collect all the ones mentioned.


-Andy

--
Andy Green | Fujitsu Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: arm-probe (with ARM Energy probe)

2013-05-27 Thread Andy Green
On 28/05/13 00:06, the mail apparently from Robert Brehm included:
 Just tried with the config example (but also had tried that earlier already) 
 - however, no success.
   
 It also still doesn't complain if I just run it without the AEP or I unplug 
 the AEP while arm-probe is running - there is no difference to the output.

No it won't complain just wait until it has seen all the AEPs mentioned
in the config file before starting.

Using exactly what's pushed to git 

$ arm-probe
# configuration: ./config
# config_name: PandaBoardES-B1-ANDY
# trigger: 0.40V (hyst 0.20V) 0.00W (hyst 0.20W) 400us
Configuration: PandaBoardES-B1-ANDY
# date: Tue, 28 May 2013 08:05:36 +0800
# host: kaiji
#
+ /dev/serial/by-id/usb-NXP_SEMICOND_ARM_Energy_Probe_S_NO-if00
Starting...
sending start to 0
# VDD_VCORE1SoCVCORE1/MPU   VBAT#ff SoC
# VDD_VCORE2SoCVCORE2/IVA\\_AUDIO   VBAT#c0 SoC
# VDD_VCORE3SoCVCORE3/CORE  VBAT#a0 SoC
# VBAT  VBATDC_IN   #55 virtual
#
#
time  SoCVCORE1/MPU(V) SoCVCORE1/MPU(A) SoCVCORE1/MPU(W)
SoCVCORE2/IVA\\_AUDIO(V) SoCVCORE2/IVA\\_AUDIO(A)
SoCVCORE2/IVA\\_AUDIO(W) SoCVCORE3/CORE(V) SoCVCORE3/CORE(A)
SoCVCORE3/CORE(W)
ARMED  0.17 0. 0.0 0.16 0. 0.0 0.15 0. 0.0
ARMED  0.15 0.0036 0.00053 0.17 0. 0.0 0.17 0. 0.0
ARMED  0.16 0. 0.0 0.17 0. 0.0 0.16 0.0024 0.00037
ARMED  0.16 0.0036 0.00057 0.17 0. 0.0 0.15 0. 0.0
ARMED  0.17 0. 0.0 0.15 0.0015 0.00023 0.16 0. 0.0
ARMED  0.17 0. 0.0 0.16 0. 0.0 0.17 0. 0.0
ARMED  0.16 0. 0.0 0.16 0.0022 0.00035 0.17 0. 0.0
ARMED  0.16 0. 0.0 0.16 0. 0.0 0.15 0.0007 0.00011
ARMED  0.18 0. 0.0 0.15 0. 0.0 0.15 0.0018 0.00027
ARMED  0.17 0. 0.0 0.15 0.0015 0.00023 0.17 0. 0.0
ARMED  0.17 0. 0.0 0.16 0. 0.0 0.15 0.0030 0.00047
ARMED  0.17 0. 0.0 0.16 0. 0.0 0.16 0.0028 0.00045
ARMED  0.17 0. 0.0 0.15 0. 0.0 0.16 0.0024 0.00037
ARMED  0.17 0.0013 0.00022 0.17 0. 0.0 0.15 0. 0.0
ARMED  0.17 0. 0.0 0.16 0. 0.0 0.15 0. 0.0
ARMED  0.18 0. 0.0 0.16 0. 0.0 0.16 0. 0.0
ARMED  0.16 0.0004 0.6 0.17 0. 0.0 0.16 0. 0.0
ARMED  0.18 0. 0.0 0.17 0. 0.0 0.14 0.0003 0.4
ARMED  0.16 0.0063 0.00102 0.17 0. 0.0 0.16 0. 0.0
ARMED  0.16 0.0036 0.00056 0.16 0. 0.0 0.16 0. 0.0
ARMED  0.17 0. 0.0 0.16 0. 0.0 0.16 0. 0.0
ARMED  0.18 0. 0.0 0.16 0. 0.0 0.15 0.0018 0.00027
ARMED  0.15 0. 0.0 0.17 0. 0.0 0.16 0.0001 0.1
ARMED  0.17 0.0049 0.00082 0.17 0. 0.0 0.15 0. 0.0
ARMED  0.16 0.0063 0.00102 0.17 0. 0.0 0.15 0. 0.0
ARMED  0.16 0. 0.0 0.14 0.0028 0.00040 0.17 0. 0.0
ARMED  0.17 0.0027 0.00044 0.17 0. 0.0 0.15 0. 0.0
ARMED  0.17 0.0036 0.00060 0.17 0. 0.0 0.15 0. 0.0
ARMED  0.16 0.0059 0.00092 0.17 0. 0.0 0.16 0. 0.0
ARMED  0.16 0. 0.0 0.16 0.0028 0.00043 0.17 0. 0.0
ARMED  0.16 0. 0.0 0.15 0.0015 0.00023 0.16 0. 0.0
ARMED  0.16 0. 0.0 0.17 0. 0.0 0.16 0. 0.0
ARMED  0.16 0. 0.0 0.16 0.0015 0.00023 0.16 0. 0.0
ARMED  0.16 0.0036 0.00057 0.17 0. 0.0 0.16 0. 0.0
ARMED  0.18 0.0013 0.00023 0.16 0. 0.0 0.15 0. 0.0
ARMED  0.16 0. 0.0 0.16 0. 0.0 0.15 0.0028 0.00043
ARMED  0.17 0. 0.0 0.17 0. 0.0 0.16 0.0020 0.00031
ARMED  0.17 0. 0.0 0.15 0. 0.0 0.15 0.0030 0.00046
ARMED  0.16 0. 0.0 0.17 0.0011 0.00018 0.17 0. 0.0
^C

  VDD_VCORE1:  0.14V  0.165Vavg  0.20V, 0.A  0.00091Aavg 
0.0063A,  0.00W   0.000146Wavg   0.001208W
  VDD_VCORE2:  0.13V  0.162Vavg  0.19V, 0.A  0.00037Aavg 
0.0032A,  0.00W   0.58Wavg   0.000512W
  VDD_VCORE3:  0.13V  0.159Vavg  0.19V, 0.A  0.00043Aavg 
0.0030A,  0.00W   0.67Wavg   0.000544W
exited


I noticed that on this laptop with USB3 ports, AEP won't work plugged in
direct (LMP, using a similar NXP chip are the same).  They need to be
connected via a USB2 hub in order to work.  Maybe that's something to do
with it.

-Andy

 
 From: Andy Green [andy.gr...@linaro.org]
 Sent: 27 May 2013 14:14
 To: Robert Brehm
 Cc: linaro-dev@lists.linaro.org
 Subject: Re: arm-probe (with ARM Energy probe)
 
 On 27/05/13 16:53, the mail apparently from Robert Brehm included:
 Hi,

 I have downloaded and compiled/installed (on Ubuntu 12.04  the arm-probe
 from: https://git.linaro.org/gitweb?p=tools/arm-probe.git;a=tree

 Now I am facing some issues using the tool. My Arm Energy Probe shows up
 as virtual serial port as /dev/ttyACM0 and I am able to open that port via “

 # sudo screen /dev

Re: [ANNOUNCE] linux-linaro kernel schedule for 13.05 published

2013-05-15 Thread Andy Green

On 16/05/13 02:59, the mail apparently from Andrey Konovalov included:

On 05/15/2013 12:04 AM, Andrey Konovalov wrote:

https://wiki.linaro.org/Platform/DevPlatform/LinuxLinaroKernelSchedule

The 13.05 linux-linaro release will be v3.10-rc2 based,


May 15: v3.10-rc1 based linux-linaro-core-tracking (llct) rebuild


Thanks Andrey, we were looking forward to that.

-Andy


* Done: the tag is llct-20130515.1
* Changes:
  . the 3.8-based binder topic re-added
  . kernel/printk.c: build error in CONFIG_DEBUG_LL=y case fixed
  . ARM: crypto: sha1-armv4-large.S: fix SP handling patch needed to
enable CONFIG_CRYPTO_SHA1_ARM

The next step is:
May 16: ll rebuild based on llct-20130515.1


The last llct update for this cycle is scheduled on May 21,
The last linux-linaro update for this cycle is scheduled on May 23.
May 23 is the linux-linaro code freeze for 13.05 (only bug fixes allowed
after this date).


Thanks,
Andrey


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev



--
Andy Green | Fujitsu Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: automated build coverage

2013-05-13 Thread Andy Green

On 13/05/13 16:12, the mail apparently from Nicolas Dechesne included:


On Thu, May 9, 2013 at 7:56 PM, Fathi Boudra fathi.bou...@linaro.org
mailto:fathi.bou...@linaro.org wrote:

  Hi all,
 
  I just wanted to forward this thread from LAKML to linaro-dev:
  http://article.gmane.org/gmane.linux.ports.tegra/10683
 
  Seems there is lots desire for an improvement to automated build
  coverage and automated reporting along with it.

I replied to it. We've got already such daily builds with boot
testing: https://ci.linaro.org/jenkins/view/kernel-ci

I'm surprised that some people involved in Linaro and this thread
didn't mentioned it.
Anyway, it's a good opportunity to remind people that we've got a
Kernel CI and I'll be happy to get more feedback to improve it.


Hi Fathi,

I have to admit that what we do in terms of Kernel CI is still a bit
fuzzy to me, even now that I am an insider. When I was at TI and working
closely with the TI Landing team, I don't believe we ever reached the
point where Linaro kernel CI was useful for the 'products' we were
jointly doing. Now that I am at Linaro, I am going to need LAVA and
kernel CI for our project shortly. I have no doubt that what is being is
worthwhile, but I believe a little bit of marketing and/or presentation
would be very welcome. It might be nice to highlight the bugs that have
been found (and fixed?) *thanks to* Linaro kernel CI too, for example.
also in the link above all of the 7 'active' jobs are failing with 3 of
them who always failed, and 2 of them failing for 2 weeks. so it's not
clear what that means. i am sure it doesn't mean that none of our kernel
ever boots ;-) if we want Kernel CI to be useful and kernel devs to rely
on it, it should work all the time, so that failure are quickly
identified and fixed. maybe this is why Linaro Kernel CI was not
mentioned by Linaro people in that thread.


I think TI use of CI only evolved as far as compiling the thing, it's 
not hooked up to any actual testing.


The error mails we are still getting spammed with are partly my fault.

Previously, LAVA would remain silent if a build failed.  That is quite a 
bad situation if you're committing to that tree, and the last thing you 
heard was everything is good then the build machine has a problem and 
stops testing.  You can have committed something that broke build even, 
but continue thinking everything is good because nothing is telling you 
that it's not actually in test any more.


So after some prompting from me pointing out that false sense of 
security undermines the point of LAVA, now we get notifications that the 
build attempt failed.  However since I didn't touch tilt-3.4 or 
tilt-tracking for months, it's surprising the number of failure reports 
we periodically get that are basically Lava infrastructure choking on 
trying to build it, not any actual problems.


-Andy

--
Andy Green | Fujitsu Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Mali-ization

2013-04-17 Thread Andy Green

On 17/04/13 19:11, the mail apparently from Jon Medhurst (Tixy) included:

On Wed, 2013-04-17 at 16:28 +0530, Tushar Behera wrote:

On 04/16/2013 09:46 AM, Andy Green wrote:

On 16/04/13 10:08, the mail apparently from Selina Kuo included:

Hi, John,

Your assumption is right. The ump code is part of the out-of-tree mali
driver.


- Selina Kuo, one of Andy's colleagues ^^


As Selina says it's a code drop we got via Fujitsu from ARM for the OOT
Mali driver.

However that code is all GPL2, as it should be.

I think any of the options are good,

  - make our own repo and keep it in sync with llct

  - privately encourage ARM to keep it in sync with Linus' HEAD, publicly

  - upstream it so it's always in sync

This obviously helps of all LT who want to / can harmonize their tree on
llct basis.

Tushar, do you have any opinion?



It would always help to have the Mali driver synced with latest upstream
and getting merged into 'llct'. The LT's who need to use this driver can
have their modifications (if any) on top of it.


Each LT will have to make sure that their changes are suitably guarded
with #ifdefs to avoid stepping on each other's toes. But then that isn't
going to work with a multi-platform kernel. So the changes are going to
need to be made run-time configurable based on device-tree or something.
Speaking of device-tree, do the Mali drivers have device-tree support?


Nope... this will be a basis that other branches patch on top of if they 
want to modify.


If it does happen that xyz-LT had special sauce, they'll have a branch 
like xyz-mali-t6xx-tracking which is  mali-t6xx-tracking with their 
patches on top, and they'll follow by rebase.


Having been there before and survived 2,500 patch loads on top of a 
rebase tree, trust me this one is trivial to deal with.


Obviously it is nicer if eventually the changes for supporting different 
IP revisions cleanly, and any member special sauces (if any) are merged 
in one tree.  But it is not necessary and everyone is ahead just by 
having a basis tree for the OOT module that actually builds againt llct, 
as Tushar noted.


-Andy

--
Andy Green | Fujitsu Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Mali-ization

2013-04-16 Thread Andy Green

On 16/04/13 14:29, the mail apparently from Jon Medhurst (Tixy) included:

On Tue, 2013-04-16 at 12:16 +0800, Andy Green wrote:

On 16/04/13 10:08, the mail apparently from Selina Kuo included:

Hi, John,

Your assumption is right. The ump code is part of the out-of-tree mali driver.


- Selina Kuo, one of Andy's colleagues ^^


As Selina says it's a code drop we got via Fujitsu from ARM for the OOT
Mali driver.

However that code is all GPL2, as it should be.


I assume it's not for as yet unreleased IP and under NDA or anything.
(Just thought I would throw that in there.)


Is T624 secret for ARM atm?

It's just the kernelside bits we're talking about not the userland.


I think any of the options are good,

   - make our own repo and keep it in sync with llct

   - privately encourage ARM to keep it in sync with Linus' HEAD, publicly

   - upstream it so it's always in sync

This obviously helps of all LT who want to / can harmonize their tree on
llct basis.

Tushar, do you have any opinion?

Anyone who dealt with this code or at ARM (Tixy?)


I've never dealt with this code but one thing occurs to me: how would
you manage the user side binary blob? If different members have
different versions of the blobs (or have tweaked them) are they all
going to work with a common version of the kernel driver or have
different members tweaked things for there own needs?


It's an issue but it is a bit separate.

If they will build their userland to work with a particular kernel + 
module at all, they all need to have module sources that work against 
that kernel to start with.  Right now if what we have is representative, 
it's pretty lagging in that regard.


So this effort will give them a starting point that always builds (and 
hopefully works) they can maintain patches on top of.  It's not for 
unifying all variations, unless people want to contribute and maintain them.


It's still enough that they can approach tracking Linus HEAD knowing 
they only need to take care of their patch content for uplevel purposes, 
and not take care of the bulk of the module.


-Andy

--
Andy Green | Fujitsu Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Mali-ization

2013-04-16 Thread Andy Green

On 16/04/13 17:39, the mail apparently from Selina Kuo included:

On 16 April 2013 16:20, Andy Green andy.gr...@linaro.org wrote:

On 16/04/13 14:29, the mail apparently from Jon Medhurst (Tixy) included:


On Tue, 2013-04-16 at 12:16 +0800, Andy Green wrote:


On 16/04/13 10:08, the mail apparently from Selina Kuo included:


Hi, John,

Your assumption is right. The ump code is part of the out-of-tree mali
driver.


- Selina Kuo, one of Andy's colleagues ^^



As Selina says it's a code drop we got via Fujitsu from ARM for the OOT
Mali driver.

However that code is all GPL2, as it should be.



I assume it's not for as yet unreleased IP and under NDA or anything.
(Just thought I would throw that in there.)



Is T624 secret for ARM atm?


It's not secret for ARM. The latest version of MaliT624 kernel driver
was released on 2013 March.
http://malideveloper.arm.com/develop-for-mali/drivers/open-source-mali-t6xx-gpu-kernel-device-drivers/

The latest version on website is the same with the latest one which I
got via Fujitsu from ARM.


Thanks... since that ARM page makes it clear it is GPL2, I pushed it here

https://git.linaro.org/gitweb?p=landing-teams/working/fujitsu/mali-t6xx-tracking.git;a=summary

with our modifications as a starting point.

-Andy



It's just the kernelside bits we're talking about not the userland.



I think any of the options are good,

- make our own repo and keep it in sync with llct

- privately encourage ARM to keep it in sync with Linus' HEAD,
publicly

- upstream it so it's always in sync

This obviously helps of all LT who want to / can harmonize their tree on
llct basis.

Tushar, do you have any opinion?

Anyone who dealt with this code or at ARM (Tixy?)



I've never dealt with this code but one thing occurs to me: how would
you manage the user side binary blob? If different members have
different versions of the blobs (or have tweaked them) are they all
going to work with a common version of the kernel driver or have
different members tweaked things for there own needs?



It's an issue but it is a bit separate.

If they will build their userland to work with a particular kernel + module
at all, they all need to have module sources that work against that kernel
to start with.  Right now if what we have is representative, it's pretty
lagging in that regard.

So this effort will give them a starting point that always builds (and
hopefully works) they can maintain patches on top of.  It's not for unifying
all variations, unless people want to contribute and maintain them.

It's still enough that they can approach tracking Linus HEAD knowing they
only need to take care of their patch content for uplevel purposes, and not
take care of the bulk of the module.

-Andy


--
Andy Green | Fujitsu Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  -
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog



--
Andy Green | Fujitsu Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Mali-ization

2013-04-15 Thread Andy Green

On 16/04/13 10:08, the mail apparently from Selina Kuo included:

Hi, John,

Your assumption is right. The ump code is part of the out-of-tree mali driver.


- Selina Kuo, one of Andy's colleagues ^^


As Selina says it's a code drop we got via Fujitsu from ARM for the OOT 
Mali driver.


However that code is all GPL2, as it should be.

I think any of the options are good,

 - make our own repo and keep it in sync with llct

 - privately encourage ARM to keep it in sync with Linus' HEAD, publicly

 - upstream it so it's always in sync

This obviously helps of all LT who want to / can harmonize their tree on 
llct basis.


Tushar, do you have any opinion?

Anyone who dealt with this code or at ARM (Tixy?)

FWIW our TSC rep is aware of this and I believe would support whatever 
the best-looking of these solutions is.


-Andy


On 16 April 2013 07:50, John Stultz john.stu...@linaro.org wrote:

On 04/13/2013 03:22 AM, Andy Green wrote:


On 13/04/13 09:07, the mail apparently from Andy Green included:


I'm hoping someone else will write the patches ^^  but if not I'll try
to sort something out.



The attached series gets it building cleanly against current llct with
ION.



Cool. Although the patches look like they are all against the ump
driver(which I'm not familiar with), as opposed to changes to the ION
infrastructure itself. So they won't apply to the AOSP trees, and I can't
send them upstream.

I assume the ump code is part of the out-of-tree mali driver? Looking at
llct, I don't see a drivers/base/ump directory.

https://git.linaro.org/gitweb?p=kernel/linux-linaro-tracking.git;a=tree;f=drivers/base;h=cbad2d664fa248ec366430dbd1724b2959ae43ee;hb=refs/heads/linux-linaro-core-tracking

But I'm guessing this is the point of your original mail in this thread: we
need a mali tree upon which fixes like these can be applied and then pulled
into llct.

Or even better, can we get the mali devs to publish a repo of their latest
work (to which fixes like Andy's can be submitted to) which can also be
pulled into llct?

thanks
-john



___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev



--
Andy Green | Fujitsu Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Mali-ization

2013-04-14 Thread Andy Green

On 13/04/13 18:22, the mail apparently from Andy Green included:

On 13/04/13 09:07, the mail apparently from Andy Green included:


I'm hoping someone else will write the patches ^^  but if not I'll try
to sort something out.


The attached series gets it building cleanly against current llct with ION.

It can't be tested on my side atm.

There's one funny,

WARNING: v7_dma_flush_range
[/projects/linaro/mali-t624/kernel/drivers/base/ump/src/ump.ko] undefined!

that does seem to still be around in arch/arm/mm/cache-v7.S, maybe it's
not exported suitably or I missed the point (and perhaps someone who
recognizes this kind of thing can educate me).


The version we got is not Device Tree -ready either.

The probe() in

 gpu/arm/t6xx/kbase/src/linux/mali_kbase_core_linux.c

insists on platform_data.

However they seems to use an accessor kbasep_get_config_value() in

 gpu/arm/t6xx/kbase/src/common/mali_kbase_config.c

to touch that structured platform_data in a way that would make it 
simple to add DT support.


The code doesn't conform to kernel style much, but that's not hard to 
fix... has anyone thought of actually upstreaming this?


-Andy

--
Andy Green | Fujitsu Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Mali-ization

2013-04-13 Thread Andy Green

On 13/04/13 09:07, the mail apparently from Andy Green included:


I'm hoping someone else will write the patches ^^  but if not I'll try
to sort something out.


The attached series gets it building cleanly against current llct with ION.

It can't be tested on my side atm.

There's one funny,

WARNING: v7_dma_flush_range 
[/projects/linaro/mali-t624/kernel/drivers/base/ump/src/ump.ko] undefined!


that does seem to still be around in arch/arm/mm/cache-v7.S, maybe it's 
not exported suitably or I missed the point (and perhaps someone who 
recognizes this kind of thing can educate me).


-Andy

--
Andy Green | Fujitsu Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


clean-mali-t624.tar.gz
Description: application/gzip
___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Mali-ization

2013-04-12 Thread Andy Green

Hi -

At the moment the Mali T624 OOT module sources I have do not build 
against 3.9-rcX / linux-linaro-core-tracking.  A colleague checked it 
and it does build against 3.4.  The problems I saw are around ION 
compatibility but they didn't look tremendously bad.


I could work around the problems myself, but it seems to me this might 
be something that Linaro could solve centrally, dealing with it using 
the Androidization model - sync a Linaro repo against code drops coming 
from upstream, ie, ARM, but keep it always building against llct 
inbetween.  Perhaps even inside llct.


I know we're not the only LT in this boat, Anmar mentioned Arndale 
acceleration is pending, a central Mali-ization tree will also solve 
that, especially if it's always there and always building in llct already.


There may be stuff to take care about for support for different IP 
revision.  But there aren't that many AFAIK.


How does this sound to folks?

-Andy

--
Andy Green | Fujitsu Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Mali-ization

2013-04-12 Thread Andy Green

On 13/04/13 08:50, the mail apparently from John Stultz included:

On 04/12/2013 05:34 PM, Andy Green wrote:

Hi -

At the moment the Mali T624 OOT module sources I have do not build
against 3.9-rcX / linux-linaro-core-tracking.  A colleague checked it
and it does build against 3.4.  The problems I saw are around ION
compatibility but they didn't look tremendously bad.


Any details on what the ION compatibility issues are?


Build with ION looks like this atm

pwd=/projects/linaro/mali-t624/kernel/drivers/gpu/arm/t6xx/kbase
make -C 
/projects/linaro/mali-t624/kernel/drivers/gpu/arm/t6xx/kbase/../../../../../../kernel/drivers/base/kds
make[1]: Entering directory 
`/projects/linaro/mali-t624/kernel/drivers/base/kds'
make ARCH=arm -C /projects/linaro/mali-t624/kernel/../../linux-2.6/panda 
M=/projects/linaro/mali-t624/kernel/drivers/base/kds 
EXTRA_CFLAGS=-I/projects/linaro/mali-t624/kernel/drivers/base/kds/../../../include 
CONFIG_KDS=m

make[2]: Entering directory `/projects/linaro/linux-2.6/panda'
  LD  /projects/linaro/mali-t624/kernel/drivers/base/kds/built-in.o
  CC [M]  /projects/linaro/mali-t624/kernel/drivers/base/kds/kds.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC  /projects/linaro/mali-t624/kernel/drivers/base/kds/kds.mod.o
  LD [M]  /projects/linaro/mali-t624/kernel/drivers/base/kds/kds.ko
make[2]: Leaving directory `/projects/linaro/linux-2.6/panda'
make[1]: Leaving directory 
`/projects/linaro/mali-t624/kernel/drivers/base/kds'
make -C 
/projects/linaro/mali-t624/kernel/drivers/gpu/arm/t6xx/kbase/../../../../../../kernel/drivers/base/ump/src
make[1]: Entering directory 
`/projects/linaro/mali-t624/kernel/drivers/base/ump/src'
make ARCH=arm -C /projects/linaro/mali-t624/kernel/../../linux-2.6/panda 
M=/projects/linaro/mali-t624/kernel/drivers/base/ump/src 
EXTRA_CFLAGS=-I/projects/linaro/mali-t624/kernel/drivers/base/ump/src/../../../../include 
-DCONFIG_UMP -DCONFIG_MALI_DEBUG -DCONFIG_MALI_PLATFORM_FAKE 
-DCONFIG_MALI_PLATFORM_VEXPRESS -DCONFIG_MALI_UNCACHED 
-DCONFIG_MALI_GATOR_SUPPORT -DCONFIG_KDS CONFIG_UMP=m 
KBUILD_EXTRA_SYMBOLS= 
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/../../../../../kernel/drivers/base/kds/Module.symvers 
modules

make[2]: Entering directory `/projects/linaro/linux-2.6/panda'
  CC [M] 
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/common/ump_kernel_core.o
  CC [M] 
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/common/ump_kernel_descriptor_mapping.o
  CC [M] 
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/linux/ump_kernel_linux.o
  CC [M] 
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/linux/ump_kernel_linux_mem.o

  LD [M]  /projects/linaro/mali-t624/kernel/drivers/base/ump/src/ump.o
  CC [M] 
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/imports/ion/ump_kernel_import_ion.o
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/imports/ion/ump_kernel_import_ion.c: 
In function ‘import_ion_client_create’:
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/imports/ion/ump_kernel_import_ion.c:52:2: 
warning: passing argument 2 of ‘ion_client_create’ makes pointer from 
integer without a cast [enabled by default]
In file included from 
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/imports/ion/ump_kernel_import_ion.c:17:0:
/projects/linaro/linux-2.6/include/linux/ion.h:128:20: note: expected 
‘const char *’ but argument is of type ‘unsigned int’
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/imports/ion/ump_kernel_import_ion.c:52:2: 
error: too many arguments to function ‘ion_client_create’
In file included from 
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/imports/ion/ump_kernel_import_ion.c:17:0:

/projects/linaro/linux-2.6/include/linux/ion.h:128:20: note: declared here
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/imports/ion/ump_kernel_import_ion.c: 
In function ‘import_ion_final_release_callback’:
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/imports/ion/ump_kernel_import_ion.c:79:2: 
error: implicit declaration of function ‘ion_unmap_dma’ 
[-Werror=implicit-function-declaration]
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/imports/ion/ump_kernel_import_ion.c: 
In function ‘import_ion_import’:
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/imports/ion/ump_kernel_import_ion.c:112:2: 
error: implicit declaration of function ‘ion_import_fd’ 
[-Werror=implicit-function-declaration]
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/imports/ion/ump_kernel_import_ion.c:112:23: 
warning: assignment makes pointer from integer without a cast [enabled 
by default]
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/imports/ion/ump_kernel_import_ion.c:119:2: 
error: implicit declaration of function ‘ion_map_dma’ 
[-Werror=implicit-function-declaration]
/projects/linaro/mali-t624/kernel/drivers/base/ump/src/imports/ion/ump_kernel_import_ion.c:119:19: 
warning: assignment makes pointer from integer without a cast [enabled

Re: kernel NULL pointer dereference

2013-01-28 Thread Andy Green

On 28/01/13 21:10, the mail apparently from Renato Golin included:

On 28 January 2013 12:43, Andy Green andy.gr...@linaro.org
mailto:andy.gr...@linaro.org wrote:

Without this or something doing a similar deal, a Panda ES will blow
chunks after a short period at 1.2GHz.


Hi Andy,

I agree kernel panic is better than blowing up the board, but that might
indicate the scaling is not working very well.

Also, does that mean I should not use the 12.02 image because the risk
of blowing up my board?


No, blowing chunks (slang for vomiting) is different than blowing 
up... the 4460 has a separate comparator that is able to reset the SoC 
if it gets really too hot.


It will crash colourfully before then is what I mean, unless one of 
these thermal mechanisms is helping.  It varies by chip actually, some 
can idle at 1.2GHz for a long time before choking others crash in a few 
seconds.


I can't really remember the status a year ago, we had it working a while 
before Panda ES was available IIRC.  I did not hear of any actually 
burned 4460, I think the reset mechanism will save it.  Tilt-3.3 and 
-3.4 should be fine at least.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Fwd: Re: Fwd: trouble using wifi on Linaro Ubuntu for Pandaboard

2012-11-21 Thread Andy Green




 Original Message 
Subject:Re: Fwd: trouble using wifi on Linaro Ubuntu for Pandaboard
Date:   Sun, 18 Nov 2012 22:13:57 -0800 (PST)
From:   Alex Stefanescu stefane...@rice.edu
Reply-To:   Alex Stefanescu stefane...@rice.edu
To: Andy Green andy.gr...@linaro.org




Thank you for the reply.

It worked!

--
Alex Stef


*From:* Andy Green andy.gr...@linaro.org
*To:* Fathi Boudra fathi.bou...@linaro.org
*Cc:* Alex Stefanescu stefane...@rice.edu; linaro-dev
linaro-dev@lists.linaro.org
*Sent:* Sunday, November 18, 2012 9:21 PM
*Subject:* Re: Fwd: trouble using wifi on Linaro Ubuntu for Pandaboard

On 11/18/12 16:24, the mail apparently from Fathi Boudra included:
  Wrong mailing list, forwarding lo linaro-dev
 
  -- Forwarded message --
  From: Alex Stefanescu stefane...@rice.edu mailto:stefane...@rice.edu
  Date: 18 November 2012 02:09
  Subject: trouble using wifi on Linaro Ubuntu for Pandaboard
 
  Hello,
 
  I'm having trouble connecting to wifi on the Linaro Ubuntu releases
  for the Pandaboard. I've tried with both 12.10 and 12.09 releases,
  which are listed to have passed the wifi test.
...
  I'm using Pandaboard with OMAP4430 and wl1271 wlan chipset.
 
  I've also tried running wpa_supplicant manually to connect to both the
  same open network, or another one secured with WPA2 (I used the
  wpa_supplicant.conf from an Android phone so I'm pretty sure it was
  correct) and I have the same issue. There is also a wpa_supplicant
  always running in the background, does it matter?

Yes you can't have two wpa_supplicants fighting over the state of the
same wireless interface.

The by hand method for the WPA2 network --

# service network-manager stop
# wpa_passphrase Rice Visitor  /etc/wpa_supplicant/wpa_supplicant.conf

(type the AP passphrase and enter)

# wpa_supplicant -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf 

(should associate after a second or two)

# dhclient wlan0

At that point you should have an IP on wlan0, default route and DNS
configured and workable.

For unencrypted AP by hand, you don't use wpa_supplicant.

# service network-manager stop
# killall wpa_supplicant
# iwlist wlan0 scan

(find your AP, use its info below)

# ifconfig wlan0 up
# iwconfig wlan0 essid Unencypted AP Name
# iwconfig wlan0 chan 11
# iwconfig wlan0 ap 00:1F:12:34:56:78

(check if associated)

# iwconfig

wlan0IEEE 802.11abgn  ESSID:Unencrypted AP Name
   Mode:Managed  Frequency:2.462 GHz  Access Point:
00:1F:12:34:56:78
   Bit Rate=72.2 Mb/s  Tx-Power=20 dBm
   Retry  long limit:7  RTS thr:off  Fragment thr:off
   Encryption key:off
   Power Management:on
   Link Quality=40/70  Signal level=-70 dBm
   Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
   Tx excessive retries:0 Invalid misc:2  Missed beacon:0

# dhclient wlan0

Again your connection should have DNS, route and be workable.

If you're missing some of these commands make sure you have dhcp3-client
and wireless-tools packages.

-Andy

-- Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  -
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog






___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Fwd: trouble using wifi on Linaro Ubuntu for Pandaboard

2012-11-18 Thread Andy Green

On 11/18/12 16:24, the mail apparently from Fathi Boudra included:

Wrong mailing list, forwarding lo linaro-dev

-- Forwarded message --
From: Alex Stefanescu stefane...@rice.edu
Date: 18 November 2012 02:09
Subject: trouble using wifi on Linaro Ubuntu for Pandaboard

Hello,

I'm having trouble connecting to wifi on the Linaro Ubuntu releases
for the Pandaboard. I've tried with both 12.10 and 12.09 releases,
which are listed to have passed the wifi test.

...

I'm using Pandaboard with OMAP4430 and wl1271 wlan chipset.

I've also tried running wpa_supplicant manually to connect to both the
same open network, or another one secured with WPA2 (I used the
wpa_supplicant.conf from an Android phone so I'm pretty sure it was
correct) and I have the same issue. There is also a wpa_supplicant
always running in the background, does it matter?


Yes you can't have two wpa_supplicants fighting over the state of the 
same wireless interface.


The by hand method for the WPA2 network --

# service network-manager stop
# wpa_passphrase Rice Visitor  /etc/wpa_supplicant/wpa_supplicant.conf

(type the AP passphrase and enter)

# wpa_supplicant -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf 

(should associate after a second or two)

# dhclient wlan0

At that point you should have an IP on wlan0, default route and DNS 
configured and workable.


For unencrypted AP by hand, you don't use wpa_supplicant.

# service network-manager stop
# killall wpa_supplicant
# iwlist wlan0 scan

(find your AP, use its info below)

# ifconfig wlan0 up
# iwconfig wlan0 essid Unencypted AP Name
# iwconfig wlan0 chan 11
# iwconfig wlan0 ap 00:1F:12:34:56:78

(check if associated)

# iwconfig

wlan0 IEEE 802.11abgn  ESSID:Unencrypted AP Name
  Mode:Managed  Frequency:2.462 GHz  Access Point: 
00:1F:12:34:56:78

  Bit Rate=72.2 Mb/s   Tx-Power=20 dBm
  Retry  long limit:7   RTS thr:off   Fragment thr:off
  Encryption key:off
  Power Management:on
  Link Quality=40/70  Signal level=-70 dBm
  Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
  Tx excessive retries:0  Invalid misc:2   Missed beacon:0

# dhclient wlan0

Again your connection should have DNS, route and be workable.

If you're missing some of these commands make sure you have dhcp3-client 
and wireless-tools packages.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Test Result Summary of Calendar Week 45 for Linaro ubuntu.

2012-11-11 Thread Andy Green

On 11/09/12 15:20, the mail apparently from Botao Sun included:

Hi -


3. Panda 4430 + ubuntu (Column AD):

https://docs.google.com/a/linaro.org/spreadsheet/ccc?key=0AroPySpr4FnEdEwwZkhrZ1VYUEg2LTlQZzR0RlhzM3c#gid=0

Audio works. Dead lock error still exists in boot log, and the issues


Audio has been working for months kernelside FWIW, I'm glad it's caught 
up in these tests.



still exist in power management and Bluetooth. All other features remain
the same status.


BT has always been a bit fragile.  There exists a bunch of patches and 
changes in TI Android that make it super good apparently, I don't think 
status of BT will change unless we get these.  Which may happen.



4. Panda 4460 + ubuntu (Column AC):

https://docs.google.com/a/linaro.org/spreadsheet/ccc?key=0AroPySpr4FnEdEwwZkhrZ1VYUEg2LTlQZzR0RlhzM3c#gid=1

Exactly same status as previous test result. Audio input is unavailable


I was using PandaBoard ES audio input over the weekend perfectly well, 
whatever the problem there it's not a problem with the kernel.



and dead lock error exists in boot log, although no significant effect
to system.


That locking log warning is coming from the SGX driver.  They seem 
content to ship it like that and despite it sounds dire it doesn't make 
trouble.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Test Result Summary of Calendar Week 45 for Linaro ubuntu.

2012-11-11 Thread Andy Green

On 11/12/12 11:57, the mail apparently from Botao Sun included:

Hi Andy,

The Audio input on Panda 4460 always bothers me. My microphone works
well on my PC, Vexpress A9 board, but never works on Panda 4460. The
plug is a standard 3 parts one.

How did you work out this issue? With a line in cable?


Yes the situation there is not as simple as it could be.

Neither Panda will accept a microphone in the line in socket.  They 
don't provide MICBIAS to power the microphone.


4430 PandaBoard wires Line In to headset microphone input on the audio 
chip.  Confusingly that is Mono and we think differential.  What gets 
recorded there is the difference between the L and R signal we believe. 
 So you should just play silence on one channel and your signal on the 
other to get a good result. The result will be a fake stereo file with 
the same mono capture on both channels.


4460 PandaBoard ES fixed that by wiring Line In socket to AuxFM L+R on 
the audio chip instead, which act like normal, 2 x single-ended inputs. 
 So you can record in stereo properly there.  However even then L + R 
are swapped at the connector compared to the output ^^


UCM stuff knows about the differences; the ALSA driver calls the card 
differently between PandaBoard and PandaBoardES sso the UCM stuff can 
route headset mic or AuxFM for capture accordingly.


One other gotcha, they both only issue S32_LE sample format, not the 
more common S16_LE.


Here's a magic capture script that works on both without relying on UCM 
or other things.


#!/bin/sh

amixer cset name='MUX_UL00' 'AMic0'
amixer cset name='MUX_UL01' 'AMic1'
if [ -z `cat /proc/asound/cards | grep PandaBoardES` ] ; then
amixer cset name='Analog Left Capture Route' 'Headset Mic'
amixer cset name='Analog Right Capture Route' 'Headset Mic'
else
amixer cset name='Analog Left Capture Route' 'Aux/FM Left'
amixer cset name='Analog Right Capture Route' 'Aux/FM Right'
fi
amixer cset name='Capture Preamplifier Volume' 2
amixer cset name='Capture Volume' 4

arecord -v -v -D hw:0,0 -d 5 -f s32_LE -c 2 -r 48000 record.wav

-Andy


On Mon, Nov 12, 2012 at 2:51 PM, Andy Green andy.gr...@linaro.org
mailto:andy.gr...@linaro.org wrote:

On 11/09/12 15:20, the mail apparently from Botao Sun included:

Hi -


3. Panda 4430 + ubuntu (Column AD):


https://docs.google.com/a/__linaro.org/spreadsheet/ccc?__key=__0AroPySpr4FnEdEwwZkhrZ1VYUEg2L__TlQZzR0RlhzM3c#gid=0

https://docs.google.com/a/linaro.org/spreadsheet/ccc?key=0AroPySpr4FnEdEwwZkhrZ1VYUEg2LTlQZzR0RlhzM3c#gid=0

Audio works. Dead lock error still exists in boot log, and the
issues


Audio has been working for months kernelside FWIW, I'm glad it's
caught up in these tests.


still exist in power management and Bluetooth. All other
features remain
the same status.


BT has always been a bit fragile.  There exists a bunch of patches
and changes in TI Android that make it super good apparently, I
don't think status of BT will change unless we get these.  Which may
happen.


4. Panda 4460 + ubuntu (Column AC):


https://docs.google.com/a/__linaro.org/spreadsheet/ccc?__key=__0AroPySpr4FnEdEwwZkhrZ1VYUEg2L__TlQZzR0RlhzM3c#gid=1

https://docs.google.com/a/linaro.org/spreadsheet/ccc?key=0AroPySpr4FnEdEwwZkhrZ1VYUEg2LTlQZzR0RlhzM3c#gid=1

Exactly same status as previous test result. Audio input is
unavailable


I was using PandaBoard ES audio input over the weekend perfectly
well, whatever the problem there it's not a problem with the kernel.


and dead lock error exists in boot log, although no significant
effect
to system.


That locking log warning is coming from the SGX driver.  They seem
content to ship it like that and despite it sounds dire it doesn't
make trouble.

-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/__Linaro/155974581091106
http://facebook.com/pages/Linaro/155974581091106  -
http://twitter.com/#!/__linaroorg http://twitter.com/#!/linaroorg
- http://linaro.org/linaro-blog





--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: linux-linaro kernel trees move to 3.7 and 12.11 schedule

2012-11-07 Thread Andy Green

On 11/07/12 19:52, the mail apparently from Tushar Behera included:

On 11/07/2012 01:40 AM, Andrey Konovalov wrote:

Greetings,

This cycle some more attention is given to the shape of the ci builds
done from the llct tree (the ones with llct in their name at
https://ci.linaro.org/jenkins/view/Linux%20Linaro%20Tracking/). See below.

On 10/27/2012 12:39 PM, Andrey Konovalov wrote:

The 12.11 linux-linaro kernel release will be v3.7-rc5 or v3.7-rc6 based.

Please make sure to update your topics to 3.7.

Here is the plan:
* October 30: initial v3.7-rc3 based llct build, 3.6 based topics will
not be included if there are conflicts


Done. The tag is llct-20121101.1. v3.7-rc3 based.

Origen failed to boot in LAVA (silence after Uncompressing Linux...
done, booting the kernel.)


I haven't tested it yet (llct), but it might be because of incorrect
serial port number. I have tested v3.7-rc4 kernel with said change in
config file, it works. Anyways, I will get back tomorrow after testing llct.


FWIW we are currently retargeting on 3.7-rc4 I think + llct and then 
tracking.


So there might be more than one hundreds of arch-specific patches LT 
kernels based on llct to bind together this time, making ll more than 
theoretically useful.


-Andy


mmc doesn't work on Panda when the kernel is built using the (old)
config fragments
(http://validation.linaro.org/lava-server/scheduler/job/37832/log_file).
Panda boots ok with omap2plus_defconfig.
vexpress boots ok.


* November 6: updated big-LITTLE-MP topic arrives, llct rebuild
(llct-20121106)


Done. The tag is llct-20121106.0. v3.7-rc4 based.

Android and big-LITTLE-MP topics are back. New Gator version (v5.12).

*ubuntu-sauce topic will be dropped* Anyone objects?

The same boot failure for Origen. Disabling device tree in the kernel
config makes the kernel to start booting
(http://validation.linaro.org/lava-server/scheduler/job/37885/log_file).
Could be arch/arm/boot/dts/exynos4210-origen.dts issue.

Thanks,
Andrey


* November 8: linux-linaro (ll) rebuild based on llct-20121106
* November 13: llct rebuild (llct-20121113)
* November 15: ll rebuild based on llct-20121113
* November 20: llct rebuild (llct-20121120)
* November 22: ll rebuild based on llct-20121120, ll code freeze (no
massive ll topics updates after that; bugfixes only)

(The dates above are milestones, there will be additional llct/ll
rebuilds on other dates as well)

The config fragment branches to be used in 12.11:
git://git.linaro.org/kernel/configs.git , config-core-tracking and
config-boards-tracking branches.

Thanks,
Andrey




___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev






--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [RFC] Energy/power monitoring within the kernel

2012-10-23 Thread Andy Green
 ===

Although the trace event makes it possible to obtain interesting
information using perf, the user wouldn't be able to treat the
energy meter as a normal data source. In particular there would
be no way of creating a group of events consisting eg. of a
normal leader (eg. cache miss event) triggering energy meter
read. The only way to get this done is to implement a perf PMU
backend providing environmental data to the user.


In terms of like perf top don't think it'll be possible to know when to 
sample the acquisition hardware to tie the result to a particular line 
of code, even if it had the bandwidth to do that.  Power readings are 
likely to lag activities on the cpu somewhat, considering sub-ns core 
clocks, especially if it's actually measuring the input side of a regulator.



= High-level hwmon API and PMU =

Current hwmon subsystem does not provide any abstraction for the
measured values and requires particular drivers to create specified
sysfs attributes than used by userspace libsensors. This makes
the framework ultimately flexible and ultimately hard to access
from within the kernel...

What could be done here is some (simple) API to register the
measured values with the hwmon core which would result in creating
equivalent sysfs attributes automagically, but also allow a
in-kernel API for values enumeration and access. That way the core
could also register a hwmon PMU with the perf framework providing
data from all compliant drivers.

= A driver-specific PMU =

Of course a particular driver could register its own perf PMU on its
own. It's certainly an option, just very suboptimal in my opinion.
Or maybe not? Maybe the task is so specialized that it makes sense?



=== Option 3: CPU power(energy) monitoring framework ===

And last but not least, maybe the problem deserves some dedicated
API? Something that would take providers and feed their data into
interested parties, in particular a perf PMU implementation and
cpufreq governors?

Maybe it could be an extension to the thermal framework? It already
gives some meaning to a physical phenomena. Adding other, related ones
like energy, and relating it to cpu cores could make some sense.


If you turn the problem upside down to solve the representation question 
first, maybe there's a way forward defining the power tree in terms of 
regulators, and then adding something in struct regulator that spams 
readers with timestamped results if the regulator has a power monitoring 
capability.


Then you can map the regulators in the power tree to real devices by the 
names or the supply stuff.  Just a thought.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Planning topcs for inclusion in linux-linaro

2012-10-07 Thread Andy Green

On 06/10/12 08:52, the mail apparently from Ricardo Salveti included:

On Fri, Oct 5, 2012 at 2:03 PM, Andrey Konovalov
andrey.konova...@linaro.org wrote:

On 10/05/2012 12:12 PM, Jon Medhurst (Tixy) wrote:

On Thu, 2012-10-04 at 23:02 +0400, Andrey Konovalov wrote:

don't we need some kind of notification system where you
announce a plan to rebuild linux-linaro and give us a version of llct to
base our LT branches off?


Andrey, let's make sure this is properly communicated over time for
the maintainers and linaro-dev, so everyone can understand and see the
progress done (to prepare any kind of rebase/pull).


If Andrey keeps llct reasonably following Linus HEAD (as he has been, 
kudos) - and keep a nice llc-3.6 with 3.6 stable pieces and any critical 
backport fix for other llct content appearing on it in parallel - you'll 
be solving everything needed on TILT side.



Also, I assume we're not going to try to move to Linux 3.7 this month?


That's correct. We didn't have the kernel.org release based (vs -rc based)


Our plan is retarget on 3.6 basis next week and before long generate a 
tilt-3.6.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: llct stable trees

2012-09-05 Thread Andy Green

On 09/05/12 17:19, the mail apparently from Andy Green included:

On 09/04/12 12:13, the mail apparently from Ricardo Salveti included:

Hi -


1) Can we have linux stable point release content in tilt-3.4?
Rather than
my doing it, isn't it better to add it to llc-3.4 and merge it on the lt
history tree periodically?  That way every lt can get them from one
place.


I don't see why merging the stable release contents would be an issue.
We could keep updating the tree based on stable-only releases, as long
as we still have at least one Landing Team interested on consuming it.

This would be another job that would probably be automated by Andrey's
scripts.


Right it should usually be simple, although don't forget there is quite
a lot of avant garde content in llct, such as Androidization.  Just
today I saw Xavier at TI find that merging of stable had a patch
conflicting with llct Androidization content.


So, it turns out that is a good example.

I researched the conflict and found a thread from RMK rejecting the 
patch 96714b5dfe283cd8ab13aac1f9ccb565064af152 that seems to have come 
in by Androidization series via llct.


http://lists.infradead.org/pipermail/linux-arm-kernel/2010-May/014116.html

We decided to take the kernel.org stable version of the patch 
6019ae78aa65afe273da8c0dfeed8e89fb5edf8f which removes some locking evil 
in the Androidization version, which RMK noted opened up a horrible race.


Xavier then found a ghastly bug that had previously been impossible to 
track down disappeared.


So we now know that 96714b5dfe283cd8ab13aac1f9ccb565064af152 we had been 
happily pushing out on everyone in llct-3.4 is a terrible idea, not just 
for TILT but any kernel that has it in will suffer from very hard to 
reproduce mm instability under stress, and needs reverting in favour of 
the version that went in kernel.org stable.


But now we know about that flaw in llct-3.4 should we not do something 
about it?


-Andy


--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


llct stable trees

2012-08-30 Thread Andy Green

Hi -

We've been getting some good mileage from the llct-based tilt-3.4 
history tree the last months.


However a couple of points have been raised by TI which really boil down 
to being about the deal with llct post-release.  We know that it goes on 
mutating and tracking as it should, but the release-specific version, 
like linux-linaro-3.4 just sits there afaik.


The points raised were:

1) Can we have linux stable point release content in tilt-3.4?  Rather 
than my doing it, isn't it better to add it to llc-3.4 and merge it on 
the lt history tree periodically?  That way every lt can get them from 
one place.


2) What's the deal with things that were the latest and greatest at that 
time, ie, the best CMA or whatever series was in tracking, but after 
it got copied out to be linux-linaro-core-3.4, horrible bugs were fixed 
in linux-linaro-tracking?  What's happening is that TI are sticking with 
these releases for a fair time as the basis for their release to customers.


I can see there's tension between tracking-style fix it for the future, 
and backport to old and crusty things, there's also issue of testing, 
but there must be some cases where this makes some sense.  Again people 
looking after the feature tree for llct are best placed to make those 
calls about, hm, that looks like it should maybe also go on the last 
couple of llc release trees.


What do you think about this?

-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: tilt-3.4 compilation broken

2012-08-24 Thread Andy Green

On 08/24/12 19:15, the mail apparently from Viresh Kumar included:

Hi -


Leave that. My fault :(

I always use O=../some-folder for all compilation related commands and
do all this with script every time (so no manual mistakes). But since
some time
i am observing the current source folder also gets dirty. Some time it
complains for running make mrproper on source folder and sometimes
gives above errors.

make mrproper fixed this issue.


Glad you're sorted... actually fwiw I also use scripted O= scheme for 
all builds here (it makes switching between different build contexts of 
same sources cheap) and I don't have any contamination of ./ happening.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Build failure for Omap

2012-07-13 Thread Andy Green

On 13/07/12 15:45, the mail apparently from Viresh Kumar included:

On 12 July 2012 16:59, Scott Bambrough scott.bambro...@linaro.org
mailto:scott.bambro...@linaro.org wrote:

Try the omap4plus_defconfig.


There is no such defconfig, only following are present:

omap1_defconfig
omap2plus_defconfig


It looks like this combined tree is not ready for primetime.  We provide 
and test with omap4plus_defconfig on the TI LT tree.  It seems the 
combined tree isn't being tested equivalently at the moment.


http://git.linaro.org/gitweb?p=landing-teams/working/ti/kernel.git;a=summary

If you're only currently interested in omap, try tilt-3.4 from there 
with omap4plus_defconfig.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog




___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Problem building Precise Ubuntu Desktop

2012-07-03 Thread Andy Green

On 07/03/12 03:47, the mail apparently from David Cullen included:

Hello, Tom,

On 7/2/2012 2:29 PM, Tom Gall wrote:

That should work fine. What's important for cross assembling your
own images is that qemu is reasonably up to date. Lucid is getting
fairly old now. Speaking for myself I haven't built anything on lucid
for some time.


You have a good point about qemu.  One of the reasons I created the
Ubuntu 12.04 Server VM was to get a newer version of qemu-user-static.


Ok.  One thing to note. When using live build it doesn't actually
build the packages, it just assembles images. It uses .debs which are
found in all the various archives (including your own) to accomplish
this.


Well, that's not what I need.  I need to rebuild the kernel.

I'm just going to chroot into a copy of the root file system that I
got from the image I downloaded from here:

 http://www.omappedia.com/wiki/Ubuntu_Pre-Built_Binaries

That way, I can just install the linux-source package,
build-essential, and whatever else I need in a self-contained
environment.

I originally started looking at the Linaro stuff because the
armhf+omap4 Ubuntu image runs very slowly, even after installing the
PowerSVG binary driver.

However, when I loaded the 12.05 and 12.06 Linaro Ubuntu images, all
I got was a black screen with a mouse pointer.

After running some experiments here, I discovered that the Linaro
Ubuntu images only work with displays that have a native resolution
of 1920x1080.

I tried to use kernel command line arguments to force the resolution
to work with my 1680x1050 monitor, but my changes had no effect.  I
wanted to look at the kernel source for the Linaro Ubuntu image
because I can probably figure out the correct kernel command line
arguments from that.  However, I could not figure out which git tree
to use.

The whole thing reminds me of the line from Zork:  You are in a
maze of twisty little passages, all alike.


Just to be clear, the kernel is recognizing your monitor and coming up 
with kms OK at your native resolution?


IIUI Xorg starts and you get a pointer you can move around but Xorg 
chokes somewhere.


Did you have a look at the Xorg logs then, or try to come up in runlevel 
three and do startx at the terminal?


If I did get the idea I am not sure recooking the kernel will change 
much, it's actually doing its side (as distinct from SGX module perhaps) 
okay from the sound of it.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog




___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Problem building Precise Ubuntu Desktop

2012-07-03 Thread Andy Green

On 03/07/12 22:03, the mail apparently from David Cullen included:

Hello, Andy,

On 7/3/2012 2:14 AM, Andy Green wrote:

On 07/03/12 03:47, the mail apparently from David Cullen included:

After running some experiments here, I discovered that the Linaro
Ubuntu images only work with displays that have a native resolution
of 1920x1080.

I tried to use kernel command line arguments to force the resolution
to work with my 1680x1050 monitor, but my changes had no effect.  I
wanted to look at the kernel source for the Linaro Ubuntu image
because I can probably figure out the correct kernel command line
arguments from that.  However, I could not figure out which git tree
to use.


Just to be clear, the kernel is recognizing your monitor and coming up
with kms OK at your native resolution?


What's kms?  But yes, the kernel appears to be driving the monitor
at the native resolution.


Kernel Mode Select.


IIUI Xorg starts and you get a pointer you can move around but Xorg
chokes somewhere.


If Xorg choked, would I even have a mouse pointer?


Right what I mean is Xorg + display manager and points south, ie, your 
desktop choked somewhere.



Did you have a look at the Xorg logs then, or try to come up in runlevel
three and do startx at the terminal?


No.  I'm not an expert at troubleshooting Xorg problems, so I didn't
even think about doing any of that.  I'll give it a shot and post my
findings.


You can often hear about problems in the display manager logs, for gdm 
it's /var/log/gdm/\:0-greeter.log I am not sure what it is on Ubuntu.


If you do start X from the commandline, you will get valuable stderr 
coming quite deep into the whole desktop startup process.



If I did get the idea I am not sure recooking the kernel will change
much, it's actually doing its side (as distinct from SGX module perhaps)
okay from the sound of it.


After looking at the kernel source for another project, I was able
to figure out how to pass LCD panel timings via the kernel command
line to get the resolution I needed.  So one reason I wanted to look
at the Linaro kernel source was to try to figure out how to force
the DVI output to use a specific resolution and bit depth.

However, the image from here


http://cdimage.ubuntu.com/releases/12.04/release/ubuntu-12.04-preinstalled-desktop-armhf+omap4.img.gz


Well that is 12.04, the kernel will be quite different.


does display the GUI properly on my monitor, so I know it can be
done.  This raises the question, What are the differences between
the Ubuntu image and the Linaro image?  If the primary difference
is the kernel, then rebuilding the kernel may fix the problem.


Well, good luck... I think a more certain result will come from finding 
some evidence from the desktop logs about where it gets stuck.



However, the real reason I need to rebuild the kernel has nothing to
do with getting the GUI working.  Unfortunately, it is not obvious
to me how to acquire the source to the kernel that goes with the
image here

 http://releases.linaro.org/12.06/ubuntu/leb-panda/

Using apt, I can easily get the source for the Ubuntu image
mentioned above.  So, I will be sticking with the Ubuntu image for now.


Ubuntu's Panda kernel as the Linaro Ubuntu LEB kernel, is based on our 
LT kernel here


http://git.linaro.org/gitweb?p=landing-teams/working/ti/kernel.git;a=shortlog;h=refs/heads/tilt-3.4

I don't know where they put the exact tree, but they basically set their 
own config similar to our omap4plus_defconfig and add a bunch of UBUNTU 
SAUCE patches on top, almost all of which are affecting generic kernel code.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog




___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Black screen when booting Ubuntu

2012-06-29 Thread Andy Green

On 06/30/12 02:23, the mail apparently from David Cullen included:

Hello, linaro-dev,

When I boot the Ubuntu desktop image available from

 
http://releases.linaro.org/12.06/ubuntu/leb-panda/lt-panda-x11-base_20120626-139-ubuntu-desktop.img.bz2

all I see is a black screen and the mouse pointer.

I see some messages on the console like

 [   13.996887] (stk) : timed out waiting for ldisc to be un-installed
 [   15.145019] (stk) :ldisc installation timeout


These are from bluetooth, it's fixed on tilt-3.4 since three days ago. 
They don't mean anything except BT is broken.



and

 [   22.983459] omap-hdmi-audio-dai omap-hdmi-audio-dai: audio not supported
 [   22.990631] omap-hdmi-audio-dai omap-hdmi-audio-dai: can't open 
interface omap-hdmi-audio-dai: -19


These are just telling that your HDMI link is not using a resolution 
that supports playing audio down it, and the desktop was trying to do that.



My PandaBoard is connected to a Dell monitor with a native resolution of
1680 x 1050.  Is this a problem?


I don't think so.  It's probably something to do with the current SGX 
(video accelerator) stuff in Ubuntu.  Next week TI are providing a big 
update around SGX1.9 and other new features I guess that will impact it.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog




___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: alloc failed, but?

2012-06-27 Thread Andy Green

On 06/28/12 11:27, the mail apparently from Tom Gall included:

Hi All,

I'm stressing a system with apachebench. As one scales up work on a
system obviously there's always a point where the wheels fall off, the
engine explodes or something else exciting happens. But as Han Solo
would say ... hold together baby, I'd like to eek out as much as
I can. (If you're really interested, here's what I'm up to :
http://fullshovel.wordpress.com/  start with part 1)

In this case with apachebench, I'm geting the following allocation
errors in the kernel and need a little help deciphering. It sure looks
like there's plenty of space to swap out however if I have this right,
we're getting so much network traffic that the kernel gets inundated
and it OOMs in the network stack.

I did later try setting sysctl -w vm.min_free_kbytes=32768  but that
didn't really seem to help.

The much more complete dmesg dump is located at
http://people.linaro.org/~tgall/dmesg-dump.txt



[127100.245117] swapper/0: page allocation failure: order:3, mode:0x20



[127100.245666] [80100f14] (__alloc_pages_nodemask+0x678/0x7a4) from
[80695270] (kmem_getpages.isra.35+0x3c/0xc0)
[127100.245666] [80695270] (kmem_getpages.isra.35+0x3c/0xc0) from
[80695380] (cache_grow.constprop.37+0x8c/0x1fc)
[127100.245666] [80695380] (cache_grow.constprop.37+0x8c/0x1fc) from
[8069570c] (cache_alloc_refill+0x21c/0x274)
[127100.245819] [8069570c] (cache_alloc_refill+0x21c/0x274) from
[80132dac] (__kmalloc_track_caller+0xac/0x1b0)
[127100.245910] [80132dac] (__kmalloc_track_caller+0xac/0x1b0) from
[8057a37c] (__alloc_skb+0x60/0xfc)
[127100.245971] [8057a37c] (__alloc_skb+0x60/0xfc) from [8057a874]
(__netdev_alloc_skb+0x2c/0x54)
[127100.245971] [8057a874] (__netdev_alloc_skb+0x2c/0x54) from
[8049dbb8] (rx_submit+0x2c/0x1d4)
[127100.245971] [8049dbb8] (rx_submit+0x2c/0x1d4) from [8049e1c0]
(rx_complete+0x1a4/0x1b8)
[127100.245971] [8049e1c0] (rx_complete+0x1a4/0x1b8) from
[804a5f38] (usb_hcd_giveback_urb+0xb0/0xfc)
[127100.246246] [804a5f38] (usb_hcd_giveback_urb+0xb0/0xfc) from
[804b887c] (ehci_urb_done+0xb8/0xc4)
[127100.246246] [804b887c] (ehci_urb_done+0xb8/0xc4) from
[804bb240] (qh_completions+0xc8/0x49c)


Just some not directly useful extra info...

I noticed these yesterday in dmesg as well while adding the 32K 
min_free_kybytes in tilt-3.4 as a hack.  It seems to be part of some 
syndrome with smsc driver and network memory allocation that's in 
mainline and not Panda-specific.  Yesterday I saw in Google the same 
problems plaguing Raspberry Pi folks.


When I recently tried to stress the Panda a week or so ago by cloning 
gcc with a plan to compile it, in fact it lost sanity during the 
download with a storm of these kevent lost messages, hence the 32K hack 
being added.


I also remember the same problems about kevents being dropped getting 
looked at like a year ago without any solid result, it'll be interesting 
if anyone understands and can explain what the underlying issue is.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog




___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [Linaro-validation] Can we use mmcblk0p8?

2012-06-18 Thread Andy Green

On 06/19/12 09:45, the mail apparently from Michael Hudson-Doyle included:

Paul Larson paul.lar...@linaro.org writes:



One thing I was thinking, is whether we could munge the boot script when we
install it to this partition and replace the paths in some automagic way.
This would solve the issue of making sure we always have the latest
bootargs and dtb files for booting, and get us one step closer to parity
with a manually imaged system.


Yeah, I've thought about that a bit too.  One problem at a time :-) (and
hopefully sdmux will happen and we can forget about this whole issue).


Have we given up on Lava ever supporting / testing non-SD boot paths, or 
is that going to be supported by this sdmux implementation?


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog




___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [Linaro-validation] Can we use mmcblk0p8?

2012-06-18 Thread Andy Green

On 06/19/12 11:04, the mail apparently from Michael Hudson-Doyle included:

Andy Green andy.gr...@linaro.org writes:


On 06/19/12 09:45, the mail apparently from Michael Hudson-Doyle included:

Paul Larson paul.lar...@linaro.org writes:



One thing I was thinking, is whether we could munge the boot script when we
install it to this partition and replace the paths in some automagic way.
This would solve the issue of making sure we always have the latest
bootargs and dtb files for booting, and get us one step closer to parity
with a manually imaged system.


Yeah, I've thought about that a bit too.  One problem at a time :-) (and
hopefully sdmux will happen and we can forget about this whole issue).


Have we given up on Lava ever supporting / testing non-SD boot paths, or
is that going to be supported by this sdmux implementation?


No, we have not given up -- although it's not a focus of current work --
and no, it is not going to be supported by this sdmux implementation.


So if I understood, it's not supported and there is no plan to support it.

-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog




___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: linux-linaro-core-tracking updated to 3.5

2012-06-11 Thread Andy Green

On 06/12/12 02:44, the mail apparently from Andrey Konovalov included:


Andy Green pointed out that

this patch

http://www.mail-archive.com/linux-omap@vger.kernel.org/msg63852.html

is important for OMAP... thanks to Tushar for digging up the context
of it for us.  We're carrying a replica of it in our tracking atm but
since what was

tracking-thermal_exynos4_imx6-3.4-2012.05

had just one of the pair of patches in older llct, it should be
improved to have both, if it doesn't already with this update.

The current answer is that thermal_exynos4_imx6_work doesn't have the
2nd patch (and this topic has not been updated for 8 weeks). And the
reason for having just the 1st patch is probably that the 1st patch is
the ARM generic one, while the 2nd one is for OMAP. And AFAIK the topic
doesn't support OMAPs yet. The 2nd patch worth including into llct, but
I haven't decided how to do that yet - need to sync with the PMWG.


OK... we are carrying a rediscovered version of the second patch from 
Dave Long for now.  However although one is for OMAP, the patches belong 
together because they change the handling of something and then correct 
OMAP to comply with the New Way.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog




___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: android-3.4 ... / Audit of OOT android code

2012-06-10 Thread Andy Green

On 06/10/2012 05:53 PM, the mail apparently from Andy Green included:


These are the suspicious things I found from the diff between
linaro-android-3.4 (from
http://git.linaro.org/gitweb?p=people/jstultz/android.git;a=shortlog;h=refs/heads/linaro-android-3.4
at HEAD 8674fd7a65aeff35c3879cf0d56e78c93ee62e2c) vs v3.4.  Some are
clear cut and others change code I don't really understand, but others
on this list will.


I noticed while making patches for these that the basis for the diff was 
upstream/android-3.4 instead of linaro-android-3.4 I thought I was using.


Studying the diff between those two, I see there are already changes 
addressing some of these problems.



  1) drivers/input/evdev.c: adds wakelock code not dependent on
ANDROID *** need discussion ***


Wakelocks got changed in their include file to generate empty structs 
and apis in case CONFIG_WAKELOCK is not defined.


That solves the wakelock part of 16, 17, 18.

16 introduces a flag in mmc code, I am not sure if nulling out the 
wakelock code but leaving the flag is the same as not having the flag.



  3) add net/activity_stats.c contingent on NET_ACTIVITY_STATS ***
BUG *** default y


fixed


  4) net/Kconfig: add ANDROID_PARANOID_NETWORK *** BUG *** default
Y: needs changing


fixed

   8) kernel/power/Kconfig: ***BUG*** HAS_WAKELOCK, WAKELOCK,
 USER_WAKELOCK all introduced as default y

fixed

The debug_ll printk problem is also solved.

  13) drivers/char/Kconfig:  Add DEVMEM *** BUG *** default y ; add
 DCC_TTY (harmless)

fixed

That leaves the following:

   2) *** BUG *** changes net/wireless/scan.c not protected by
 CFG80211_ALLOW_RECONNECT: IEEE80211_SCAN_RESULT_EXPIRE reduced to 3s
 from 15s whether configured or not


  5) mm/page_alloc.c: replace constant of 1 with filescope int
min_free_order_shift defaults to 1 but changeable from sysctl *** Needs
comment ***

  6) fs/proc.c: add support for Android-specific OOM adjust
interface... ***BUG*** should be contingent on CONFIG_ANDROID or the
ANDROID OOM config

  7) kernel/cgroup.c: adds a queue of wairer to do rmdir() cgroup,
removes most content from free_css_set_work(), screws with much else in
there, no idea if that makes cgroups better or worse, but the changes
are not contingent on anything *** needs discussion ***

  9) kernel/printk.c: *** BUG? *** unconditionally remove CPU_DYING
notification from console_cpu_notify, log_buf_get_len, log_buf_clear,
log_buf_copy apis added

 10) kernel/sched/core.c: __might_sleep_init_called flag
introduction (harmless) change __might_sleep processing *** Needs
checking ***; add allow_attach cgroup api callback, if not same task
actig on itself then confirm CAP_SYS_NICE, or effective uid is suid
(seems good); only requeue task if any ancestors are the one element
in queue as well as if it's just us (seems good)

 11) kernel/sysctl.c: add min_order_free_shift change (pagealloc.c)
interface *** Needs comment ***

 12) drivers/base/power/main.c: add driver suspend / resume timeout
concept, no driver may take more than 12s suspending or BUG(), not
dependent on any CONFIG_  probably benficial but *** Needs discussion ***

 14) drivers/cpuidle/governors/menu.c: remove scaling formula mult
+= 2 * get_loadavg(); *** needs discussion ***

 15) drivers/mmc/card/block.c: change computation in
mmc_get_devidx() *** needs discussion ***; add pr_err if r/w command
fails or we abort, harmless; deferred resume implementation properly
protected by config, harmless; set md-disk-flags to GENHD_FL_EXT_DEVT
*** needs discussion ***

 16) drivers/mmc/core/core.c: mmc_resume_bus() introduction; extend 
wakelock flag, other
unconditonal changes *** needs discussion ***

 17) drivers/mmc/core/host.c:adds pm_notifier if not flagged 
MMC_PM_IGNORE_PM_NOTIFY *** needs
discussion ***

 18) drivers/power/power_supply_core.c: change
power_supply_changed() processing ***
needs discussion ***

 19) arch/arm/boot/compressed/head.S: wrap older chip IDs from
colliding with v7 *** needs discussion ***

 20) arch/arm/include/asm/hardware/coresight.h: various lowlevel io
changes *** need discussion ***

 21) arch/arm/include/asm/mach/mmc.h: extra stuff for
embedded_sdio_data, declares mmc_platform_data ??? *** needs discussion ***

 22) arch/arm/kernel/etm.c: mass changes, no idea *** needs
discussion ***

 23) arch/arm/mm/cache-l2x0.c: add sets and ways count, service
CONFIG_PL310_ERRATA_727915, two magic debug_writel *** needs discussion ***

 24) arch/arm/mm/cache-v6.S: support CONFIG_CACHE_FLUSH_RANGE_LIMIT
*** needs discussion ***

 25) arch/arm/mm/mmu.c: simplify early_pte_alloc() args, add
force_pages to alloc_init_pud(), more changes *** needs discussion ***

 26) arch/arm/vfp/entry.S: thumb2 code added *** needs discussion ***

 27) arch/arm/vfp/vfpmodule.c: add SMP code *** needs discussion ***

 28) linux/amba/mmci.h: hmmm also defines stuff defined

Re: Call for topics for the 12.06 linux-linaro* trees

2012-06-08 Thread Andy Green

On 06/08/2012 08:25 PM, the mail apparently from Andrey Konovalov included:

Greetings,

There will be three linux-linaro trees this month. Also some LTs have
moved to 3.5, while the others will stay on older kernels.

In addition to linux-linaro-core-tracking and linux-linaro ones
(described under
https://wiki.linaro.org/Platform/DevPlatform/LinuxLinaroKernelTreeProcess),
linux-linaro-tracking tree will be created as a merge of the tracking
trees of TI (v3.4 based) and Samsung (currently v3.4-rc7 based) LTs.


For reference the TI + Samsung trees I did during Connect can be found here:

http://git.linaro.org/gitweb?p=landing-teams/working/ti/kernel.git;a=shortlog;h=refs/heads/unify-samsung-ti

This builds and works for OMAP at least.


Probably more LT tracking trees would be added, but I am not sure due to
the different bases the others use. Each LT's tracking tree act as a
topic here, so the call for topics doesn't apply to  this tree.

linux-linaro-core-tracking tree is moving to 3.5 (but not published at
git.linaro.org yet). For those using the 3.4, llct_3.4 branch has been
created. This is a copy of the most recent v3.4 based
linux-linaro-core-tracking tree.
*New generic (not board specific) topics and updates to the existing
topics are welcomed for the 3.5 based linux-linaro-core-tracking tree*
The requirements for a topic can be found here:
https://wiki.linaro.org/Platform/DevPlatform/LinuxLinaroKernelTreeProcess#Adding_a_topic_to_linux-linaro_kernel_and_maintaining_it

The current topics are:
* arm_soc/testing/multiplatform
* svenkatr/ufs-for-linux-linaro
* svenkatr/emmc-for-linux-linaro
* amitdanielk/thermal_exynos4_imx6_work


Not sure if this will now already have it, but this patch

http://www.mail-archive.com/linux-omap@vger.kernel.org/msg63852.html

is important for OMAP... thanks to Tushar for digging up the context of 
it for us.  We're carrying a replica of it in our tracking atm but since 
what was


tracking-thermal_exynos4_imx6-3.4-2012.05

had just one of the pair of patches in older llct, it should be improved 
to have both, if it doesn't already with this update.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog




___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: android-3.4 or android-3.4-compat

2012-05-24 Thread Andy Green

On 24/05/12 09:11, Somebody in the thread at some point said:

On 05/23/2012 05:25 PM, Andy Green wrote:

On 24/05/12 06:42, Somebody in the thread at some point said:


Am I right in thinking the issue you're running into here is that your
customer has direct expectations for the tree you're maintaining, which
makes adding unexpected instability on a vanilla build very
undesireable?

(If that's not the case, then generally I don't see a problem with
broadening the group testing the Androidization patches to the vanilla
set -- they will be beta testing, but that's one key part of open source
QA.)


Pretty much, I think they're saying to their customers, here's an
enabled vanilla tree and then nobody wants to see problems coming
from OOT Androidization series. Since we already had funny things in
vanilla build from the series, this isn't so paranoid to be concerned
about.



I think part of the difficulty here has been the classic question of:
A) Is the linaro kernel release a development snapshot of the current
state of our work - allowing us to get real world testing of our
not-yet-upstreamed work?
B) Or is it a stable base for others to build upon?

And the answer so far has been both! (we're always optimistic! :) but
this is a good example of a case where the integration testing of
android code with mainline (which helps resolve issues before pushing
upstream) is apparently considered too risky for folks wanting that
stable base to build upon.


If we were claiming to be doing something to the OOT Android series 
(which is not our work at all) to make it more consistent and workable 
with upstream, it would be easier to explain to people who don't 
actually want it but might accept some temporary risk for the greater good.



Again, I can see both sides, and what makes most sense depends on our
priorities.


Personally I like the idea of the Androidization becoming part of
the basis because it puts us in generally converged direction with
mainline. But then we have a responsibility to make it as
transparent as mainline will insist that it is if we expect members
are seriously going to offer vanilla kernels on this basis.


I like it too. What could we do cheaply that will give us the
transparency or policy that addresses the risk you've outlined?


Someone needs to audit the OOT Androidization stuff and confirm that
for patches that go out of their box, ie, reach out of /staging or
some specific driver:

- the impact of the patch is negated if CONFIG_ANDROID or some more
specific config is disabled, or,

- remove the patch as too invasive, or,

- conclude the patch is useful and needed in vanilla case too

there's a big variety of out of the box patches for stuff like cache
code, mmc core, network stack and so on in that series last time I
looked. We should give some assurance for people using
linux-linaro-core-tracking that someone at least looked at each of
those cases and determined its status as above.


Again, this would be great to have. Although the calls being made here
also have costs to consider:
* If we remove the patch, we diverge from AOSP, which makes keeping up
with Google's tree more costly.


Not sure we can eat both those cakes, either we're doing mighty feats of 
engineering on OOT Google stuff to align it to upstream and there may be 
some dust, or we are just mechanically cloning AOSP OOT content in our 
mainline tree because we believe any change from AOSP series would be 
heretical.



* If the patch is needed in vanilla, but might not be acceptable,
considerable work might be required to get it into shape. So what do we
do in the meantime?


Unless it reeks too badly, stick it on llct so we get the sinful 
benefits and switch to the clean version when it comes from mainline. 
That's interesting to tree consumers because path through mainline can 
often be very twisty and slow, yet inbetweentimes mainline lacks the 
feature and we have it.  If that's true of dozens of pending features at 
any one time, yet our tree is overall consistent with direction and 
basis of mainline, our tree is looking pretty hot.



Further, for the various bits that are not config switched, any such
review would need to be done by domain experts, as much of the changes
(especially with regard to arm architecture and mmc tweaks) are well
beyond my/a novice's ability to audit. In some cases where I've pushed
seemingly trivial fixes from the AOSP stack to lkml, Russell and others
have not been able to come to consensus as to if the fix is correct or
not, so this definitely isn't a trivial work.

And all of the above suggestions you've made are desired, but given time
constraints we've been focusing on the more generic functionality first,
and moving from there to the more specific driver and architecture
changes (which is where the majority of the un-config switched changes
are). Its just taking some time to get there, so I suspect pushing the
linaro-android tree into a separate merge tree is likely

Re: android-3.4 or android-3.4-compat

2012-05-23 Thread Andy Green

On 22/05/12 23:57, Somebody in the thread at some point said:

On 05/21/2012 09:21 PM, Andy Green wrote:

On 22/05/12 01:58, Somebody in the thread at some point said:

On Mon, May 21, 2012 at 10:33:47AM -0700, John Stultz wrote:

like Andy, I am a bit concerned that we merge the android stuff
into the linaro-core and that we get android candies in 'vanilla'
kernel. can't we (shouldn't we) have -android on top of -core and
pull -android only into 'android' kernel? it's true that for most
things, -android is not impacting a 'vanilla' kernel, but clearly

from the outside (community *and* customers) a kernel 'tainted'

with Android is not a 'vanilla' kernel anymore...


So this re-opens the discussion we've been having since at least
last Oct in moving to a consolidated kernel.

Since Android upstreaming is an very active goal of Linaro, I think
there's strong technical value in putting the Android patches in
along with all the other Linaro trees, as it allows us to work out
any sort of incompatibilities or issues, so we can resolve them
prior to being pushed upstream.


I'm quite +1 on what John is saying. There was a time when there was
great uncertainty about the future of the Android patches, but since
Linus' comment last year it's become dead certain that the functionality
/will/ be merged upstream. We can pave the way by getting any
integration issues sorted out early -- similarly to what we do for
practically everything else in linux-linaro.


Hm I just said we should audit it for being dependent on CONFIG_ANDROID.

If we KNOW that deconfiguration of CONFIG_ANDROID is equivalent to not
having Androidization patched in, people will stop wanting to get rid
of the patches. But since Google's interest is in the case it is
configured, I doubt they took care about having it disabled well.


For new or optional functionality, this is usually the case, but not for
all changes.
Having multiple config based code paths has additional maintainance
burden, so frequently if a change really should be generic there isn't
any need for a config. The simplest example of this are bug fixes, which
shouldn't be configurable off :)


For an example we had a problem yesterday with the Androidization 
interactive cpufreq governor turning up unexpectedly in an Ubuntu 
build and spamming block task logs.  I dunno why it appeared yet, maybe 
it's marked up as defauly=y or some config fumble on part of guy who 
built the kernel.



For other configurable features in the mainline kernel, part of the
deal of getting in there is that they can be turned off nicely.
There's even a wholesale CONFIG_PM. But the remaining (200 or so last
time I looked) Androidization patches haven't been through that kind
of scrutiny by anyone. Again last time I looked they fiddled with a
fair amount of kernel guts, sometimes with additional config coverage
but not always.

Initially we added without discrimination that 7 year old patch that
turns dmesg into junk to llct because it came in with Google's
Androidization series. It suggests we're just shovelling them on
without any plan at the moment.



And I'd say in this case things worked ideally! Android tree had a very
old hack that has since become obsolete. You noticed it in the tree and


Yeah but that's what I am saying, we shovelled the patches on with no 
plan about assessment or audit and just waited for trouble.  It's fair 
enough to do that on android-specific tree because it's for benefit of 
Android guys.  But some vanilla people don't want to participate in 
finding bugs from non-mainline Android code they don't care about.



requested it be reverted. I've generated a patch to do so, and plan to
send it to AOSP in my next submission bundle. Once the Google guys
rebase, and squish the two patches down, we're down one more patch. This
is exactly the type of integration work I think we benefit from.

If this were something that we went in and just configured off, its less
likely anyone would notice it was unnecessary until we finished
upstreaming all the larger changes we're focusing on.


Some consumers of trees that are basing on linux-linaro-core-tracking 
actively don't want the Androidization stuff and we need to make sure 
their needs are met.



Similarly, Andrey and Tushar found early cases during the first few
integration attempts where parts of the Android patch set didn't align
with non-Android builds. They submitted patches that have since been
pushed back to AOSP.


With regard to your characterization of shovelling the patches in, its
true we've traditionally taken the patch tree in its entirety, in order
to produce Android builds that were fully functional. The positive news
is that as items have been making it upstream, we may soon be able to
reverse the model, only hand picking specific required changes from the
AOSP tree. This possibility has different pros and cons, so it may not
be the right approach, but its something I'll be looking at in the future.


If we're

Re: thermal issue on panda

2012-05-23 Thread Andy Green

On 23/05/12 18:00, Somebody in the thread at some point said:

Hi,

I have successfully tested one of the latest daily build. The thermal
issue doesn't occur anymore


Great - thanks a lot for the report and retest.

-Andy


Thanks,
Vincent

On 17 May 2012 08:57, Ricardo Salvetiricardo.salv...@linaro.org  wrote:

On Wed, May 16, 2012 at 8:51 AM, Andy Greenandy.gr...@linaro.org  wrote:

On 16/05/12 19:49, Somebody in the thread at some point said:


On 14 May 2012 16:12, Andy Greenandy.gr...@linaro.orgwrote:


On 14/05/12 20:53, Somebody in the thread at some point said:



On 14/05/12 20:45, Somebody in the thread at some point said:



Hi Aneesh,

Adding linaro-dev in the loop as someone else could be also interested

I have reproduced my thermal error with a lava test so you can have a
complete log available here:
http://validation.linaro.org/lava-server/scheduler/job/18564/log_file

As a summary of the problem, the panda board turns off during some
sysbench tests because the SDRAM has exceeded its temperature limit




Recently Sebastien Jan at TI found that on tilt-3.3, cpu_idle is
interacting badly with smartreflex and the wrong Vcore can be selected
for 4460.

At the moment we disabled 1.2GHz on tilt-3.3, we think we have a fix +
workaround and I'll update with it tomorrow.




tilt-3.3 is updated with the fixes and workaround of disabling CPU_IDLE,
please give that a try.



Hi Andy,

Is there any daily build  hwpack that is available with this version
on tilt-3.3 so I will be easier for me to test it?


The Linaro Panda hwpack is based on tilt-3.3, but I don't know if it has
taken in the latest patches yet (it should).


The latest kernel packages are always published at our Kernel PPA,
that is manually copied to the Overlay at least once a week.

Check 
https://launchpad.net/~linaro-maintainers/+archive/kernel/+packages?field.name_filter=lt-omapfield.status_filter=publishedfield.series_filter=precise
for the latest lt-omap kernel, based on the latest changes from Andy.

Unfortunately the config changes are not propagated automatically yet,
so I had to update the package config by hand to properly disable it.
The new build should be available at the PPA in a few hours, and you
can follow the progress at
https://ci.linaro.org/jenkins/view/Ubuntu%20Packaged%20Kernels/job/create-packaged-linux-linaro-lt-omap-3.3/38/
and https://code.launchpad.net/~jcrigby/+recipe/linux-linaro-3.3-lt-omap-daily.

Please check the package changelog to confirm the hash from the LT's tree.

Cheers,
--
Ricardo Salveti de Araujo



--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: android-3.4 or android-3.4-compat

2012-05-23 Thread Andy Green

On 24/05/12 06:42, Somebody in the thread at some point said:

On Wed, May 23, 2012 at 02:21:50PM +0800, Andy Green wrote:

If we KNOW that deconfiguration of CONFIG_ANDROID is equivalent to not
having Androidization patched in, people will stop wanting to get rid
of the patches. But since Google's interest is in the case it is
configured, I doubt they took care about having it disabled well.


For new or optional functionality, this is usually the case, but not
for all changes.  Having multiple config based code paths has
additional maintainance burden, so frequently if a change really
should be generic there isn't any need for a config. The simplest
example of this are bug fixes, which shouldn't be configurable off :)


For an example we had a problem yesterday with the Androidization
interactive cpufreq governor turning up unexpectedly in an Ubuntu
build and spamming block task logs.  I dunno why it appeared yet,
maybe it's marked up as defauly=y or some config fumble on part of
guy who built the kernel.


Generally when analyzing a situation like this I think the first
question is whether feature X will be merged upstream, and then the
question is whether it would be protected by CONFIG_ANDROID.

How does the interactive governor fair against this criteria? Will it be
accepted upstream, and if so, will it be behind CONFIG_ANDROID=y?


Initially we added without discrimination that 7 year old patch that
turns dmesg into junk to llct because it came in with Google's
Androidization series. It suggests we're just shovelling them on
without any plan at the moment.



And I'd say in this case things worked ideally! Android tree had a very
old hack that has since become obsolete. You noticed it in the tree and


Yeah but that's what I am saying, we shovelled the patches on with
no plan about assessment or audit and just waited for trouble.  It's
fair enough to do that on android-specific tree because it's for
benefit of Android guys.  But some vanilla people don't want to
participate in finding bugs from non-mainline Android code they
don't care about.


Am I right in thinking the issue you're running into here is that your
customer has direct expectations for the tree you're maintaining, which
makes adding unexpected instability on a vanilla build very
undesireable?

(If that's not the case, then generally I don't see a problem with
broadening the group testing the Androidization patches to the vanilla
set -- they will be beta testing, but that's one key part of open source
QA.)


Pretty much, I think they're saying to their customers, here's an 
enabled vanilla tree and then nobody wants to see problems coming from 
OOT Androidization series.  Since we already had funny things in 
vanilla build from the series, this isn't so paranoid to be concerned about.



Personally I like the idea of the Androidization becoming part of
the basis because it puts us in generally converged direction with
mainline.  But then we have a responsibility to make it as
transparent as mainline will insist that it is if we expect members
are seriously going to offer vanilla kernels on this basis.


I like it too. What could we do cheaply that will give us the
transparency or policy that addresses the risk you've outlined?


Someone needs to audit the OOT Androidization stuff and confirm that for 
patches that go out of their box, ie, reach out of /staging or some 
specific driver:


 - the impact of the patch is negated if CONFIG_ANDROID or some more 
specific config is disabled, or,


 - remove the patch as too invasive, or,

 - conclude the patch is useful and needed in vanilla case too

there's a big variety of out of the box patches for stuff like cache 
code, mmc core, network stack and so on in that series last time I 
looked.  We should give some assurance for people using 
linux-linaro-core-tracking that someone at least looked at each of those 
cases and determined its status as above.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: android-3.4 or android-3.4-compat

2012-05-21 Thread Andy Green

On 21/05/12 18:27, Somebody in the thread at some point said:

hi,

On Fri, May 18, 2012 at 6:00 AM, Andy Green andy.gr...@linaro.org
mailto:andy.gr...@linaro.org wrote:

So I just wanted to check first with folks to make sure there are no
objections to merging in the -compat changes, and that the timing of
merging in these changes isn't problematic (I can happily hold
off till
this months release is done, so we don't risk any last minute
gotchas).


The only worry I can see is that now even vanilla versions of LT
kernels are basing off llct that includes Androidizaton, even
vanilla will have possibly invasive wakelock code.

It might be good to briefly audit the changes to confirm they don't
appear if CONFIG_ANDROID is off.  Google might not take much care
about that case but I think it might be important for us.


like Andy, I am a bit concerned that we merge the android stuff into the
linaro-core and that we get android candies in 'vanilla' kernel. can't
we (shouldn't we) have -android on top of -core and pull -android only
into 'android' kernel? it's true that for most things, -android is not
impacting a 'vanilla' kernel, but clearly from the outside (community
*and* customers) a kernel 'tainted' with Android is not a 'vanilla'
kernel anymore...

I really like the linux-core tree by the way, and the fact that we get
Linaro technologies pre-integrated is helping us clearly. I think if we
only add -android as a branch on top of -core, then that should be enough.

Then Andy (or other LT) would pull -core into their -vanilla, and pull
-android branch into the LT androidized kernel!


Right that is how it used to be until recently.  But to be fair to 
platform guys, recently mainline did bring a lot of Android stuff back 
into vanilla staging with intention to make it a permanent part of vanilla.


The problem is they were the easy bits of Androidization that would 
stay in the staging box.


The Androidization in llct and this new tranche is more invasive to the 
general tree.  Despite I am not on John's whitelist of People Whose 
Opinions Matter for that subject, maybe we should take some care to 
either audit what we're adding to vanilla or as Nicolas is suggesting 
separate it out again.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: New Gator version ready for Linaro kernels / Mali

2012-05-17 Thread Andy Green

On 17/05/12 15:37, Somebody in the thread at some point said:

On Thu, 2012-05-17 at 07:42 +0800, Andy Green wrote:

Just curious... how many LTs have Mali stuff?  If it's more than one, we
should perhaps be talking about moving it to linux-linaro-core-tracking.


We have two teams with three different versions of the driver ;-) with,
I suspect, custom modifications (different memory management
components?).

 From my bystanders point of view, the interaction with closed source
binary blobs seems to cause people enough nightmares without also trying
to converge code-lines between teams. Especially when engineering
resources are spread so thin.


Well...


Fortunately (?), the two teams have the drivers under different paths
with different module and Kconfig option naming, so they could coexist
in the same tree.


... without underestimating the problems (which we know well from SGX), 
this is exactly Linaro's core business to sort out isn't it?  I mean 
they're even nominally *Linaro* LT trees and they're divergent on a 
critical, expensive chunk of code and we're saying, but it's hrd.


My guess is those teams lose sleep over Mali same as we lost much sleep 
over SGX and would welcome getting a single, latest version with correct 
userland handed to them, so there's one thing to talk about with ARM. 
Then by fixing this Linaro directly and visibly has added value for the 
members involved.


Whatever customizations are patched on top need to come out of the 
woodwork and get discussed what they're for.  Depending what they are 
they could either go in llct if acceptable to all parties or if 
necessary get stitched in smarter so they're enabled by flags from 
plat-...er DT.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: New Gator version ready for Linaro kernels / Mali

2012-05-17 Thread Andy Green

On 17/05/12 21:26, Somebody in the thread at some point said:

On Thu, May 17, 2012 at 2:21 PM, Scott Bambrough
scott.bambro...@linaro.org  wrote:

On 12-05-17 03:37 AM, Jon Medhurst (Tixy) wrote:


On Thu, 2012-05-17 at 07:42 +0800, Andy Green wrote:


Just curious... how many LTs have Mali stuff?  If it's more than one, we
should perhaps be talking about moving it to linux-linaro-core-tracking.



We have two teams with three different versions of the driver ;-) with,
I suspect, custom modifications (different memory management
components?).



Yes, there are three different memory managers (UMP from ARM, HWMEM from
STE, and UMM).


  From my bystanders point of view, the interaction with closed source
binary blobs seems to cause people enough nightmares without also trying
to converge code-lines between teams. Especially when engineering
resources are spread so thin.

Fortunately (?), the two teams have the drivers under different paths
with different module and Kconfig option naming, so they could coexist
in the same tree.



It would be best if the driver and user space was converted to use UMM so we
could drop UMP/HWMEM, and standardize on one driver.  Added Jesse here as he
may have some info that is relevant.


Scott is right, and we are pushing slowly in that direction, but it
will be a while before that is possible for all Mali400 instances
could be supported from a single stack.


What does this mean for the unified kernel effort then?

We should attempt to unify kernels excluding Mali, or we should wrap or 
capture the differences in Mali?


Is there anything that the unified kernel effort can do (I mean in terms 
of slotting things in llct and the like) that can converge with where 
UMM-uber-alles is headed?


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: 12.05 linux-linaro kernel tree

2012-05-17 Thread Andy Green

On 17/05/12 17:41, Somebody in the thread at some point said:

On Thu, 2012-05-10 at 23:34 +0400, Andrey Konovalov wrote:

Greetings,

So far I wasn't updating the linux-linaro tree since the 12.04 release.
(The generic topic updates were being done to the
linux-linaro-core-tracking tree)

Now it is time to move the focus to the linux-linaro tree. For one week
it will use the mainline tip as the base.


What happened to this?

linux-linaro hasn't changed for 4 weeks now, so our vexpress 'tracking'
builds of Android and Ubuntu are in fact the same kernels as the 12.04
release.


It doesn't matter as long as llct is moving - and it has been, Andrey is 
doing a really nice job.  If we can get all the LTs to base on llct, and 
get all the important things standardized in llct, then everything will 
come right.


Nobody cares that we glued a couple dozen patches from ARM LT on one 
other LT tree as a one-off.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: New Gator version ready for Linaro kernels / Mali

2012-05-17 Thread Andy Green

On 17/05/12 22:44, Somebody in the thread at some point said:

On Thu, May 17, 2012 at 3:33 PM, Andy Greenandy.gr...@linaro.org  wrote:

On 17/05/12 21:26, Somebody in the thread at some point said:


On Thu, May 17, 2012 at 2:21 PM, Scott Bambrough
scott.bambro...@linaro.orgwrote:


On 12-05-17 03:37 AM, Jon Medhurst (Tixy) wrote:



On Thu, 2012-05-17 at 07:42 +0800, Andy Green wrote:



Just curious... how many LTs have Mali stuff?  If it's more than one,
we
should perhaps be talking about moving it to
linux-linaro-core-tracking.




We have two teams with three different versions of the driver ;-) with,
I suspect, custom modifications (different memory management
components?).




Yes, there are three different memory managers (UMP from ARM, HWMEM from
STE, and UMM).


  From my bystanders point of view, the interaction with closed source
binary blobs seems to cause people enough nightmares without also trying
to converge code-lines between teams. Especially when engineering
resources are spread so thin.

Fortunately (?), the two teams have the drivers under different paths
with different module and Kconfig option naming, so they could coexist
in the same tree.




It would be best if the driver and user space was converted to use UMM so
we
could drop UMP/HWMEM, and standardize on one driver.  Added Jesse here as
he
may have some info that is relevant.



Scott is right, and we are pushing slowly in that direction, but it
will be a while before that is possible for all Mali400 instances
could be supported from a single stack.



What does this mean for the unified kernel effort then?

We should attempt to unify kernels excluding Mali, or we should wrap or
capture the differences in Mali?

Is there anything that the unified kernel effort can do (I mean in terms of
slotting things in llct and the like) that can converge with where
UMM-uber-alles is headed?


Naive question alert...

If the Mali driver is an out-of-tree module, does it matter?


Last time I looked in Dec, it and its lovely symlinks were in-tree.

Who are you asking does it matter to?  If you are asking, does it help 
the unified kernel effort, sure, OOT module succeeds to hide the poop.


In the larger sense of Linaro's legacy, meaning, value...

-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: 12.05 linux-linaro kernel tree

2012-05-17 Thread Andy Green

On 17/05/12 23:01, Somebody in the thread at some point said:

On Thu, 2012-05-17 at 22:40 +0800, Andy Green wrote:

On 17/05/12 17:41, Somebody in the thread at some point said:

On Thu, 2012-05-10 at 23:34 +0400, Andrey Konovalov wrote:

Greetings,

So far I wasn't updating the linux-linaro tree since the 12.04 release.
(The generic topic updates were being done to the
linux-linaro-core-tracking tree)

Now it is time to move the focus to the linux-linaro tree. For one week
it will use the mainline tip as the base.


What happened to this?

linux-linaro hasn't changed for 4 weeks now, so our vexpress 'tracking'
builds of Android and Ubuntu are in fact the same kernels as the 12.04
release.


It doesn't matter as long as llct is moving - and it has been, Andrey is
doing a really nice job.  If we can get all the LTs to base on llct, and
get all the important things standardized in llct, then everything will
come right.

Nobody cares that we glued a couple dozen patches from ARM LT on one
other LT tree as a one-off.


OK, so you're saying linux-linaro is dead/on-hold and I should go back
to maintaining my own branches for releasing Ubuntu and Android VExpress
kernels? If that's true, I wish people would actually tell me these
things.


Dude I'm not in charge, I'm just relating the facts.

linux-linaro-tracking is currently meaningless to anyone.  Naturally it 
doesn't get updated, it's a meaningless Potemkin village.


llct is very valuable though and if we take care about it as we all 
should, eventually it will be able to generate a meaningful 
linux-linaro-tracking itself because it caused the LTs to converge on 
all the critical points.


In the meanwhile the thing we should all be taking care about is 
understanding the current deep incompatibilities in LT trees - like Mali 
- and steering things in the right direction.  But somehow excluding 
topics became the fetish for half a year now and afaik nobody - nobody - 
has actually tried to bind the LT trees together to discover the issues 
since I last did it in Dec.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: android-3.4 or android-3.4-compat

2012-05-17 Thread Andy Green

On 18/05/12 09:49, Somebody in the thread at some point said:

Hey Andrey, Zach,
So I'm back from my vacation, and have found that the Android team has
released a -compat tree for their 3.4 kernel. Basically this tree
re-adds some items like earlysuspend and classic wakelocks in order to
provide better compatibility with old (and by old, I really mean current
as far as we see - so ICS and earlier) Android userland.

Since we're still shipping ICS, and have no access to whatever the
Android 5.0 userland will be, it seems merging in the -compat tree would
make sense.

However, I know Tixy and others have already tried to address the lack
of earlysuspend in the android-3.3+ kernels, so I wanted to double check
that this wouldn't cause additional pain (since those adjustments might
need to be reverted).

So I just wanted to check first with folks to make sure there are no
objections to merging in the -compat changes, and that the timing of
merging in these changes isn't problematic (I can happily hold off till
this months release is done, so we don't risk any last minute gotchas).


The only worry I can see is that now even vanilla versions of LT kernels 
are basing off llct that includes Androidizaton, even vanilla will have 
possibly invasive wakelock code.


It might be good to briefly audit the changes to confirm they don't 
appear if CONFIG_ANDROID is off.  Google might not take much care about 
that case but I think it might be important for us.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: New Gator version ready for Linaro kernels / Mali

2012-05-16 Thread Andy Green

On 16/05/12 23:58, Somebody in the thread at some point said:

Hi -


ARM have released a new version of Developer Studio 5 (DS-5) and we now
have a new version of the Gator component [1] to go with this which
needs updating in all Linaro kernel trees that will be part of the 12.05
release.

For those people maintaining kernel trees here is what this means...

- If your kernels are including the linux-linaro-core-tracking [2]
branch then you will get the new Gator version from this when it is
updated over the next couple of days. You don't need to do anything
except to make sure you are up to date with this branch before the 12.05
release.


I suspect we'll be issuing tilt-3.3 again, so even though we're on llct 
for tracking we'll have to revert and update.



For those people who have applied Mali driver patches to support
profiling by Gator: you don't need to modify those Mali patches, just
take the new version of Gator, this will still work OK.


Just curious... how many LTs have Mali stuff?  If it's more than one, we 
should perhaps be talking about moving it to linux-linaro-core-tracking. 
 Presumably that then needs coordination about matching userlands in 
multiple LTs which will need some time.  Even if Mali is in good sync 
today between multiple LTs the architecture of each LT having their own 
copy of what's meant to be permanently in sync invites problems.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: 12.05 linux-linaro kernel tree

2012-05-15 Thread Andy Green

On 15/05/12 23:01, Somebody in the thread at some point said:


If it's the case that stuff in linaro tree is more upstream-converged than
what Tushar's tree works with, then we can put it another way: the current
implementation in Samsung tree (no ding intended since it can just as easily
be any of us and no doubt soon will be) needs to be fixed to work with
current upstream-headed pieces it needs.


Yes, indeed. We are working on fixing this stuff. Just that, it won't be
fixed before 2012.05 release. That is why I was wondering whether Samsung
LT Android solution could use linux-linaro tree.


Understood... for one reason and another we often can't do stuff for 
monthly release timescale either and have to pass on it.


However in medium term, the LT trees are going to have to become 
compatible with llct, and it's sensible enough because llct is closer to 
what's going to mainline than what the LTs individually have.  Otherwise 
there'll never be any genuine unified tree.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: 12.05 linux-linaro kernel tree

2012-05-10 Thread Andy Green

On 11/05/12 10:19, Somebody in the thread at some point said:

On Fri, May 11, 2012 at 3:43 AM, Andy Greenandy.gr...@linaro.org  wrote:

On 11/05/12 08:27, Somebody in the thread at some point said:


  4. in between RCs, we only move mainline on our linux-linaro release
baseline forward if we see a working tracking build that wouldn't drop
any topics that already made it into this RC cycle.



The probability of getting a good unified tree follows the kernel cycle, we
all have good reasons to have tried to arrive at a good, working, release.
  Sometimes we only get a reasonably good result a week or two after Linus'
release.

For that reason maybe you should just be trying to 'release' a release-basis
unified tree, ie, the 3.4 one targeted now as the deliverable.  It still has
meaning to make a monthly release of that since it can collect stable
mainline updates and updates from each LT release tree that happened in the
meanwhile.

We do need to create these intermediate unified trees so we know what to fix
on our trees so they can go in smoothly, but it matters less then if one day
half the LT trees are missing on it since it's of interest only for LTs and
platform guys to study what else needs solving on the LT trees.

I still think you won't get anywhere useful until we are trying to build the
unified trees for real.  Then we can start the needed work to make them fit
together properly, until then we're treading water in technical debt.
  Discussing how to run the tree is something to do later after gaining this
experience.

I had a look at the LT gits

ARMMerge-managed  integration-linux-vexpress 3.4-rc4
TI Rebase-managed tilt-tracking  3.4-rc4
Freescale  Merge-managed  lt-3.4 3.4-rc3
SamsungRebase-managed tracking   3.4-rc3
STEMerge-managed  integration-linux-ux5003.4-rc6

(wow STE - on igloocommunity.org - have a LOT of patches!  I thought we were
leading the way)

Actually locally TILT are on -rc6 but there was almost no conflict coming
between -rc4 and -rc6.  If you take the approach to merge these trees, I
found that late in the cycle it's usually pretty forgiving about some
variation in basis.

So why not give these all a test merge today and see what starts falling
out?  I am sure we all have something to fix and there may be larger issues


I will check with Andrey/Ricardo if we can do that :) ... would it be
exciting enough if we just try adding TI to the mix this month (and
not all?)?

In any case, you should definitely send Andrey a list of topic
branches you want to register for linux-linaro and things will get
picked up as soon as Andrey can I guess :).


Sure, actually merging trees and dealing with the fallout, even if it's 
just one more tree if that's all you can handle, will get us moving 
further forward than just talking about it.


AIUI this topic thing is not blocking you, you can just merge 
tilt-tracking as a single topic for now and discover the pain points. 
 All I am planning to provide ultimately is an in-tree text file 
mapping topic names to head hashes, as I produced for Andrey before, not 
register topics anywhere.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: 12.05 linux-linaro kernel tree

2012-05-10 Thread Andy Green

On 11/05/12 13:04, Somebody in the thread at some point said:

On 05/11/2012 01:04 AM, Andrey Konovalov wrote:

Greetings,

So far I wasn't updating the linux-linaro tree since the 12.04 release.
(The generic topic updates were being done to the
linux-linaro-core-tracking tree)

Now it is time to move the focus to the linux-linaro tree. For one week
it will use the mainline tip as the base. Then, on next Thursday the
most recent -rc will be selected as the base, and won't be changed until
12.05 is released. Most probably it will be v3.4-rc7.

The 12.05 linux-linaro tree will get the ARM and Samsung LTs topics plus
the 7 generic topics currently included into the
linux-linaro-core-tracking tree:
ufs (ufs-for-linux-linaro)
emmc (emmc-for-linux-linaro)
thermal_exynos4_imx6 (thermal_exynos4_imx6_work)
linaro-android-3.4
armlt-gator (tracking-armlt-gator)
umm-wip (umm-3.4rc4-wip)
linaro-configs-3.4
If you don't see your generic topic in this list, but you think it
should be there, please let me know ASAP. If you have a new topic to
add, please send me the request before the next Thursday, May 17; the
sooner, the better. The requirements for a topic can be found here:
https://wiki.linaro.org/Platform/DevPlatform/LinuxLinaroKernelTreeProcess#Adding_a_topic_to_linux-linaro_kernel_and_maintaining_it


The landing teams - please update your topic branches if needed:
ARM:
tracking-armlt-hdlcd tracking-armlt-mmc
tracking-armlt-arm-arch-fixes tracking-armlt-misc-fixes
tracking-armlt-ubuntu-config tracking-armlt-android-config
Samsung:
topic/base topic/core topic/bl topic/dt topic/fb topic/pd
topic/s2ram topic/asv_cpufreq topic/led topic/dummy_reg
topic/gadget topic/touch topic/wlan topic/audio topic/hdmi
topic/mali topic/cma_v24 topic/android_config


Is any other LT using CMA patchset? If so, this topic branch can be
moved into linux-linaro-core-tracking.


We'll be using it again shortly, CMA is in linux-linaro-core-tracking 
already though, I believe the same version #24.


http://git.linaro.org/gitweb?p=kernel%2Flinux-linaro-tracking.gita=searchh=refs%2Fheads%2Flinux-linaro-core-trackingst=commits=CMA

-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: linux-linaro-core-tracking tree created

2012-05-06 Thread Andy Green
On 04/26/2012 10:49 AM, Somebody in the thread at some point said:
 On 04/26/2012 01:54 AM, Somebody in the thread at some point said:

Hi -

 Please don't remove your dt bits! Instead let me know when I can drop
 the conflicting (== redundant) commits from my tracking-unsorted branch.
 
 It's just that one patch from Grant that sets up the DT machine name
 stuff in board-omap4panda.  If it's not intentional you're providing it
 I can stick it back on when you remove it on your side.

This happened and I added the support back in OK, thanks.

 Maybe it's something on my side but I noticed I have android logging
 coming on my vanilla defconfig now.  I can force it off in my defconfig,
 but I am wondering if that's intentional?

 No, it wasn't. In the Android patchset all their new config options are
 y by default, regardless of CONFIG_ANDROID even. We (well, John
 Stultz) have started changing these defaults to n, and to enabling
 them in configs/android.conf (the WAKELOCK ones,
 ANDROID_PARANOID_NETWORK, and NET_ACTIVITY_STATS).
 
 Right that's what's needed.  I'll just wait for this to go away as we
 track -core then.

Since it's still there in today's llct and making me see double, I
tracked it down to this from Androidization series

109a3af ARM: Make low-level printk work

I don't think that makes any sense any more and should be removed,
unless there's some case on Android side that really needs it.  Vanilla
has better DEBUG_LL support now since 2005 when that patch was
introduced and the Android kernels will inherit it.  I've reverted it in
my tree since we commonly need DEBUG_LL on (but we don't need printascii
garbling all our logging as if there was an echo in there).

-Andy

-- 
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  -
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: linux-linaro-core-tracking tree created / update frequency

2012-05-02 Thread Andy Green
On 04/25/2012 03:43 AM, Somebody in the thread at some point said:

Hi -

  The plan is to rebase this tree on the
 current mainline tip daily.

Now we're basing on it, our tracking progress depends on these daily
rebases, but it's stuck since Friday.  So we're missing -rc5 for 3 days.

-Andy

-- 
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  -
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: linux-linaro-core-tracking tree created

2012-04-25 Thread Andy Green
On 04/25/2012 10:22 AM, Somebody in the thread at some point said:

Hi -

 Maybe it's something on my side but I noticed I have android logging
 coming on my vanilla defconfig now.  I can force it off in my defconfig,
 but I am wondering if that's intentional?

It doesn't seem to be android logger itself, just something else I
always saw after Androidization, kernel logging that's anyway enabled to
console by printk / loglevel is repeated without having it severity tag
parsed off.  That's objectionable now the basis is androidized and it
still happens even with CONFIG_ANDROID off.

 We're still undergoing uplevel on tilt-tracking and didn't get back to
 tilt-3.3 functionality yet (OMAP4 boot is busted, although hopefully we
 have a fix for that today), so I put off this common config thing.

OMAP4 is booting again FWIW just a few dings to sort out.

 However now I see it included, aren't most of the patches about board
 support redundant?  If LTs base on this, they will add in their own
 golden initial defconfig for their board(s) at that point; when they're
 combined they'll all be in the combined tree.  It seems like I shouldn't
 be seeing a defconfig about Panda coming in with this base tree, but
 create it (perhaps after mixing in config fragments that did come in
 with the base tree) in my tree.

Looking closer at this, we prefer not to have CONFIG_MTD or CONFIG_JFFS
in the base config.  We don't really have a case for them on Panda.

You might want to push those out into a mtd.conf we will pass over, or
something similar.

-Andy

-- 
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  -
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: linux-linaro-core-tracking tree created

2012-04-25 Thread Andy Green
On 04/26/2012 01:54 AM, Somebody in the thread at some point said:

Hi -

 I've changed basis to it (there's not much choice but to take that
 approach since it's done with merges, but lack of any nexty content
 means it was painless), and it has updated thermal, CMA (#21 -  #24) and
 other little bits like Panda dt I could remove from our tree and use
 these common versions for.
 
 Please don't remove your dt bits! Instead let me know when I can drop
 the conflicting (== redundant) commits from my tracking-unsorted branch.

It's just that one patch from Grant that sets up the DT machine name
stuff in board-omap4panda.  If it's not intentional you're providing it
I can stick it back on when you remove it on your side.

 Maybe it's something on my side but I noticed I have android logging
 coming on my vanilla defconfig now.  I can force it off in my defconfig,
 but I am wondering if that's intentional?
 
 No, it wasn't. In the Android patchset all their new config options are
 y by default, regardless of CONFIG_ANDROID even. We (well, John
 Stultz) have started changing these defaults to n, and to enabling
 them in configs/android.conf (the WAKELOCK ones,
 ANDROID_PARANOID_NETWORK, and NET_ACTIVITY_STATS).

Right that's what's needed.  I'll just wait for this to go away as we
track -core then.

As I mentioned before the LT trees also have some config mistakes like
this that never show up on their tree because the stuff is always
configured on.  When they're combined, several small - trivial - Kconfig
bugs to fix like that will shake out from all over.  When we start
seeing complaints about that, I'll know we're really getting our teeth
into combining trees.

 We're still undergoing uplevel on tilt-tracking and didn't get back to
 tilt-3.3 functionality yet (OMAP4 boot is busted, although hopefully we
 have a fix for that today), so I put off this common config thing.

 However now I see it included, aren't most of the patches about board
 support redundant?  If LTs base on this, they will add in their own
 golden initial defconfig for their board(s) at that point; when they're
 combined they'll all be in the combined tree.  It seems like I shouldn't
 be seeing a defconfig about Panda coming in with this base tree,
 
 yes (this comes from the unsorted topic wich I am going to drop from
 this tree) ...

Fine.

 but create it (perhaps after mixing in config fragments that did come in
 with the base tree) in my tree.
 
 ...and yes
 
 Although as I say our tracking is still missing some topics compared to
 tilt-3.3 as we are uplevelling, with this change of basis and
 elimination of CMA#21 delta we had until now, actually tilt-tracking can
 be considered for trial merge in unified tree I think.  It's not very
 meaningful in terms of usefulness of our tree right now but it certainly
 should be interesting in terms of what makes trouble, if anything.
 
 Very good. I was thinking about creating (reusing actually)
 linux-linaro-tracking branch to be the linux-linaro-core-tracking plus
 the LT's topics. But I still have quite a long TODO list, and
 linux-linaro-core-tracking and linux-linaro branches are higher
 priorities for me. So no commitments WRT linux-linaro-tracking at the
 moment :)

Well, it's not like I'm in a rush for it.  But if we're not piling on
more LT trees aimed at 3.4 soon, we probably don't get a meaningful
combined tree for 3.4 release.  (I don't think ARM LT content + one
other LT tree tells us much since great as ARM LT stuff is, it's not a
full BSP tree like other LTs but just introduces novel features that
have nothing to conflict with except the odd Makefile one-liner).

Generally if all LTs are basing and tracking on -core, 90% of the
integration-readiness job is done.  So long as there's not too much
off-piste content showing up in diffstat from anyone, you'll likely be
surprised how easily they go together at that point (plus or minus
inevitable surprise from each tree that another tree had also patched
that Kconfig / Makefile now).

-Andy

-- 
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  -
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: linux-linaro-core-tracking tree created

2012-04-24 Thread Andy Green
On 04/25/2012 03:43 AM, Somebody in the thread at some point said:

Hi Andrey -

 I've just created linux-linaro-core-tracking branch in
 git://git.linaro.org/kernel/linux-linaro-tracking.git.
 It is based on mainline tip, and has all the Platform and Working Groups
 topics which would appear in the next linux-linaro kernel release. No
 topics from the Landing Teams there (this is what core implies). This

Nice job, thanks for the new branch which definitely solves the
chicken-and-egg.

In fact it's going to be a great tracking fake future upstream staging
point for all the good stuff being worked on that is not ready for
upstream yet.  It'll help the LT trees look more consistently like
future upstreams where the vendor content is already in too, and let
people use technologies like UMM easily long before they appear
upstream.  In that way hopefully we will provide

I've changed basis to it (there's not much choice but to take that
approach since it's done with merges, but lack of any nexty content
means it was painless), and it has updated thermal, CMA (#21 - #24) and
other little bits like Panda dt I could remove from our tree and use
these common versions for.  Otherwise it made very few conflicts
compared to yesterday's Linus HEAD we were already on and the tree is as
workable as it was.

http://git.linaro.org/gitweb?p=landing-teams/working/ti/kernel.git;a=summary

Maybe it's something on my side but I noticed I have android logging
coming on my vanilla defconfig now.  I can force it off in my defconfig,
but I am wondering if that's intentional?

We're still undergoing uplevel on tilt-tracking and didn't get back to
tilt-3.3 functionality yet (OMAP4 boot is busted, although hopefully we
have a fix for that today), so I put off this common config thing.

However now I see it included, aren't most of the patches about board
support redundant?  If LTs base on this, they will add in their own
golden initial defconfig for their board(s) at that point; when they're
combined they'll all be in the combined tree.  It seems like I shouldn't
be seeing a defconfig about Panda coming in with this base tree, but
create it (perhaps after mixing in config fragments that did come in
with the base tree) in my tree.

Although as I say our tracking is still missing some topics compared to
tilt-3.3 as we are uplevelling, with this change of basis and
elimination of CMA#21 delta we had until now, actually tilt-tracking can
be considered for trial merge in unified tree I think.  It's not very
meaningful in terms of usefulness of our tree right now but it certainly
should be interesting in terms of what makes trouble, if anything.

-Andy

-- 
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  -
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: linux-linaro-core-tracking tree created

2012-04-24 Thread Andy Green
On 04/25/2012 11:12 AM, Somebody in the thread at some point said:

 We're still undergoing uplevel on tilt-tracking and didn't get back to
 tilt-3.3 functionality yet (OMAP4 boot is busted, although hopefully we
 have a fix for that today), so I put off this common config thing.

 However now I see it included, aren't most of the patches about board
 support redundant?  If LTs base on this, they will add in their own
 golden initial defconfig for their board(s) at that point; when they're
 combined they'll all be in the combined tree.  It seems like I shouldn't
 be seeing a defconfig about Panda coming in with this base tree, but
 create it (perhaps after mixing in config fragments that did come in
 with the base tree) in my tree.
 
 We could just have the fragments per topic, and then the LT can decide
 either to add another fragment, or simply creating an entire different
 config to be used by default.
 
 Having everything in config fragments may help automating the builds,
 but I understand that having one defconfig might also help people that
 are consuming the tree directly.

Yes I'm not really referring to fragment process here, I understand the
idea and as I wrote expect the common one(s) to come in with this base tree.

What I'm talking about is ./configs/panda.conf brought in by this

http://git.linaro.org/gitweb?p=landing-teams/working/ti/kernel.git;a=commitdiff;h=36f22ea6ac55d44026d374669cb55c60bb366d4e

actually, now we don't maintain anything directly equivalent, we only
have omap4plus_defconfig that builds a single kernel that runs with
everything we support, including OMAP543x.

I guess panda.conf is trying to be mainline compatible OMAP44x0 Panda
config.  But what we're going to provide, and what's meaningful and
tested with our tree, will be this omap4plus_defconfig that appears in
our topics.  panda.conf that we are inheriting from this basis branch
may not even build with our tree, it's at least confusing to have it
there and at worst it'll mislead end users, rot as we go on etc.

We can figure out how to apply ./configs/linaro-base.conf to
omap4panda_defconfig and work with that.  But panda.conf coming in at
base tree is not meaningful and not tested on our tree, I think it and
the other board confs coming in probably need to be removed from the
basis tree and the LT minimal configs introduced in LT trees used instead.

-Andy

-- 
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  -
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Preliminary 12.04 linux-linaro kernel tree

2012-04-19 Thread Andy Green
On 04/19/2012 11:33 PM, Somebody in the thread at some point said:

 Andrey/Ricardo: do you agree? Can we make such a
 linux-linaro-tracking-core branch (and a tag accordingly)
 available
 that basically reflects the state we have after merging WG
 topics and
 before LT topics?
 
 
 Sure :) With just one difference probably. Shouldn't this
 linux-linaro-tracking-core branch be mainline tip based, not just
 the most recent -rc? (So it would be the real tracking tree.) I

That's the spirit ^^  Actually we found (with tilt patchload anyway) at
start of kernel cycle, there is often heavy breakage coming from
mainline HEAD day by day or even hour by hour.  Keeping on top of that
so you don't experience it all at once is really important.

But usually after the middle of the cycle, even trees that differ by two
-rcs are basically compatible and can be merged / rebased pretty painlessly.

However... spare a thought for how this'll scale for you personally when
you are dealing with say 10 LT trees each with 1000 patches.

When our tree hit 2100 patches (it should be half that at 3.4) it was
taking hours to rebase, merging is not markedly faster.  It's
single-threaded so throwing more cores at it doesn't help.

It's another reason separating out -core flavouring uplevel and unified
uplevel is the right path.

 also planned to have a linux-linaro-tracking branch to be exactly
 the same linux-linaro-tracking-core branch plus the current LT's
 topics for the next linux-linaro release. The
 linux-linaro-tracking* branches would be for new work being done
 (like moving to new CMA version), while the linux-linaro branch
 would be used mostly for testing and bug fixing. When we see that
 the linux-linaro-tracking is good enough, we move linux-linaro
 to it (rebasing to the nearest -rc if necessary).
 This implies that two versions of the topics must be supported: the
 current (use the same -rc as linux-linaro) and the next
 (mainline tip based) ones. Guess the WGs and the LTs are already
 doing something similar anyway.

In tilt anyway we just have tracking and release-based branch.  We do
use tags now to give tracking a granular history.  But there's no
concept of -rc based sub-release atm.  I guess you mention -rc basis
because you're looking to make it a rendezvous point for combined
tree, which is fair enough, although later in the cycle I found it's
really accepting of quite a bit of deviation from exact same basis.

Generally, we only trash tracking once per cycle at the start when
mainline undergoes its convulsion.  The rest of the cycle, tracking
should normally be tending to get better monotonically, since I don't
normally push a new tree until it seems to be performing as well as
what's in the repo already, unless there are special circumstances.

 Without thinking I would say that every branch (tracking, stable, etc.)
 and tag (release candidate, release etc.) should have the same -core
 subset explicitely marked.
 
 At best we could sneak that service in for todays
 release candidate?

 We probably could. But this has very little value for the current
 12.04 release. Having linux-linaro-tracking-core *well before* the
 12.05 release is much more important than right before the 12.04.
 That's why we could consider the linux-linaro-tracking* branches
 to follow the mainline tip more closely than with per -rc granularity.
 
 
 My understanding is that it would help for Andy for this release. Can we
 just do the tags/branches?

No I did not mention anything about that.  Today we only have half a
tree undergoing a delayed rebase on 3.4-rc3+.  That's running on its own
timetable (ie, as fast as we can do it) that is completely disconnected
to any monthly release action.

We need this -core thing not to speed us up for a monthly deadline but
because existing approach isn't workable.

We better get used to the idea that now we want HEAD of everything
(laudably) none of these trees, the LT ones, mainline, the mandatory
source trees, none of them intrinsically care a fig about some random
monthly release deadline and will only be in sync with what you want by
occasional accident.

Last known good approach is not what you might think in this case
either, since to combine them you'll have to revert all the trees to the
same (or similar if late in the cycle) basis point, and for some LTs
having to also revert to match the bad boy, that may be in worse state
than their HEAD.

You'll sometimes only be able reissue last known good combined tree,
not generate a new one at all.  The combined tree has some unique
characteristics.

-Andy

-- 
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  -
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog

  1   2   3   >