EGL problems on browser startup during Android 4.4 emulator tests, on aws only

RESOLVED FIXED

Status

Testing
General
RESOLVED FIXED
3 years ago
3 years ago

People

(Reporter: gbrown, Assigned: gbrown)

Tracking

Trunk
x86_64
Linux
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Assignee)

Description

3 years ago
I can now run xpcshell tests with an Android 4.4 avd running in a newer (sdk r24) emulator, on the same type of aws instances we use for Android 2.3. But all attempts to run browser-based tests in that environment consistently fail during Fennec startup.

https://treeherder.mozilla.org/#/jobs?repo=try&revision=1892cdbb4594

From http://ftp.mozilla.org/pub/mozilla.org/mobile/try-builds/gbrown@mozilla.com-1892cdbb4594/try-android-api-9/try_ubuntu64_vm_mobile_test-mochitest-1-bm115-tests1-linux64-build227.txt.gz, logcat shows:

13:52:28     INFO -  01-30 16:44:52.695 W/GeckoThread( 1313): zerdatime 530755 - runGecko
13:52:28     INFO -  01-30 16:44:53.695 I/ActivityManager(  390): Displayed org.mozilla.fennec/.App: +12s686ms
13:52:28     INFO -  01-30 16:44:53.885 E/EGL_emulation( 1313): rcCreateWindowSurface returned 0
13:52:28     INFO -  01-30 16:44:53.905 E/EGL_emulation( 1313): tid 1313: eglCreateWindowSurface(631): error 0x3003 (EGL_BAD_ALLOC)
13:52:28     INFO -  01-30 16:44:53.985 W/GeckoGLController( 1313): eglCreateWindowSurface returned no surface!
13:52:28     INFO -  01-30 16:44:55.695 I/GeckoConsole( 1313): Could not read chrome manifest 'file:///data/data/org.mozilla.fennec/chrome.manifest'.
13:52:28     INFO -  01-30 16:44:55.825 E/EGL_emulation( 1313): rcCreateWindowSurface returned 0
13:52:28     INFO -  01-30 16:44:55.825 E/EGL_emulation( 1313): tid 1313: eglCreateWindowSurface(631): error 0x3003 (EGL_BAD_ALLOC)
13:52:28     INFO -  01-30 16:44:55.845 W/GeckoGLController( 1313): eglCreateWindowSurface returned no surface!

13:52:28     INFO -  01-30 16:45:21.685 E/EGL_emulation( 1313): rcCreateWindowSurface returned 0
13:52:28     INFO -  01-30 16:45:21.705 E/EGL_emulation( 1313): tid 1313: eglCreateWindowSurface(631): error 0x3003 (EGL_BAD_ALLOC)
13:52:28     INFO -  01-30 16:45:21.705 W/GeckoGLController( 1313): eglCreateWindowSurface returned no surface!

13:52:29     INFO -  01-30 16:50:22.795 I/Gecko   ( 1313): Attempting load of libEGL.so
13:52:29     INFO -  01-30 16:50:22.805 D/        ( 1313): HostConnection::get() New Host Connection established 0xb8e756e0, tid 1335
13:52:29     INFO -  01-30 16:50:47.535 I/dalvikvm( 1313): threadid=3: reacting to signal 3
13:52:29     INFO -  01-30 16:50:47.795 I/dalvikvm( 1313): Wrote stack traces to '/data/anr/traces.txt'
13:52:29     INFO -  01-30 16:50:55.805 F/libc    ( 1313): Fatal signal 6 (SIGABRT) at 0x00000521 (code=-6), thread 1313 (.mozilla.fennec)


The emulator log shows:

13:52:29     INFO - failed to create drawable
13:52:29     INFO - Renderer error: failed to create/resize pbuffer!!
13:52:29     INFO - failed to create drawable
13:52:29     INFO - Renderer error: failed to create/resize pbuffer!!
13:52:29     INFO - failed to create drawable
13:52:29     INFO - Renderer error: failed to create/resize pbuffer!!
(Assignee)

