• TLB flush && fixmap

    背景 针对pti带来的性能影响,继续分析,本文针对TLB flush与fixmap的关系做简要分析。 基本概念 fixmap...


  • TLB flush && vmalloc

    背景 针对pti带来的性能影响,继续分析,本文针对TLB flush与vmalloc的关系做简要分析。 基本概念 有关于TLB和TLB...


  • TLB flush && page fault

    背景 最近在移植 Meltdown&&Spectre 漏洞补丁时,遇到了各种各样的问题,其中性能问题显得尤为突出,无论是pti,还是IBRS/IBPB,都会带来较大的性能损耗。IBRS带来的性能损耗有后续的retpoline的解决方案,能基本解决,而IBPB自身对性能影响较小,基本可以忽略。但pti带来的性能影响却无法忽略,影响比预期大很多,最近断断续续抽空做了些测试和分析,引入的性能损耗和优化思路主要跟如下几个方面相关: TLB...


  • Meltdown && Spectre漏洞补丁-启动失败

    背景 在移植上游的meltdown/spectre漏洞补丁后,发现部分硬件环境中,会有启动失败的问题,现象为:内核启动挂住,没有任何异常打印,在结上串口后,依然没有任何可用信息。 另一方面,当在启动参数中加入nopti或者nopcid后,内核能正常启动,说明问题在与PCID或者PTI相关的功能中。 原因 原因:漏合了如下补丁:...


  • Spectre V2漏洞-IBPB-死锁

    背景 基于CPU硬件的Spectre漏洞影响范围极大,市面上几乎所有的现代CPU都未能幸免。之前也写过文章讲述相关原理和修复方式了。其中的Spectre V2(CVE-2017-5713)影响最大,而且修复最麻烦,需要同时修复内核、qemu并更新CPU硬件微码。 redhat官方也发布了相应的修复补丁集。但合入补丁后的内核在云测试环境中出现了死锁问题,现象为: 内核trigger了nmi_watchdog,有如下打印...


  • Linux对非UTF-8中文编码的支持

    背景 Linux系统默认采用的UTF-8的编码(Unicode编码的一种),包括系统中的中英文和特殊字符,都是默认采用UTF-8编码。 而在国内,针对中文(包括基本的汉字、各少数民族文字、特殊字符等),有自己的编码标准(也称字符集),从前是GBK,到后来的GB18030-2000,现在是GB18030-2005,具体的编码原理机制和区别这里不展开,网上相关资料很多。 在国内的一些特殊行业中,对操作系统中使用的中文编码有严格的要求,如果使用Linux系统的话,就要求Linux能支持特定的编码,比如GBK和GB18030。 那么Linux是否支持UTF-8之外的其他字符集呢?...


  • CPU漏洞-Spectre&Meltdown原理分析及修复原理

    漏洞 席卷全球的CPU漏洞Spectre&Meltdown让全世界的攻城师们着实忙碌了一把,我们也不例外,相关漏洞有3个: Spectre varant1 CVE-2017-5753:bound-check...


  • Spice中键盘事件延迟问题分析

    故障现象 通过Spice客户端远控虚拟桌面,在Spice中的窗口中敲键盘按键,偶而会出现:连续重复按键的问题。即当你敲入一个a键,但出来一堆的a,直到你再敲入一个其它按键后,才停止显示a。 出现这种情况,常常会让人抓狂,现场的用户在通过云桌面练习打字时,都差点急哭了。 分析 Big...


  • 龙芯上的QQ

    有必要么? 近期客户提出需要在龙芯(Loongson)硬件环境上支持QQ程序。没听错吧?确实如此。 在国产化大背景下,一些特定的办公环境中需要完全国产化,不允许使用老美或他国的东西,需要将命运掌握在自己手中,这其中的两个最关键的组件就是操作系统和CPU,Windows的各种安全问题屡遭诟病,Intel的CPU也偶报出各种安全漏洞,但是很多年以来,我们都只能一直默默忍受,国产化提了很多年,但是就是没做起来,国家也是无奈,恨铁不成钢,一直到如今,看似软硬件都有了不错的基础,下了很大的决心,也列出了 切换 的时间表,所以,一些地方已经行动起来了,国产化看来已势在必行。...


  • 如何将Window应用封装成rpm包

    场景 使用wine适配Windows应用程序后,需要将相应的Windows应用封装成rpm包的形式,便于使用包管理工具安装,安装后需要在桌面创建图标,用户点击后即可使用wine启动应用程序。 本文描述制作相应rpm包的基本方法。 RPM包内容 RPM包中主要包含两部分内容:...