Hi Guys,
I need help on a Lollipop booting issue. I'm trying to boot Android 5.1.1 on a customer SoC which integrates Cortex-A9 MP and Mali 400. It's quite close to get into the launcher, but it fails to due to an ANR in SystemUI. The full logcat is attached, and some highlights of the log are as below.
1. There are quite some messages from Choreographer like this:
I/Choreographer( 1220): Skipped 391 frames! The application may be doing too much work on its main thread.
2. There a number of window freeze timeout messages in the log.
W/WindowManager( 1220): Window freeze timeout expired. W/WindowManager( 1220): Force clearing orientation change: Window{xxxxxxxxxxxxxx}
3. I see "Boot is finished", but right before it, there is a "BOOT TIMEOUT".
W/WindowManager( 1220): ***** BOOT TIMEOUT: forcing display enabled I/SurfaceFlinger( 874): Boot is finished (88437 ms)
I'm a bit new to Android, and running out of idea what is happening here. So any suggestions or comments about where to look at or how to debug such issue is highly appreciated.
Shawn
Hi
On Wed, Aug 26, 2015 at 5:48 PM, Shawn Guo shawn.guo@linaro.org wrote:
Hi Guys,
I need help on a Lollipop booting issue. I'm trying to boot Android 5.1.1 on a customer SoC which integrates Cortex-A9 MP and Mali 400. It's quite close to get into the launcher, but it fails to due to an ANR in SystemUI. The full logcat is attached, and some highlights of the log are as below.
- There are quite some messages from Choreographer like this:
I/Choreographer( 1220): Skipped 391 frames! The application may be doing too much work on its main thread.
hwc does not sent vsync I think. Check if it's the case. In omap4 the ueventd is used to receive vsync event
- There a number of window freeze timeout messages in the log.
W/WindowManager( 1220): Window freeze timeout expired. W/WindowManager( 1220): Force clearing orientation change: Window{xxxxxxxxxxxxxx}
- I see "Boot is finished", but right before it, there is a "BOOT TIMEOUT".
This is ok. Basically you are stuck on some services and the BOOT complete can not arrive.
Michael
W/WindowManager( 1220): ***** BOOT TIMEOUT: forcing display enabled I/SurfaceFlinger( 874): Boot is finished (88437 ms)
I'm a bit new to Android, and running out of idea what is happening here. So any suggestions or comments about where to look at or how to debug such issue is highly appreciated.
Shawn
linaro-android mailing list linaro-android@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-android
Hi
On Wed, Aug 26, 2015 at 7:38 PM, Michael Trimarchi michael@amarulasolutions.com wrote:
Hi
On Wed, Aug 26, 2015 at 5:48 PM, Shawn Guo shawn.guo@linaro.org wrote:
Hi Guys,
I need help on a Lollipop booting issue. I'm trying to boot Android 5.1.1 on a customer SoC which integrates Cortex-A9 MP and Mali 400. It's quite close to get into the launcher, but it fails to due to an ANR in SystemUI. The full logcat is attached, and some highlights of the log are as below.
- There are quite some messages from Choreographer like this:
I/Choreographer( 1220): Skipped 391 frames! The application may be doing too much work on its main thread.
hwc does not sent vsync I think. Check if it's the case. In omap4 the ueventd is used to receive vsync event
Try to boot in no-enforcing mode (or audit and add selinux rule). Next time it's better to have even a dmesg
Add the iptables support in the kernel or what is required for lollipop. What version of the kernel are you running?
Michael
- There a number of window freeze timeout messages in the log.
W/WindowManager( 1220): Window freeze timeout expired. W/WindowManager( 1220): Force clearing orientation change: Window{xxxxxxxxxxxxxx}
- I see "Boot is finished", but right before it, there is a "BOOT TIMEOUT".
This is ok. Basically you are stuck on some services and the BOOT complete can not arrive.
Michael
W/WindowManager( 1220): ***** BOOT TIMEOUT: forcing display enabled I/SurfaceFlinger( 874): Boot is finished (88437 ms)
I'm a bit new to Android, and running out of idea what is happening here. So any suggestions or comments about where to look at or how to debug such issue is highly appreciated.
Shawn
linaro-android mailing list linaro-android@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-android
-- | Michael Nazzareno Trimarchi Amarula Solutions BV | | COO - Founder Cruquiuskade 47 | | +31(0)851119172 Amsterdam 1018 AM NL | | [`as] http://www.amarulasolutions.com |
Hi Michael,
On Thu, Aug 27, 2015 at 2:52 AM, Michael Trimarchi michael@amarulasolutions.com wrote:
hwc does not sent vsync I think. Check if it's the case. In omap4 the ueventd is used to receive vsync event
Try to boot in no-enforcing mode (or audit and add selinux rule). Next time it's better to have even a dmesg
Add the iptables support in the kernel or what is required for lollipop. What version of the kernel are you running?
I'm running LSK 3.14 Android flavor. It seems that the issue is related to GPU driver. If I disable the GPU acceleration on UI by forcing hardwareAccelerated in frameworks/base/core/java/android/view/ViewRootImpl.java to be false, the ANR in SystemUI is gone. I guess that the GPU drive needs to be checked to understand what goes wrong in there. The same GPU driver works just fine on KitKat though. I'm wondering what's new with Lollipop causing a difference here?
Shawn
Hi
On Thu, Aug 27, 2015 at 3:50 PM, Shawn Guo shawn.guo@linaro.org wrote:
Hi Michael,
On Thu, Aug 27, 2015 at 2:52 AM, Michael Trimarchi michael@amarulasolutions.com wrote:
hwc does not sent vsync I think. Check if it's the case. In omap4 the ueventd is used to receive vsync event
Try to boot in no-enforcing mode (or audit and add selinux rule). Next time it's better to have even a dmesg
Add the iptables support in the kernel or what is required for lollipop. What version of the kernel are you running?
I'm running LSK 3.14 Android flavor. It seems that the issue is related to GPU driver. If I disable the GPU acceleration on UI by forcing hardwareAccelerated in frameworks/base/core/java/android/view/ViewRootImpl.java to be false, the ANR in SystemUI is gone. I guess that the GPU drive needs to be checked to understand what goes wrong in there. The same GPU driver works just fine on KitKat though. I'm wondering what's new with Lollipop causing a difference here?
Where I can see the hwc source code?
Michael
Shawn
Hi
On Thu, Aug 27, 2015 at 4:28 PM, Michael Trimarchi michael@amarulasolutions.com wrote:
Hi
On Thu, Aug 27, 2015 at 3:50 PM, Shawn Guo shawn.guo@linaro.org wrote:
Hi Michael,
On Thu, Aug 27, 2015 at 2:52 AM, Michael Trimarchi michael@amarulasolutions.com wrote:
hwc does not sent vsync I think. Check if it's the case. In omap4 the ueventd is used to receive vsync event
Try to boot in no-enforcing mode (or audit and add selinux rule). Next time it's better to have even a dmesg
Add the iptables support in the kernel or what is required for lollipop. What version of the kernel are you running?
I'm running LSK 3.14 Android flavor. It seems that the issue is related to GPU driver. If I disable the GPU acceleration on UI by forcing hardwareAccelerated in frameworks/base/core/java/android/view/ViewRootImpl.java to be false, the ANR in SystemUI is gone. I guess that the GPU drive needs to be checked to understand what goes wrong in there. The same GPU driver works just fine on KitKat though. I'm wondering what's new with Lollipop causing a difference here?
Where I can see the hwc source code?
Sorry I was a bit fast. Can you point out to the hardware abstraction layer and hardware composer in github or bitbucket?
Are you sure that you don't have any violation on selinux rule?
Michael
Michael
Shawn
-- | Michael Nazzareno Trimarchi Amarula Solutions BV | | COO - Founder Cruquiuskade 47 | | +31(0)851119172 Amsterdam 1018 AM NL | | [`as] http://www.amarulasolutions.com |
On Thu, Aug 27, 2015 at 10:38 PM, Michael Trimarchi michael@amarulasolutions.com wrote:
Sorry I was a bit fast. Can you point out to the hardware abstraction layer and hardware composer in github or bitbucket?
The code is not hosted anywhere like those.
Are you sure that you don't have any violation on selinux rule?
I'm not sure, and this is a check point too.
Shawn
Hi
On Thu, Aug 27, 2015 at 4:43 PM, Shawn Guo shawn.guo@linaro.org wrote:
On Thu, Aug 27, 2015 at 10:38 PM, Michael Trimarchi michael@amarulasolutions.com wrote:
Sorry I was a bit fast. Can you point out to the hardware abstraction layer and hardware composer in github or bitbucket?
The code is not hosted anywhere like those.
Are you sure that you don't have any violation on selinux rule?
I'm not sure, and this is a check point too.
This is my idea. In hwc, (harware composer layer) the vsync is sent by the hardware_module In depends on the architecture it can be implemented in software or hardware, and if you have some stuck in composition of the layer could be that this vsync can not advance and you can not decide when you need to present a new situation on the screen. In my code I have sw_vsync.c file if the hardware does not have any notification. The module should have an hook for this. I just asking if you can put in debug your hwc composer if you can understnad if the problem is there. For selinux if you boot in no enforcing mode is not a problem but if you boot in enforcing mode you can have some restriction.
adb shell dmesg | grep audit
Michael
Shawn
On Thu, Aug 27, 2015 at 10:51 PM, Michael Trimarchi michael@amarulasolutions.com wrote:
This is my idea. In hwc, (harware composer layer) the vsync is sent by the hardware_module In depends on the architecture it can be implemented in software or hardware, and if you have some stuck in composition of the layer could be that this vsync can not advance and you can not decide when you need to present a new situation on the screen. In my code I have sw_vsync.c file if the hardware does not have any notification. The module should have an hook for this. I just asking if you can put in debug your hwc composer if you can understnad if the problem is there.
Okay, will check tomorrow.
For selinux if you boot in no enforcing mode is not a problem but if you boot in enforcing mode you can have some restriction.
I have androidboot.selinux=disabled on my kernel cmdline. I suppose that enforcing mode is already disabled, right?
adb shell dmesg | grep audit
It gives "logd.auditd: start".
Shawn
Hi
After one year this thread was really useful ;)
On Thu, Aug 27, 2015 at 5:11 PM, Shawn Guo shawn.guo@linaro.org wrote:
On Thu, Aug 27, 2015 at 10:51 PM, Michael Trimarchi michael@amarulasolutions.com wrote:
This is my idea. In hwc, (harware composer layer) the vsync is sent by the hardware_module In depends on the architecture it can be implemented in software or hardware, and if you have some stuck in composition of the layer could be that this vsync can not advance and you can not decide when you need to present a new situation on the screen. In my code I have sw_vsync.c file if the hardware does not have any notification. The module should have an hook for this. I just asking if you can put in debug your hwc composer if you can understnad if the problem is there.
I'm working to fix the hwc ;)
Michael
Okay, will check tomorrow.
For selinux if you boot in no enforcing mode is not a problem but if you boot in enforcing mode you can have some restriction.
I have androidboot.selinux=disabled on my kernel cmdline. I suppose that enforcing mode is already disabled, right?
adb shell dmesg | grep audit
It gives "logd.auditd: start".
Shawn
linaro-android@lists.linaro.org