Comment 1

3 years ago
Ideas from chat with :snorp today:

- for 2.3, graydon did something with the egl drivers; we didn't expect this to still be an issue for 4.4, but maybe we should review what was done for 2.3.
- graydon talked to someone at google about similar trouble with 2.3; can we renew that conversation?
- maybe a different aws configuration would help? http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cluster_computing.html
(Assignee)

Updated

3 years ago
See Also: → bug 910092
(Assignee)

Comment 2

3 years ago
(In reply to Geoff Brown [:gbrown] from comment #0)
> The emulator log shows:
> 
> 13:52:29     INFO - failed to create drawable
> 13:52:29     INFO - Renderer error: failed to create/resize pbuffer!!

This is seen in the Android 2.3 logs as well -- this part may not be significant.
(Assignee)

Comment 3

3 years ago
There were a lot of issues in bug 910092, and I think all of them are a little different from our current problem with 4.4. 

The patch that made a big difference for Graydon was https://bug910092.bugzilla.mozilla.org/attachment.cgi?id=8361456, but that *should* be specific to Gingerbread, as reported at https://code.google.com/p/android/issues/detail?id=65044.

I cannot find specific mention of Graydon's contact at google. There is https://bugzilla.mozilla.org/show_bug.cgi?id=910092#c167, but I interpret that as a simple reference to the patch author, for https://android.googlesource.com/platform/development/+/4e6af749d5996edd6558821a7e400427f0457306. https://bugzilla.mozilla.org/show_bug.cgi?id=910092#c178 is more conclusive and again points to "digit".
(Assignee)

Comment 4

3 years ago
Comparison of SurfaceFlinger egl logging in different environments, in case it means something to someone:

Android 2.3 on aws (works):
 
I/SurfaceFlinger(   64): EGL informations:
I/SurfaceFlinger(   64): # of configs : 104
I/SurfaceFlinger(   64): vendor    : Android
I/SurfaceFlinger(   64): version   : 1.4 Android META-EGL
I/SurfaceFlinger(   64): extensions: EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_ANDROID_image_native_buffer EGL_ANDROID_swap_rectangle
I/SurfaceFlinger(   64): Client API: OpenGL ES
I/SurfaceFlinger(   64): EGLSurface: 8-8-8-8, config=0x20
I/SurfaceFlinger(   64): OpenGL informations:
I/SurfaceFlinger(   64): vendor    : Google (VMware, Inc.)
I/SurfaceFlinger(   64): renderer  : Android Emulator OpenGL ES Translator (Gallium 0.4 on llvmpipe (LLVM 0x300))
I/SurfaceFlinger(   64): version   : OpenGL ES-CM 1.1 (2.1 Mesa 8.0.4)
I/SurfaceFlinger(   64): extensions: GL_OES_blend_func_separate GL_OES_blend_equation_separate GL_OES_blend_subtract GL_OES_byte_coordinates GL_OES_compressed_paletted_texture GL_OES_point_size_array GL_OES_point_sprite GL_OES_single_precision GL_OES_stencil_wrap GL_OES_texture_env_crossbar GL_OES_texture_mirored_repeat GL_OES_EGL_image GL_OES_element_index_uint GL_OES_draw_texture GL_OES_texture_cube_map GL_OES_draw_texture GL_OES_read_format GL_OES_framebuffer_object GL_OES_depth24 GL_OES_depth32 GL_OES_fbo_render_mipmap GL_OES_rgb8_rgba8 GL_OES_stencil1 GL_OES_stencil4 GL_OES_stencil8 GL_OES_packed_depth_stencil GL_EXT_texture_format_BGRA8888 GL_APPLE_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture
I/SurfaceFlinger(   64): GL_MAX_TEXTURE_SIZE = 16384
I/SurfaceFlinger(   64): GL_MAX_VIEWPORT_DIMS = 16384
I/SurfaceFlinger(   64): flags = 00010000
 
 
 
Android 4.4 on aws (not working):
 
I/SurfaceFlinger(   57): EGL informations:
I/SurfaceFlinger(   57): vendor    : Android
I/SurfaceFlinger(   57): version   : 1.4 Android META-EGL
I/SurfaceFlinger(   57): extensions: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_image_base EGL_KHR_fence_sync EGL_ANDROID_image_native_buffer
I/SurfaceFlinger(   57): Client API: OpenGL_ES
I/SurfaceFlinger(   57): EGLSurface: 8-8-8-8, config=0x20
I/SurfaceFlinger(   57): OpenGL ES informations:
I/SurfaceFlinger(   57): vendor    : Google (VMware, Inc.)
I/SurfaceFlinger(   57): renderer  : Android Emulator OpenGL ES Translator (Gallium 0.4 on llvmpipe (LLVM 0x300))
I/SurfaceFlinger(   57): version   : OpenGL ES 2.0 (2.1 Mesa 8.0.4)
I/SurfaceFlinger(   57): extensions: GL_EXT_debug_marker GL_OES_EGL_image GL_OES_depth24 GL_OES_depth32 GL_OES_element_index_uint GL_OES_texture_float GL_OES_texture_float_linear GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth_texture GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_packed_depth_stencil GL_OES_vertex_half_float
I/SurfaceFlinger(   57): GL_MAX_TEXTURE_SIZE = 4096
I/SurfaceFlinger(   57): GL_MAX_VIEWPORT_DIMS = 16384
D/SurfaceFlinger(   57): Screen acquired, type=0 flinger=0xb7a72450
E/SurfaceFlinger(   57): ro.sf.lcd_density must be defined as a build property
 
 
 
Android 4.4 on my laptop (works):
 
I/SurfaceFlinger(   56): EGL informations:
I/SurfaceFlinger(   56): vendor    : Android
I/SurfaceFlinger(   56): version   : 1.4 Android META-EGL
I/SurfaceFlinger(   56): extensions: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_image_base EGL_KHR_fence_sync EGL_ANDROID_image_native_buffer
I/SurfaceFlinger(   56): Client API: OpenGL_ES
I/SurfaceFlinger(   56): EGLSurface: 8-8-8-8, config=0x10
I/SurfaceFlinger(   56): OpenGL ES informations:
I/SurfaceFlinger(   56): vendor    : Google (Intel Open Source Technology Center)
I/SurfaceFlinger(   56): renderer  : Android Emulator OpenGL ES Translator (Mesa DRI Intel(R) Haswell Mobile )
I/SurfaceFlinger(   56): version   : OpenGL ES 2.0 (3.0 Mesa 9.2.1)
I/SurfaceFlinger(   56): extensions: GL_EXT_debug_marker GL_OES_EGL_image GL_OES_depth24 GL_OES_depth32 GL_OES_element_index_uint GL_OES_texture_float GL_OES_texture_float_linear GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth_texture GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_packed_depth_stencil GL_OES_vertex_half_float
I/SurfaceFlinger(   56): GL_MAX_TEXTURE_SIZE = 8192
I/SurfaceFlinger(   56): GL_MAX_VIEWPORT_DIMS = 16384
(Assignee)

Comment 5

3 years ago
I do not see this problem on Android 4.2 or Android 4.3 on aws -- tests run OK.

I *think* the same problem occurs on Android 5.0 on aws.

Android 4.2 on aws (works):

I/SurfaceFlinger(   37): EGL informations:
I/SurfaceFlinger(   37): vendor    : Android
I/SurfaceFlinger(   37): version   : 1.4 Android META-EGL
I/SurfaceFlinger(   37): extensions: EGL_KHR_image_base EGL_KHR_fence_sync EGL_ANDROID_image_native_buffer 
I/SurfaceFlinger(   37): Client API: OpenGL_ES
I/SurfaceFlinger(   37): EGLSurface: 8-8-8-8, config=0x20
I/SurfaceFlinger(   37): OpenGL ES informations:
I/SurfaceFlinger(   37): vendor    : Google (VMware, Inc.)
I/SurfaceFlinger(   37): renderer  : Android Emulator OpenGL ES Translator (Gallium 0.4 on llvmpipe (LLVM 0x300))
I/SurfaceFlinger(   37): version   : OpenGL ES-CM 1.1 (2.1 Mesa 8.0.4)
I/SurfaceFlinger(   37): extensions: GL_EXT_debug_marker GL_OES_blend_func_separate GL_OES_blend_equation_separate GL_OES_blend_subtract GL_OES_byte_coordinates GL_OES_compressed_paletted_texture GL_OES_point_size_array GL_OES_point_sprite GL_OES_single_precision GL_OES_stencil_wrap GL_OES_texture_env_crossbar GL_OES_texture_mirored_repeat GL_OES_EGL_image GL_OES_element_index_uint GL_OES_draw_texture GL_OES_texture_cube_map GL_OES_draw_texture GL_OES_read_format GL_OES_framebuffer_object GL_OES_depth24 GL_OES_depth32 GL_OES_fbo_render_mipmap GL_OES_rgb8_rgba8 GL_OES_stencil1 GL_OES_stencil4 GL_OES_stencil8 GL_OES_packed_depth_stencil GL_EXT_texture_format_BGRA8888 GL_APPLE_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture 
I/SurfaceFlinger(   37): GL_MAX_TEXTURE_SIZE = 4096
I/SurfaceFlinger(   37): GL_MAX_VIEWPORT_DIMS = 16384 x 16384


Android 4.3 on aws (works):

I/SurfaceFlinger(   37): EGL informations:
I/SurfaceFlinger(   37): vendor    : Android
I/SurfaceFlinger(   37): version   : 1.4 Android META-EGL
I/SurfaceFlinger(   37): extensions: EGL_KHR_image_base EGL_KHR_fence_sync EGL_ANDROID_image_native_buffer 
I/SurfaceFlinger(   37): Client API: OpenGL_ES
I/SurfaceFlinger(   37): EGLSurface: 8-8-8-8, config=0x20
I/SurfaceFlinger(   37): OpenGL ES informations:
I/SurfaceFlinger(   37): vendor    : Google (VMware, Inc.)
I/SurfaceFlinger(   37): renderer  : Android Emulator OpenGL ES Translator (Gallium 0.4 on llvmpipe (LLVM 0x300))
I/SurfaceFlinger(   37): version   : OpenGL ES-CM 1.1 (2.1 Mesa 8.0.4)
I/SurfaceFlinger(   37): extensions: GL_EXT_debug_marker GL_OES_blend_func_separate GL_OES_blend_equation_separate GL_OES_blend_subtract GL_OES_byte_coordinates GL_OES_compressed_paletted_texture GL_OES_point_size_array GL_OES_point_sprite GL_OES_single_precision GL_OES_stencil_wrap GL_OES_texture_env_crossbar GL_OES_texture_mirored_repeat GL_OES_EGL_image GL_OES_element_index_uint GL_OES_draw_texture GL_OES_texture_cube_map GL_OES_draw_texture GL_OES_read_format GL_OES_framebuffer_object GL_OES_depth24 GL_OES_depth32 GL_OES_fbo_render_mipmap GL_OES_rgb8_rgba8 GL_OES_stencil1 GL_OES_stencil4 GL_OES_stencil8 GL_OES_packed_depth_stencil GL_EXT_texture_format_BGRA8888 GL_APPLE_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture 
I/SurfaceFlinger(   37): GL_MAX_TEXTURE_SIZE = 4096
I/SurfaceFlinger(   37): GL_MAX_VIEWPORT_DIMS = 16384 x 16384

Android 5.0 on aws (probably not working):

I/SurfaceFlinger(   54): EGL information:
I/SurfaceFlinger(   54): vendor    : Android
I/SurfaceFlinger(   54): version   : 1.4 Android META-EGL
I/SurfaceFlinger(   54): extensions: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_image_base EGL_KHR_fence_sync EGL_ANDROID_image_native_buffer 
I/SurfaceFlinger(   54): Client API: OpenGL_ES
I/SurfaceFlinger(   54): EGLSurface: 8-8-8-8, config=0x20
I/SurfaceFlinger(   54): OpenGL ES informations:
I/SurfaceFlinger(   54): vendor    : Google (VMware, Inc.)
I/SurfaceFlinger(   54): renderer  : Android Emulator OpenGL ES Translator (Gallium 0.4 on llvmpipe (LLVM 0x300))
I/SurfaceFlinger(   54): version   : OpenGL ES 2.0 (2.1 Mesa 8.0.4)
I/SurfaceFlinger(   54): extensions: GL_EXT_debug_marker GL_OES_EGL_image GL_OES_depth24 GL_OES_depth32 GL_OES_element_index_uint GL_OES_texture_float GL_OES_texture_float_linear GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth_texture GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_packed_depth_stencil GL_OES_vertex_half_float 
I/SurfaceFlinger(   54): GL_MAX_TEXTURE_SIZE = 4096
I/SurfaceFlinger(   54): GL_MAX_VIEWPORT_DIMS = 16384
(Assignee)

Comment 6

3 years ago
btw, I have verified with logging that the eglCreateWindowSurface call fails at

http://hg.mozilla.org/mozilla-central/annotate/2cb22c058add/mobile/android/base/gfx/GLController.java#l292.

eglCreateWindowSurface returns EGL10.EGL_NO_SURFACE.

I also built aosp_arm-eng 4.4.4 KTU84Q, added those images to the existing 4.4 avd and repeated tests on try -- they failed in just the same way.
(Assignee)

Comment 7

3 years ago
I added logging to libegl and reproduced the failures with my aosp build. In device/generic/goldfish/opengl/system/egl/egl.cpp, in function egl_window_surface_t::init(), the call to rcCreateWindowSurface returns null; I haven't logged deeper, yet.
(Assignee)

Comment 8

3 years ago
I noticed something interesting when comparing logs from 4.3 and 4.4 emulator tests. On 4.3, where everything works, GLController is using the 24-bit config; on 4.4, where we fail, GLController is using the 16 bit config.

Consider http://hg.mozilla.org/mozilla-central/annotate/2cb22c058add/mobile/android/base/gfx/GLController.java#l245 -- we select and set mEGLConfig based only on getScreenDepth(). But my 4.3 and 4.4 avds have exactly the same screen characteristics. Hmmm.

getScreenDepth() is not only dependent on screen characteristics, but also on memory: http://hg.mozilla.org/mozilla-central/annotate/38058cb42a0e/mobile/android/base/GeckoAppShell.java#l1388.

Fennec's notion of a "high memory device" is ultimately based on /proc/meminfo's MemTotal. If I set the ramSize avd parameter to 256, /proc/meminfo reports:

MemTotal:         253904 kB

and if I increase ramSize, I see corresponding increases in MemTotal...until somewhere around 750 MB!

On Android 4.4, if I set ramSize to 1024, I see:

MemTotal:         765372 kB

If I request 2048, I still see:

MemTotal:         765372 kB

I also tried using the emulator -memory parameter and the emulator -qemu -m parameter, but could not increase MemTotal beyond 765372 kB.

So as far as I can tell, there's no way to configure the 4.4 emulator as a Fennec "high memory" device.

On Android 4.3, the emulator memory behavior is similar, but the max is just a little higher, so it is a "high memory" device, we see a screen depth of 24 bits, we select a 24 bit egl configuration, and all is well!


I hacked getScreenDepth() to ignore memory and was finally able to run a reftest to completion on 4.4!!
Geoff and I figured out that this problem is due to the goldfish (emulator) kernel not having highmem support. The clue was in the dmesg output:

<5>Truncating RAM at 00000000-7fffffff to -2f7fffff (vmalloc region overlap).
<5>Virtual kernel memory layout:
<5>    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
<5>    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
<5>    vmalloc : 0xf0000000 - 0xff000000   ( 240 MB)
<5>    lowmem  : 0xc0000000 - 0xef800000   ( 760 MB)
<5>      .text : 0xc0008000 - 0xc044a190   (4361 kB)
<5>      .init : 0xc044b000 - 0xc0470000   ( 148 kB)
<5>      .data : 0xc0470000 - 0xc04a8fc0   ( 228 kB)
<5>       .bss : 0xc04a9000 - 0xc05f33c8   (1321 kB)

My understanding is that we may be able to get a bit more usable memory by manipulating the vmalloc size, but what we really want is to enable highmem support. We'll need to build a new kernel with that enabled.
(Assignee)

Comment 10

3 years ago
I built a new kernel with CONFIG_HIGHMEM, replaced kernel-qemu in the avd, and re-tested on aws via try. Now requesting 2G of memory actually gives us ~2G of memory in Android (/proc/meminfo - MemTotal), Fennec no longer considers the emulator a low memory device, we select a 24 bpp egl config, and egl initialization completes without error...and I can run reftests!
(Assignee)

Updated

3 years ago
Summary: EGL problems on browser startup during Android 4.4 tests → EGL problems on browser startup during Android 4.4 emulator tests, on aws only
(Assignee)

Comment 11

3 years ago
I found information on building a kernel for Android at http://source.android.com/source/building-kernels.html. There is also information in the AOSP source tree, at 

external/qemu/docs/ANDROID-KERNEL.TXT

There is also a script at

prebuilts/qemu-kernel/arm/rebuild.sh

Kernel sources are at https://android.googlesource.com/kernel/goldfish.git.

I selected the current head of the android-3.4 branch, https://android.googlesource.com/kernel/goldfish/+/ea97df67176b03fafd88b91339dd59aafba8127c and used that.

gbrown@mozpad:~$ git clone https://android.googlesource.com/kernel/goldfish.git goldfish
Cloning into 'goldfish'...
remote: Sending approximately 666.15 MiB ...
remote: Counting objects: 75070, done
remote: Finding sources: 100% (5052/5052)
remote: Total 3092176 (delta 2575669), reused 3091321 (delta 2575669)
Receiving objects: 100% (3092176/3092176), 666.77 MiB | 744.00 KiB/s, done.
Resolving deltas: 100% (2587948/2587948), done.
Checking connectivity... done
gbrown@mozpad:~$ cd goldfish
gbrown@mozpad:~$ vi arch/arm/configs/goldfish_armv7_defconfig
... add "CONFIG_HIGHMEM=y" to the end of the file

gbrown@mozpad:~/goldfish$ git checkout ea97df67176b03fafd88b91339dd59aafba8127c
Checking out files: 100% (38890/38890), done.
Note: checking out 'ea97df67176b03fafd88b91339dd59aafba8127c'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at ea97df6... goldfish: Enable multinetwork kernel features.
gbrown@mozpad:~/goldfish$ cd ..
gbrown@mozpad:~$ mkdir rebuild
gbrown@mozpad:~$ cd rebuild
gbrown@mozpad:~/rebuild$ cp ~/aosp/prebuilts/qemu-kernel/arm/rebuild.sh .
gbrown@mozpad:~/rebuild$ export ANDROID_BUILD_TOP=/home/gbrown/aosp
gbrown@mozpad:~/rebuild$ ./rebuild.sh --verbose --out-dir=/home/gbrown/rebuild --cc=/home/gbrown/aosp/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-gcc /home/gbrown/goldfish
Using output directory: /home/gbrown/rebuild
Using cross-toolchain prefix: /home/gbrown/aosp/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
Using ccache program: /usr/bin/ccache
Cleaning up source tree.
Setting up goldfish_defconfig...
### COMMAND: make goldfish_defconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
...
  LD      vmlinux
  SYSMAP  System.map
  SYSMAP  .tmp_System.map
  OBJCOPY arch/arm/boot/Image
  Kernel: arch/arm/boot/Image is ready
  AS      arch/arm/boot/compressed/head.o
  GZIP    arch/arm/boot/compressed/piggy.gzip
  CC      arch/arm/boot/compressed/misc.o
  CC      arch/arm/boot/compressed/decompress.o
  CC      arch/arm/boot/compressed/string.o
  SHIPPED arch/arm/boot/compressed/lib1funcs.S
  SHIPPED arch/arm/boot/compressed/ashldi3.S
  AS      arch/arm/boot/compressed/lib1funcs.o
  AS      arch/arm/boot/compressed/ashldi3.o
  AS      arch/arm/boot/compressed/piggy.gzip.o
  LD      arch/arm/boot/compressed/vmlinux
  OBJCOPY arch/arm/boot/zImage
  Kernel: arch/arm/boot/zImage is ready
Copying goldfish_armv7_defconfig binaries to /home/gbrown/rebuild.
Done.
gbrown@mozpad:~/rebuild$ cp kernel-qemu-armv7 ~/.android/avd/test-arm442.avd/kernel-qemu

Before:

gbrown@mozpad:~/aosp/prebuilts/qemu-kernel/arm$ dd if=kernel-qemu-armv7 bs=1 skip=$(LC_ALL=C grep -a -b -o $'\x1f\x8b\x08\x00\x00\x00\x00\x00' kernel-qemu-armv7 | cut -d ':' -f 1) | zgrep -a 'Linux version'
Linux version 3.4.0-gd853d22 (nnk@nnk.mtv.corp.google.com) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #1 PREEMPT Tue Jul 9 17:46:46 PDT 2013

After:

gbrown@mozpad:~/rebuild$ dd if=kernel-qemu-armv7 bs=1 skip=$(LC_ALL=C grep -a -b -o $'\x1f\x8b\x08\x00\x00\x00\x00\x00' kernel-qemu-armv7 | cut -d ':' -f 1) | zgrep -a 'Linux version'
Linux version 3.4.67-gea97df6-dirty (gbrown@mozpad) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #1 PREEMPT Wed Feb 11 22:53:22 MST 2015
(Assignee)

Updated

3 years ago
Status: NEW → RESOLVED
Last Resolved: 3 years ago
Resolution: --- → FIXED
(Assignee)

Comment 12

3 years ago
According to the history log of the prebuilt kernel in aosp 4.4.2_r2, it is based on kernel revision 6dff53caa619cef08ef4cfae48d3f186b0568a0f.

http://androidxref.com/4.4.2_r2/history/prebuilts/qemu-kernel/arm/kernel-qemu-armv7

That seems a "safer" choice:

git checkout 6dff53caa619cef08ef4cfae48d3f186b0568a0f
...
gbrown@mozpad:~/rebuild$ dd if=kernel-qemu-armv7 bs=1 skip=$(LC_ALL=C grep -a -b -o $'\x1f\x8b\x08\x00\x00\x00\x00\x00' kernel-qemu-armv7 | cut -d ':' -f 1) | zgrep -a 'Linux version'
Linux version 3.4.0-g6dff53c-dirty (gbrown@mozpad) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #1 PREEMPT Sun Feb 15 11:05:59 MST 2015
(Assignee)

Comment 13

3 years ago
Additional experience in bug 1062365 suggests that the same issues arise on Android 4.3 if and only if it is run with a 3.4 kernel: It looks like this is not so much a problem with Android 4.4 as it is a problem with the 3.4 kernel.
You need to log in before you can comment on or make changes to this bug.