Fork me on GitHub

11 2024 档案

摘要:概述 lowmemorykiller的作用就是当内存比较紧张的时候去及时杀掉一些对用户来说不那么重要的进程,回收内存,保证手机的正常运行。 安卓平台lowmemorykiller机制演进可以描述为:从早期的Kernel space Lowmemorykiller 到 UserSpace Lowmem 阅读全文
posted @ 2024-11-29 18:17 yooooooo 阅读(135) 评论(0) 推荐(0) 编辑
摘要:1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. 分析背景 本文分析基于 linux-4.19.157 内核代码分析 3. 问题 在使用全志H3机器时,观察到一个现象,外设中断总是集中在 CPU0 处理 : # cat /proc/interrupts 阅读全文
posted @ 2024-11-27 14:15 yooooooo 阅读(110) 评论(0) 推荐(0) 编辑
摘要:从上一章节大概应该能够理解负载和利用率的区别了,当一个进程正在运行或者即使没有在cpu上运行,而在就绪队列中等待运行,那么他依旧消耗cpu的负载。这是合理的,因为cpu的就绪队列有10个任务等待着运行与5个任务等待运行,明显是10个任务的负载重。而利用率只是关注正在运行的任务而不包含在就绪队列的任务 阅读全文
posted @ 2024-11-25 15:21 yooooooo 阅读(71) 评论(0) 推荐(0) 编辑
摘要:FUSE(Filesystem in Userspace)和 F2FS(Flash-Friendly File System)是两种不同的文件系统技术,分别适用于不同的场景。以下是它们的主要区别、优势和劣势: FUSE 优势: 灵活性:FUSE 允许开发者在用户空间创建和运行自定义文件系统,无需修改 阅读全文
posted @ 2024-11-25 14:17 yooooooo 阅读(126) 评论(0) 推荐(0) 编辑
摘要:当我们使用top命令查看系统的资源使用情况时会看到 load average,如下图所示。它表示系统在1、5、15分钟的平均工作负载。那么什么是负载(load)呢?它和CPU的利用率又有什么关系呢? load average:系统平均负载是CPU的Load,它所包含的信息不是CPU的使用率状况,而是 阅读全文
posted @ 2024-11-25 14:02 yooooooo 阅读(299) 评论(0) 推荐(1) 编辑
摘要:Android 12 支持 FUSE 透传功能,此功能可以最大限度地降低 FUSE 开销,从而实现可媲美直接访问下层文件系统的性能。android12-5.4、android12-5.10 和 android-mainline(仅限测试)内核支持 FUSE 透传功能,这意味着是否支持此功能取决于设备 阅读全文
posted @ 2024-11-25 11:36 yooooooo 阅读(50) 评论(0) 推荐(0) 编辑
摘要:Linux内核中unlikely宏的作用 在Linux内核中,unlikely宏是一个非常重要的工具,它主要用于 指导编译器进行代码优化,以提高程序的执行效率。 unlikely宏的定义与作用 定义: unlikely宏通常定义为 __builtin_expect(!!(x), 0),其中x是你要判 阅读全文
posted @ 2024-11-21 22:18 yooooooo 阅读(72) 评论(0) 推荐(0) 编辑
摘要:Linux内核中的PAGE_SHIFT 什么是PAGE_SHIFT? 在Linux内核中,PAGE_SHIFT是一个非常重要的宏,它定义了一个页的大小,通常是2的幂次方。这个值表示了虚拟地址空间中一个页的偏移量占用了多少位。换句话说,它告诉我们一个页的大小是多少字节。 PAGE_SHIFT的作用 页 阅读全文
posted @ 2024-11-21 21:51 yooooooo 阅读(83) 评论(0) 推荐(0) 编辑
摘要:在 Android 系统中,core control 的目录通常位于: /sys/module/core_ctl/parameters/ 该目录包含一系列文件,用于控制和调节 Android 的 core_ctl 模块的行为。core_ctl 是专门为多核处理器设计的一种动态核心管理机制,尤其在 b 阅读全文
posted @ 2024-11-20 22:02 yooooooo 阅读(83) 评论(0) 推荐(1) 编辑
摘要:前言 上篇博客介绍了iostat的一些输出,这篇介绍blktrace这个神器。上一节介绍iostat的时候,我们心心念念希望得到块设备处理io的service time,而不是service time + wait time,因为对于评估一个磁盘或者云磁盘而言,service time才是衡量磁盘性 阅读全文
posted @ 2024-11-20 21:18 yooooooo 阅读(118) 评论(0) 推荐(1) 编辑
摘要:第一种方法 使用这个转换成ftrace数据 第二种方法 是的,systrace --from-file 是一种方便的方法,用于处理已经生成的 trace 文件(比如 systrace.html 或其他格式),包括提取或转换数据。以下是如何使用 systrace --from-file 来尝试转换为 阅读全文
posted @ 2024-11-19 23:02 yooooooo 阅读(84) 评论(0) 推荐(0) 编辑
摘要:在Linux操作系统中,处理器(CPU)调度是由调度器(Scheduler)负责的,该调度器管理系统中的所有进程,并决定哪个进程在什么时候在哪个CPU上运行。Linux调度器使用了一种称为 Completely Fair Scheduler (CFS) 的调度策略来保证公平性。 为了更有效地管理多处 阅读全文
posted @ 2024-11-18 22:37 yooooooo 阅读(189) 评论(0) 推荐(0) 编辑
摘要:本文是 Systrace 线程 CPU 运行状态分析技巧系列的第三篇,本文主要讲了使用 Systrace 分析 CPU 状态时遇到的 Sleep 与 Uninterruptible Sleep 状态的原因排查方法与优化方法,这两个状态导致性能变差概率非常高,而且排查起来也比较费劲,网上也没有系统化的 阅读全文
posted @ 2024-11-17 22:21 yooooooo 阅读(144) 评论(0) 推荐(0) 编辑
摘要:TYPE-C PD供电协议消息格式 PD定义了两种消息类型,分别为控制消息(Control Messages)、数据消息(Data Messages )和扩展消息(Extend Messages)。 PD控制消息 控制消息属于短消息类型,用于管理端口与设备之间的消息流或交换不需要额外数据的消息。控制 阅读全文
posted @ 2024-11-17 17:54 yooooooo 阅读(95) 评论(0) 推荐(0) 编辑
摘要:TYPE-C PD浅谈(四) 当对接识别完成后,Provider会先在VBUS上提供5V,接着会在CC脚位上送出Source Capability(SRC_CAP),格式如下: 内容定义了供电的各种选项,如共有几组电源可选,相对应的电压电流等。 当Consumer接收到SRC_CAP封包后,会针对电 阅读全文
posted @ 2024-11-17 16:56 yooooooo 阅读(88) 评论(0) 推荐(0) 编辑
摘要:概述 在 摩尔定律 的推动下,集成电路工艺取得了高速发展,单位面积上的晶体管数量不断增加。片上系统(System-on-Chip,SoC)具有集成度高、功耗低、成本低等优势,已经成为大规模集成电路系统设计的主流方向,解决了通信、图像、计算、消费电子等领域的众多挑战性的难题。随着片上系统SoC的应用需 阅读全文
posted @ 2024-11-16 13:24 yooooooo 阅读(528) 评论(0) 推荐(0) 编辑
摘要:一、DDR基础知识 1. 几个频率 (1) 核心频率:真实运行频率。 (2) 倍增系数:DDR通过数据预取技术放大速率,每代ddr倍率是固定的,ddr=2, ddr2=4, ddr3=8, ddr4=8, ddr5=16 (3) 有效频率;厂商标注的频率,可以理解为数据传输速率。厂商也想逐步淡化其它 阅读全文
posted @ 2024-11-16 10:18 yooooooo 阅读(427) 评论(0) 推荐(0) 编辑
摘要:DisplayPort的备用模式重新配置TYPE-C连接器上的某些引脚以支持其他协议.例如DisplayPort备用模式的USB-C型连接器引脚分配。 VESA规范中列出了不同的解决方案,这些解决方案通过特定的连接器插脚和电线支持USB Type-C上的DP。 24引脚的USB Type-C连接器可 阅读全文
posted @ 2024-11-14 14:32 yooooooo 阅读(178) 评论(0) 推荐(0) 编辑
摘要:背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本:4.14 ARM64处理器 使用工具:Source Insight 3.5, Visio 1. 介绍 阅读全文
posted @ 2024-11-13 23:12 yooooooo 阅读(82) 评论(0) 推荐(0) 编辑
摘要:CFS任务的负载均衡(概述) 我们描述负载均衡的系列文章一共三篇,第一篇是框架部分,即本文,主要描述了负载均衡相关的原理、场景和框架。后面的两篇是对均衡代码的情景分析,通过对tick balance、new idle balance和task placement等几个典型的负载均衡来呈现其实现细节, 阅读全文
posted @ 2024-11-13 15:28 yooooooo 阅读(57) 评论(0) 推荐(0) 编辑
摘要:CPU拓扑结构简介 SMT Level 超线程处理器的一个核心 MC Level 多核CPU的一个核心 DIE Level 一个物理CPU的晶片(注意不是package,package是封装好了的,肉眼看到的CPU处理器)(覆盖系统所有的CPU(CPU0~CPUN)) cpu最小级别的就是超线程处理 阅读全文
posted @ 2024-11-13 14:50 yooooooo 阅读(37) 评论(0) 推荐(0) 编辑
摘要:当一个进程在不同的CPU核心之间迁移时,性能可能受到影响的原因主要包括以下几点: 缓存失效:CPU的缓存(L1、L2缓存)通常是核心私有的,即每个CPU核心有自己的缓存。当一个进程从一个核心迁移到另一个核心时,原来在第一个核心缓存中的数据无法直接在第二个核心中使用。这会导致缓存失效(cache mi 阅读全文
posted @ 2024-11-10 11:55 yooooooo 阅读(48) 评论(0) 推荐(0) 编辑
摘要:Linux系统中,对文件系统上文件的读写一般是通过页缓存(page cache)进行的(DirectIO除外),这样设计的可以延时磁盘IO的操作,从而可以减少磁盘读写的次数,提升IO性能。但是性能和可靠性在一定程度上往往是矛盾的,虽然内核中设计有一个工作队列执行赃页回写同磁盘文件进行同步,但是在一些 阅读全文
posted @ 2024-11-09 11:56 yooooooo 阅读(173) 评论(0) 推荐(0) 编辑
摘要:USB Hub通过少量的端点实现与多个设备的数据传输,主要依赖于以下几个关键机制: 控制端点(端点0): 每个USB Hub都有一个控制端点(通常是端点0),用于接收来自主机的控制请求,例如获取设备描述符、配置Hub的端口状态等。 Hub通过控制端点接受主机的命令,并管理其下挂的所有端口。这包括初始 阅读全文
posted @ 2024-11-07 14:56 yooooooo 阅读(87) 评论(0) 推荐(0) 编辑
摘要:从Android 10开始,Google确实有内部代号(如Android Q),但官方不再使用甜点名称作为对外版本名称。以下是各个版本的对应大写字母代号: A - Petit Four (1.1) B - 不适用 C - Cupcake (1.5) D - Donut (1.6) E - Eclai 阅读全文
posted @ 2024-11-07 14:01 yooooooo 阅读(52) 评论(0) 推荐(0) 编辑
摘要:1.简介 LTSSM(Link Training and Status State Machine)定义了USB3.2总线链路层连接性及链路层电源管理。LTSSM由12种不同的链路状态组成,可以根据它们的功能对其进行表征。 LTSSM有4个可操作的link状态,分别为U0、U1、U2及U3。 U0是 阅读全文
posted @ 2024-11-06 15:48 yooooooo 阅读(155) 评论(0) 推荐(0) 编辑
摘要:啥叫USB PD快充技术? USB PD快充技术就是通过USB接口对对USB设备进行快速充电的一项技术。 由于USB技术的发展,特别的USB TYPE-C接口的广泛应用,基于USB TYPE-C接口的USB PD快充技术越来越成为主流。 使用USB TYPE-C接口的技术可以给谁充电? 可以给我们的 阅读全文
posted @ 2024-11-05 11:39 yooooooo 阅读(121) 评论(0) 推荐(0) 编辑
摘要:通过USB集线器,可以很简单的实现主机扩展USB设备的数量。 在USB协议规范中,USB集线器作为了一种特殊的设备在存在,USB规范专门为其定义了一种设备类。 USB集线器的结钩 集线器由6个组件组成: 上行端口:用于连接上层的USB集线器或者根集线器。 下行端口:用于连接下层的USB功能设备或扩展 阅读全文
posted @ 2024-11-05 11:14 yooooooo 阅读(115) 评论(0) 推荐(0) 编辑
摘要:以imx8为例 在最底层硬件上,A核和M核通讯是靠硬件来进行的,称为MU,如图 Linux RPMsg 是在virtio framework上实现的一个消息传递机制 VirtIO 是一个用来实现“虚拟IO”的通用框架,典型虚拟的pci,网卡,磁盘等虚拟设备,kvm等都使用了这个技术 与virtio对 阅读全文
posted @ 2024-11-03 23:25 yooooooo 阅读(401) 评论(0) 推荐(0) 编辑
摘要:USB眼图测试通常用于评估USB信号的质量和传输性能。眼图测试主要分为以下几类: High speed 测试 PHY测试:这是USB物理层(PHY)的眼图测试,主要针对信号完整性和抖动等参数进行测量。PHY测试会直接分析数据线(如D+/D-)的信号波形,评估信号在传输过程中受到的干扰、失真以及反射。 阅读全文
posted @ 2024-11-01 15:57 yooooooo 阅读(706) 评论(0) 推荐(0) 编辑
摘要:USB Type-C和Power Delivery规范允许设备和主机进行电源协商,为设备提供3A(5V,9V,15V)和5A(20V)最大100W的电源功率。 除了电源协商之外,规范还引入了备用(Alternate)模式,因此USB Type-C主机和设备可以通过USB-C型连接器和电缆传输高速数据 阅读全文
posted @ 2024-11-01 15:43 yooooooo 阅读(78) 评论(0) 推荐(0) 编辑
摘要:USB Power Delivery(USB PD)是基于USB规范的快速充电技术,是USB重要的规范之一。 USB技术自发布已来,得到了很大的发展,并且由于USB自速电源供电(VBUS),使得有很多的小型设备开始使用USB接口进行供电,所以市面上也出现了五花八门的USB充电技术。随着USB3.0规 阅读全文
posted @ 2024-11-01 11:53 yooooooo 阅读(345) 评论(0) 推荐(0) 编辑
摘要:1 数字耳机 Type-C接口的数字耳机是一个UFP(Device),手机是DFP。耳机的CC1和CC2引脚上必须有Rd,实际上,乐视数字耳机的CC管脚上有一颗5.1K电阻。 2 模拟耳机 模拟耳机与Type-C接口的转接线 协议要求模拟耳机转接线上把两个CC引脚直接接到GND(必须小于Ra)。 逻 阅读全文
posted @ 2024-11-01 11:29 yooooooo 阅读(293) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示