The Android Micro Conference brings the upstream community and Android systems developers together to discuss issues and changes to the Android platform and their dependencies and interactions with the Linux kernel, allowing for collaboration on solutions for upstream.
With the upcoming migration to the Bazel build system in Android, Qualcomm recently had to migrate all kernel build processes to Google's Kleaf framework.
One part of Kleaf is the Driver Development Kit (DDK) which is used to build external modules. Before DDK, Qualcomm had a homebrew solution that essentially mapped Android.mk targets to the classic "make -C KERNEL_SRC M=$PWD". Under the...
The Driver Development Kit (DDK) for Android Kernels allows for a reliable way to develop drivers against the Generic Kernel Image (GKI). While doing so, the DDK takes care of toolchain selection, hermeticity of the build and hence paves the way for compliant kernel modules. Further, DDK facilitates module development with clearly expressed dependencies between modules and a fast incremental...
Android lacks Compile Once Run Everywhere (CO-RE) support, limiting a BPF program’s access to kernel data structures. BPF use could increase if CO-RE is enabled in Android. However, due to the complex ecosystem, care must be taken in developing this support. SOC vendors and OEM Partners are currently limited to BPF socket filters only, but have requested access to kprobes and tracepoints,...
The core graphics stack in Android reported the alloc->mutex being a major source of contention. This would create significant delays and ultimately result in janks. This talk will explore the specific details of this contention and how to mitigate these scenarios in binder.
The talk will be on how Android kernel team test Android Kernel with platform integration, what is the issue we have seen, and how we can improve.
This talk will be a discussion of how the Android ecosystem could use runtime PM and s2idle to improve resume time and the common issues we've identified so far.
Some key questions we need to answer would be:
- If all the devlinks created by fw_devlink enforce runtime PM by default will it make things easier for the vendors or make it worse? Why?
- If it'll make things worse, how can...
RISC-V is the first major processor support change for Android since support for ARM64 was added in 2014. This session will outline the current progress of RISC-V support in the Android kernel and discuss GKI, extension support, optimization efforts, and more questions and challenges that have come up so far.
We discuss adding support for Gunyah to the Android Virtualization Framework. The reference implementation for the Android Virtualization Framework uses KVM, but extensions to support other hypervisors is possible. From the perspective of supporting a new hypervisor in AVF, we will review AVF’s hypervisor requirements, adding a hypervisor to CrosVM. We'll also discuss new features added to...
This session is about running AOSP in a Xen guest virtual machine. We will start by presenting the goals of the project and provide an updated status. We will follow with gaps in the current implementation and discuss potential development for the future.
One of the main problems with upstreaming Android-specific kernel features is the push back from upstream maintainers due to the “lack of an in-tree user”. This talk dives into Google’s efforts to create an upstreaming Android development platform using the Pixel 6 device.
We will dive into how we added support for Pixel 6 on the android-mainline downstream branch including:
- How we...
There has been a lot of effort to bring Android out of tree patches to a minimum. With GKI effort this has reduced significantly, but somewhat artificially as some of these patches are now implemented as vendor hooks in modules. Why are they needed and can we ever get rid of them?
With the increasing demand for high-performance mobile applications, Android has began exploring the benefits of moving to a larger base page size. This talk will provide an update on the current status; performance metrics; and the challenges involved with this undertaking.