发 帖  
  • 编者按:笔者遇到一个非常典型 JVM 架构相关问题,在 x86 正常运行的应用,在 aarch64 环境上低概率偶现 JVM 崩溃。这是一个典型的 JVM 内部 bug 引发的问题。通过分析最终定位到 CMS 代码存在 ...
    0
    3360次阅读
    0条评论
  • 一、背景:性能之战 “不服跑个分”已经沦为手机行业的调侃用语,但是实话实说,在操作系统领域“跑分”确实是最重要的评价方式之一。比如 Linux 内核社区常常以跑分软件得分,来评价一个优化补丁的价值。甚至还有 phoron...
    0
    1737次阅读
    0条评论
  • 1开场白 环境: 处理器架构:arm64 内核源码:linux-5.10.50 ubuntu版本:20.04.1 代码阅读工具:vim+ctags+cscope 无论是任务处于用户态还是内核态,经常会因为等待某些事件而睡...
    0
    3038次阅读
    0条评论
  • 4.用户态睡眠 以sleep为例来说明任务在用户态是如何睡眠的。 首先我们通过strace工具来看下其调用的系统调用: $ strace sleep 1 ... close(3) = 0 clock_nanosleep(...
    0
    1874次阅读
    0条评论
  • Linux内核ftrace的学习

    2021-8-13 17:33
    目录 1. 前言 2. ARM64栈帧结构 3. 编译阶段 3.1 未开启ftrace时的blk_update_request 3.2 开启ftrace时的blk_update_request 4. 链接阶段 4.1 未...
    0
    3108次阅读
    0条评论
  • 在先前文章中,我们谈到现代GPU发展出SIMT(Single Instruction Multiple Thread)的执行结构,硬件线程池的线程们有相对独立的运行上下文,以Warp为单位分发到一组处理单元按SIMD的模...
    0
    4205次阅读
    0条评论
  • 很多基础的概念,将跨越软件的层次而存在。比如slab,对于内核人员,我们都知道slab是buddy之上的一层。 因为buddy作为Linux内核最底层的内存管理器,它分配1页,2页,4页,2^n页,但是作为内核的堆用户本...
    0
    1439次阅读
    0条评论
  • 1. 前言 在继续分析 dev_queue_xmit 发送数据包之前,我们需要了解以下重要概念。 Linux 支持流量控制(traffic control)的功能,此功能允许系统管理员控制数据包如何从机器发送出去。流量控...
    0
    3382次阅读
    0条评论
  • 1. 前言 本文分享了Linux内核网络数据包发送在UDP协议层的处理,主要分析了udp_sendmsg和udp_send_skb函数,并分享了UDP层的数据统计和监控以及socket发送队列大小的调优。 2. udp_...
    0
    3474次阅读
    0条评论
  • 在先前的文章中《近距离看GPU计算(2)》,我们谈到GPU相比CPU有更大的内存带宽,此言不虚,这也是众核GPU有源源不断数据弹药供给,能够发挥强大算力的主要原因。基本上GPU的内存带宽要比CPU多一个数量级。 但是考虑...
    0
    2510次阅读
    0条评论
  • 1. 前言 本文首先从宏观上概述了数据包发送的流程,接着分析了协议层注册进内核以及被socket的过程,最后介绍了通过 socket 发送网络数据的过程。 2. 数据包发送宏观视角 从宏观上看,一个数据包从用户程序到达硬...
    0
    1257次阅读
    0条评论
  • CACHE基础 对cache的掌握,对于Linux工程师(其他的非Linux工程师也一样)写出高效能代码,以及优化Linux系统的性能是至关重要的。简单来说,cache快,内存慢,硬盘更慢。在一个典型的现代CPU中比较接...
    0
    1742次阅读
    0条评论
  • 1.开场白 环境: 处理器架构:arm64 内核源码:linux-5.11 ubuntu版本:20.04.1 代码阅读工具:vim+ctags+cscope 本文步进到Linux内核进程管理的核心部分,打开调度器的黑匣子...
    0
    1998次阅读
    0条评论
ta 的专栏
关闭

站长推荐 上一条 /6 下一条

返回顶部