从泡泡马特看“消费” 5日前查看 评论
从泡泡马特看“消费”

这篇文章主要讲述了泡泡玛特的成功原因。文章首先介绍了泡泡玛特创始人王宁的个人特质,包括他的“狠、软、灵、巧”四方面。然后文章分析了泡泡玛特成功背后的结构性机会,包括中国制造的丰饶和中国市场的实验性。文章还探讨了泡泡玛特的情绪消费模式,以及它如何精准地抓住了这个时代的集体焦虑。最后,文章以雷军的小米YU7发布会上的演讲作为结尾,表达了对于热爱生活的人们的赞美。总体来说,这篇文章全面分析了泡泡玛特的成功要素。

[Android稳定性] 第052篇 [方法篇] HMI项目中如何使用QCAP解析minidump? 1周前查看 评论
[Android稳定性] 第052篇 [方法篇] HMI项目中如何使用QCAP解析minidump?

本文介绍了在HMI项目中处理minidump.gz文件的方法,包括本地解压和在线解压两种方式。解压后需对minidump文件进行拆分和可能的解密,然后通过特定脚本来生成ap_minidump.elf文件,以支持解析APPS区域的关键信息。文中详细描述了从解压、拆分、解密到生成elf文件的步骤,适用于高通平台的项目,并提供了相应的脚本示例。

[Android稳定性] 第051篇 [原理篇] 从timer角度学习高通平台的watchdog 1周前查看 1 条
[Android稳定性] 第051篇 [原理篇] 从timer角度学习高通平台的watchdog

本文深入剖析了Linux内核中的定时器机制,包括低精度定时器(timer_list)和高精度定时器(hrtimer),并探讨了它们在watchdog中的应用。低精度定时器基于时钟节拍和定时轮,适用于大多数内核定时器,而高精度定时器则基于硬件时钟源和红黑树,提供更高的精度和更低的抖动。文章还介绍了watchdog timer的使用,包括喂狗线程的流程和系统挂起时的处理。此外,文章还讨论了基于软件的软看门狗机制,用于检测和处理系统中的软死锁问题。最后,文章总结了定时器在watchdog中的应用,并提供了debug watchdog触发的死机问题的方法和技巧。

[linux内存管理] 第026篇 从内核源码看 slab 内存池的创建初始化流程 2周前查看 评论
[linux内存管理] 第026篇 从内核源码看 slab 内存池的创建初始化流程

本文详细介绍了Linux内核中slab内存池的创建过程,从源码层面剖析了slab cache的创建、内存布局以及相关数据结构的初始化。文章首先介绍了slab cache的创建接口函数kmem_cache_create,并解释了其参数与slab cache结构体属性之间的对应关系。随后,文章深入探讨了slab cache的创建过程,包括参数校验、锁的获取、复用已有slab cache的尝试以及创建新slab cache的详细步骤。文章还详细介绍了slab对象的内存布局,包括对齐、red zone、freepointer等关键概念,并解释了如何计算slab所需的物理内存页个数。最后,文章介绍了slab cache在NUMA节点和CPU本地缓存中的结构初始化过程,以及slab allocator体系的初始化过程,包括如何解决“先有鸡还是先有蛋”的问题。通过本文的学习,读者可以深入了解slab内存池在Linux内核中的实现细节。

[linux内存管理] 第025篇 细节拉满,80 张图带你一步一步推演 slab 内存池的设计与实现 2周前查看 评论
[linux内存管理] 第025篇 细节拉满,80 张图带你一步一步推演 slab 内存池的设计与实现

本文深入探讨了Linux内核中的slab内存分配器,它是专为频繁分配和释放小内存块设计的内存池。文章首先回顾了Linux内存分配的宏观流程,包括物理内存分配与释放的全链路实现,以及伙伴系统的设计与实现。接着,文章解释了为什么在已经有了伙伴系统的情况下,还需要slab内存池,主要是为了解决小内存频繁分配和释放的场景,提高性能和减少内存浪费。 文章详细介绍了slab内存池的内存布局,包括内存对齐、red zone(红色警戒区域)的插入、freepointer(空闲指针)的存储以及对象的毒化(POISON)和状态跟踪。接着,文章深入分析了slab的总体架构设计,包括slab cache的基本信息管理,如对齐方式、毒化、red zone、追踪信息等,以及slab的组织架构,包括本地cpu缓存和NUMA节点缓存。 最后,文章详细介绍了slab内存分配和释放的原理,包括从本地cpu缓存、本地cpu缓存partial列表、NUMA节点缓存以及从伙伴系统中重新申请slab的场景。同时,文章还详细介绍了slab内存释放的原理,包括释放对象所属slab在cpu本地缓存、本地cpu缓存partial列表、从full slab变为partial slab以及从partial slab变为empty slab的场景。 总的来说,本文详细介绍了slab内存池的架构和原理,对于理解Linux内核中的内存管理机制具有重要意义。

简述
在万物之间穿行,也在自我之间渡过。
  • liuqi20328@gmail.com
  • 生涯
  • 行业嵌入式
  • 职业Linux/Android内核工程师
  • 人生
  • 生活角色浪子、父母的娃、我夫人的老公
  • 社会角色公司职员、中华人民共和国公民
  • 类型
  • 星座 双子座
  • 生肖
  • 血型O
  • 数据
  • 发表文章123篇
  • 发表评论4个
  • 星球加热3177度
  • 最近的心情能量
  • 地图数据来源于高德地图
  • intj 建筑师
    intj 建筑师
    • 外向内向
    • 远见现实
    • 理性感受
    • 评判展望
    • 坚决起伏
  • 了解更多信息