From 8fa72f8ab334bdded556ceddc02947f1bf44cdbd Mon Sep 17 00:00:00 2001 From: Cheng Jian Date: Sun, 31 Jul 2022 08:04:43 +0800 Subject: [PATCH] description/debugging: Android --- study/kernel/00-DESCRIPTION/DEBUGGING.md | 17 +++++++++++++++++ study/kernel/00-DESCRIPTION/VIRT.md | 22 +++++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/study/kernel/00-DESCRIPTION/DEBUGGING.md b/study/kernel/00-DESCRIPTION/DEBUGGING.md index 2bc2292..cdf0897 100644 --- a/study/kernel/00-DESCRIPTION/DEBUGGING.md +++ b/study/kernel/00-DESCRIPTION/DEBUGGING.md @@ -202,6 +202,7 @@ $reclaim = current\_mem \times reclaim\_ratio \times max(0,1 – \frac{psi_some} | 2019/03/19 | Suren Baghdasaryan | [psi: pressure stall monitors v6](https://lwn.net/Articles/775971/) | NA | v6 ☑ [5.2-rc1](https://kernelnewbies.org/Linux_5.2#Improved_Presure_Stall_Information_for_better_resource_monitoring) | [Patchwork](https://lore.kernel.org/patchwork/patch/1052413) | | 2020/03/03 | Suren Baghdasaryan | [psi: Add PSI_CPU_FULL state and some code optimization](ttps://lore.kernel.org/patchwork/patch/1388805) | 1. 添加 PSI_CPU_FULL 状态标记 cgroup 中的所有非空闲任务在 cgroup 之外的 CPU 资源上被延迟, 或者 cgroup 被 throttle
2. 使用 ONCPU 状态和当前的 in_memstall 标志来检测回收, 删除 timer tick 中的钩子, 使代码更简洁和可维护.
4. 通过移除两个任务的每个公共cgroup祖先的psi_group_change()调用来优化自愿睡眠开关. | v2 ☑ 5.13-rc1 | [Patchwork](https://lore.kernel.org/patchwork/patch/1388805) | | 2020/03/31 | Yafang Shao | [psi: enhance psi with the help of ebpf](https://lwn.net/Articles/1218304) | 引入 psi_memstall_type 标记 MEMSTALL 的类别, 并在 tracepoint 输出, 从而可以被 ebpf 使用来增强工具. | v4 ☑ [4.20-rc1](https://kernelnewbies.org/Linux_4.20#Core_.28various.29) | [Patchwork](https://lore.kernel.org/patchwork/patch/1218304) | +| 2022/07/21 | Chengming Zhou | [sched/psi: some optimization and extension](https://lore.kernel.org/all/20220721040439.2651-1-zhouchengming@bytedance.com) | TODO | v1 ☐☑✓ | [LORE v1,0/9](https://lore.kernel.org/all/20220721040439.2651-1-zhouchengming@bytedance.com) | # 7 DYNAMIC_DEBUG @@ -217,13 +218,29 @@ $reclaim = current\_mem \times reclaim\_ratio \times max(0,1 – \frac{psi_some} # 8 VDSO ------- +## 8.1 getpid() 性能劣化 +------- [Remove cached PID/TID in clone](https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=c579f48edba88380635ab98cb612030e3ed8691e) + [Bug 1469670 - glibc: Implement vDSO-based getpid](https://bugzilla.redhat.com/show_bug.cgi?id=1469670) + [Bug 1469757 - kernel: Implement vDSO support for getpid](https://bugzilla.redhat.com/show_bug.cgi?id=1469757) + [Why getpid() is not implemented in x86_64's vdso?](https://stackoverflow.com/questions/65454115/why-getpid-is-not-implemented-in-x86-64s-vdso) +## 8.2 getrandom vDSO +------- + +[Linux Proposal Adding getrandom() To The vDSO For Better Performance](https://www.phoronix.com/news/Linux-getrandom-vDSO) + + +| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 | +|:---:|:----:|:---:|:----:|:---------:|:----:| +| 2022/07/29 | Jason A. Donenfeld | [random: implement getrandom() in vDSO](https://lore.kernel.org/all/20220729145525.1729066-1-Jason@zx2c4.com) | TODO | v1 ☐☑✓ | [LORE](https://lore.kernel.org/all/20220729145525.1729066-1-Jason@zx2c4.com) | + + # 9 PRINTK ------- diff --git a/study/kernel/00-DESCRIPTION/VIRT.md b/study/kernel/00-DESCRIPTION/VIRT.md index 6ba0601..b29f705 100644 --- a/study/kernel/00-DESCRIPTION/VIRT.md +++ b/study/kernel/00-DESCRIPTION/VIRT.md @@ -80,7 +80,7 @@ jeremy很早就写了一个pv ticketlock, 原理大概就是vcpu在拿锁了一 -好吧, 说了这么多理论性的东西, 再来说下, 我们实际遇到的问题. 很早以前经常有windows用户的工单投诉, 说自己的vm里面cpu没有怎么使用, 为什么cpu显示百分之百. +好吧, 说了这么多理论性的东西, 再来说下, 我们实际遇到的问题. 很早以前经常有windows用户的工单投诉, 说自己的vm里面cpu没有怎么使用, 为什么cpu显示百分之百. 由于是windows系统, 加上我是小白, 很难给出一些技术细节上的分析, 只能通过简单滴一些测试实验进行调查. @@ -162,6 +162,26 @@ jeremy很早就写了一个pv ticketlock, 原理大概就是vcpu在拿锁了一 | 2019/07/24 | Alexander Duyck | [mm / virtio: Provide support for page hinting](https://lwn.net/Articles/794540) | NA | v2 ☐ | [LKML v2,0/5](https://lwn.net/Articles/794540) | + +# 7 ANDROID +------- + + +## 7.1 AnBox +------- + + +Anbox 可让你在任何 GNU/Linux 操作系统上运行 Android 应用程序. + +Anbox 使用 Linux 命名空间 (user, pid, uts, net, mount, ipc) 在容器中运行完整的 Android 系统, 并在任何基于 GNU Linux 的平台上提供 Android 应用程序. + +容器内的 Android 无法直接访问任何硬件. 所有硬件访问都经过主机上的 anbox 进程. 我们正在重用 Android 中实现的基于 QEMU 的模拟器, 用于 Open GL ES 加速渲染, 容器内的 Android 系统使用不同的管道与主机系统进行通信, 并通过这些管道发送所有硬件访问命令. + +## 7.2 Waydroid +------- + +[Android apps on Linux with Waydroid](https://lwn.net/Articles/901459) +
* 本作品/博文 ( [AderStep-紫夜阑珊-青伶巷草 Copyright ©2013-2017](http://blog.csdn.net/gatieme) ), 由 [成坚(gatieme)](http://blog.csdn.net/gatieme) 创作.