• 内核中的page fault & copy_from_user

    内核态的page fault? 前段时间有同事问了个问题:内核中是否可能发生page fault? 一时没能给出准确答案,当即有种感觉:难道是对内核内存管理的理解还不够,之前在这方面还是比较自信的~...


  • Loongson 3A2000/3B2000手册笔记

    龙芯KVM分析中,顺便看了看龙芯3A2000的手册,记录当笔记。 总体上跟Mips标准架构差异不大,仅记录特别的需要注意的点。(内容大部分摘自龙芯手册) 内存管理 地址空间 地址空间是指某一特定寻址模式下所能覆盖的所有地址范围。MIPS64...


  • 闲聊龙芯KVM-内存虚拟化

    最近分析龙芯KVM的实现,重点在内存虚拟化,影响性能的关键,本文主要讲述龙芯硬件平台上,现有的几种内存虚拟化方式的实现原理。 硬件现状 当前龙芯3A硬件上已经提供了部分虚拟化需要的硬件,比如Guest、host模式,VPID的支持,但是对于内存虚拟化来说,还没有类似X86上的EPT之类的硬件,所以内存虚拟化实现比较困难,性能不能充分发挥。 现有的可行方式 根据龙芯的几篇主要博士论文,目前龙芯KVM中内存虚拟化可行的实现方式有如下几种:...


  • Mips TLB miss实现in Linux

    TLB miss是Mips中内存管理的核心流程。上一篇写了关于Mips中,TLB miss的相关原理,本文关注在Linux kernel中的代码实现。 TLB...


  • Mips TLB miss异常

    最近分析龙芯KVM的实现,顺便又粗看了遍MIPS的手册,跟KVM相关的主要模块包括: CPU虚拟化 内存虚拟化 IO虚拟化 目前龙芯上CPU虚拟化跟标准内核差异不大,需要软硬件配合支持,目前龙芯整体能支持。...


  • Wayland & Input

    前段时间分析Xorg中键盘相关问题,顺便分析了一下Wayland中Input相关部分,这篇文章做简单介绍,涉及内容比较多,可能有点乱,权当笔记。 Wayland中的Input概况 与Xorg一样,Wayland中显然也需要统一的Input处理框架和机制,Wayland复用了现有的功能模块,省了不少力,主要结构如下图所示: 从图中可以看出,libinput是wayland input模块的核心。...


  • Input子系统 & 快速输入时大小写混乱问题

    问题 在标准Fedora系统中,登录系统输入密码时,当使用Capslock键切换大小写,且输入速度比较快时,会出现大小写混乱问题。 分析 确认现象 上述问题描述比较模糊,需要先自己做些深入测试验证,确认清楚现象,为后续分析指导方向。...


  • 窗口管理器Marco--窗口stack错乱问题分析

    一直想写些关于窗口管理器相关的内容,一直每时间深入分析相关代码。最近刚好遇到一个诡异的QT界面消失问题,顺便分析了相关代码。本文主要针对该问题相关内容进行梳理,其它部分后面有时间再整理吧。 问题 有个QT应用,界面是一个悬浮菜单,用于实现窗口切换。在使用过程中,偶尔会出现菜单无故消失的现象,而相关进程状态正常,无任何异常上报,只是界面消失了。 分析 从现象开始...


  • Wayland源码分析-repaint相关流程

    本文关注Wayland中绘图相关流程,这是wayland中非常关键的流程之一。 repaint? 为什么wayland中要有repaint操作呢?不是号称都是client绘图、wayland只负责合成么? 确实是Client绘图,compositor(服务端)只负责合成。但由于client绘图实际实现为double buffer,client最初的绘图操作都是在pending...


  • Mips架构学习笔记

    龙芯龙芯,需要学习Mips,至少了解下。 Mips架构组件 ISA(Instruction Set Architecture)...