硬件中断发生频繁,是件很消耗 CPU 资源的事情,在多核 CPU 条件下如果有办法把大量硬件中断分配给不同的 CPU (core) 处理显然能很好的平衡性能。 现在的服务器上动不动就是多 CPU 多核、多网卡、多硬盘,如果能让网卡中断独占1个 CPU (core)、磁盘 IO 中断独占1个 CPU 的话将会大大减轻单一 CPU 的负担、提高整体处理效率。 VPSee 前天收到一位网友的邮件提到了 SMP IRQ Affinity,引发了今天的话题:D,以下操作在 SUN FIre X2100 M2 服务器+
由于 APIC-EM 会调用部分 PI 的功能,在安装 APIC-EM 之前,必须先安装好 PI (此处PI的介绍略过)PI在这里的作用是PnP和设备发现
1,中断类型 guest使用ubuntu 1604,在guest中执行cat /proc/interrupts 目前操作系统使用的中断有io apic,MSI,还有就是NMI,LOC等。 继续执行c
惠伟:linux time和kvm time虚拟化综述zhuanlan.zhihu.com
不同的外部设备、不同的体系结构、不同的OS其中断实现机制都有差别,本文对应的OS为linux3.4版本,外部设备为PCI设备、系统为X86。
在这篇中遗留了几个问题,先尝试回答一下,不一定准确,代码太多,看不过来,全靠猜测,代码的历史很长,都是智慧的结晶,一时半会消化不了很正常。
在上一篇文章中,我们已经了解了中断和异常的一些概念,对于中断和异常也有了大概的理解。那么,系统中硬件到底是如何处理中断和异常的呢?本文我们就以常见的X86架构为例,看看中断和异常的硬件工作原理。
KVM (Kernel-based Virtual Machine) 是基于 虚拟化扩展指令集 (Intel VT or AMD-V) 在 linux x86 平台上的 完全虚拟化 解决方案
中断 是为了解决外部设备完成某些工作后通知CPU的一种机制(譬如硬盘完成读写操作后通过中断告知CPU已经完成)。早期没有中断机制的计算机就不得不通过轮询来查询外部设备的状态,由于轮询是试探查询的(也就是说设备不一定是就绪状态),所以往往要做很多无用的查询,从而导致效率非常低下。由于中断是由外部设备主动通知CPU的,所以不需要CPU进行轮询去查询,效率大大提升。
前言: 减少vm exit的次数,提高虚拟机的性能。 本文对比几种场景,讨论kvm的性能优化方案。 本分方案中,host和guest都使用Linux4.4。相比更早的Linux版本,Linux4.4的虚拟化更加完善。如果有不了解的朋友,可以了解一下apicv技术,和相关的posted-interrupt和PV-EOI。 本文中,工具使用systemtap,获取到vm exit的reason和次数。 分析: 1,网卡虚拟化 初始条件: a,为了避免外部中断带来的干扰,把物理网卡的中断绑定到物理机的CPU0
一,softlockup: watchdog软狗/软锁----用于检测系统调度是否正常。 能响应中断,但调度异常。
softirqs 是在 Linux 内核编译时就确定好的,例如网络收包对应的 NET_RX_SOFTIRQ 软中断。因此是一种静态机制。如果想加一种新 softirq 类型,就需要修改并重新编译内核。
本文介绍如何检测处理器是否支持AES-NI指令集,首先我们先了解一下什么是AES-NI指令集。
王柏生 资深技术专家,先后就职于中科院软件所、红旗Linux和百度,现任百度主任架构师。在操作系统、虚拟化技术、分布式系统、云计算、自动驾驶等相关领域耕耘多年,有着丰富的实践经验。著有畅销书《深度探索Linux操作系统》(2013年出版)。
命令 , 可以查看 " Linux 内核位数 “ 和 ” 系统的软硬件信息 " ;
概要 ---- 环境 [root@h102 ~]# cat /etc/issue CentOS release 6.6 (Final) Kernel \r on an \m [root@h102 ~]# uname -a Linux h102.temp 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux [root@h102 ~]# cat /proc/cpuinfo proc
如前所述,我们知道异常的处理还是比较简单的,就是给相关的进程发送信号,而且不存在进程调度的问题,所以内核很快就处理完了异常。
李剑,携程系统研发部技术专家,负责Redis和Mongodb的容器化和服务化工作,喜欢深入分析系统疑难杂症。
第一就是获取当前时间,就像人想知道时间时看墙上挂的时钟一样,简称clock,如time()/ftime()/gettimeofday()/data()等这些系统调用,都是软件主动获取时间。
之前做过linux在powerpc上的移植,当然过程曲折,内容不充实,也没有想过要写这样一篇文章,满足实际需求就可以。现在又在做arm移植,自己所用的工具、设备等都有了比较大的改进,那我觉得应该写一篇文章来记录一下,因为过程中的问题,不是简单几句命令就能解释的,而网上的文章真的是初学者的噩梦,没有条理不说,质量也不敢恭维。 有的文章太细,都是在讲指令,大部分也都是抄来抄去,告诉大家照着步骤来就可以;而有的文章呢,则是在讲原理,类似于一些套话,读者想要的有可能只是一个可编译的环境,结果云里雾里不知所云。我是觉得理论与实践相结合是最合理的,如果有什么不对的地方,请留言,虽说只是自己的笔记,也需要对读者负责。当然,觉得我说的是废话,请右上角。
2018年11月14日 10:51:27 DebugTheLife 阅读数 1779
既然叫中断, 那我们首先就会想到这个中断是中断谁?想一想计算机最核心的部分是什么?没错, CPU, 计算机上绝大部分的计算都在CPU中完成,因此这个中断也就是中断CPU当前的运行,让CPU转而先处理这个引起中断的事件,通常来说这个中断的事件比较紧急,处理完毕后再继续执行之前被中断的task。比如,我们敲击键盘,CPU就必须立即响应这个操作,不然我们打字就全变成了慢动作~。说白了中断其实就是一种主动通知机制,如果中断源不主动通知,那想知道其发生了什么事情,只能一次次地轮询了,白白耗费CPU。
根据任务的不同 CPU上下文切换可以分为进程上下文切换 线程上下文切换和中断上下文切换
内核引导参数大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导参数多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导参数。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导参数,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导参数说明。大多数参数是通过"__setup(... , ...)"函数设置的,少部分是通过"early_param(... , ...)"函数设置的,逗号前的部分就是引导参数的名称,后面的部分就是处理这些参数的函数名。
上一篇文章我们简单了解了一些关于时间的概念,以及Linux内核中的关于时间的基本理解。而本篇则会简单说明时钟硬件,以及Linux时间子系统相关的一些数据结构。
今天分享的内容是 玩转 AIGC「2024」 系列文档中的 打造本地大模型地基,PVE 配置显卡直通。
中断是硬件和软件交互的一种机制,可以说整个操作系统,整个架构都是由中断来驱动的。中断的机制分为两种,中断和异常,中断通常为 $IO$ 设备触发的异步事件,而异常是 $CPU$ 执行指令时发生的同步事件。本文主要来说明 $IO$ 外设触发的中断,总的来说一个中断的起末会经历设备,中断控制器,$CPU$&$OS$ 三个阶段:设备产生中断,中断控制器接收和发送中断,$CPU$&$OS$ 来实际处理中断。
KVM 是指基于 Linux 内核的虚拟机(Kernel-based Virtual Machine)。 2006 年 10 月,由以色列的 Qumranet 组织开发的一种新的“虚拟机”实现方案。 2007 年 2 月发布的 Linux 2.6.20 内核第一次包含了 KVM 。增加 KVM 到 Linux 内核是 Linux 发展的一个重要里程碑,这也是第一个整合到 Linux 主线内核的虚拟化技术。
通过DMA写物理地址0x0FEE_XXXX来产生中断,PCI config space中有MSI Address和Data寄存器,驱动配置这两个寄存器,Address寄存器中有Destination ID,表示Local APIC ID,Address寄存器所有字段组合起来就是x0FEE_XXXX,Data寄存器有vector号,表示中断号。
计算机领域有一个经典的问题:从你在浏览器中输入URL并按下回车,到网页渲染出来,这中间发生了什么?
在数据平面,外设可以通过DMA方式直接从系统RAM读写数据,如将从外部接收到的数据写入到RAM,或从RAM直接读取需要输出到外部的数据。而在控制平面,外设可以通过中断,将数据输入和输出完成事件,以异步方式通知CPU。
今天向公司申请了一台 Linux 主机,作为平时的开发环境。由于自己并不依赖远程开发(大多数情况下项目都可以本地开发、调试),于是只申请了 4C/8G 的低配机器。
惠伟:IOMMU(四)-dma remappingzhuanlan.zhihu.com
在网络厂商的圈子里,其实SDN早就不是什么新概念了。ForCES作为“SDN上古神兽”在2004年就有了第一版RFC,2006年Juniper向IETF提交NETCONF,希望能够对各厂家设备的CLI进行标准化,同时在远端通过开放API对网络进行自动化配置与管理,至于OpenFlow其实也早在2008年就被提出了,不过当时也没有在业界引起太大的波澜。2004年到2012上半年,面对初现“狼子野心”的SDN,Cisco可谓是镇定自若,策略上也没有采取过分的打压,毕竟作为网络厂商的“大哥大”对待新技术要表现出足
ACPI这个单词,用电脑用多了的同学应该或多或少能在系统的报错信息等地方见过它。它表示表示高级配置和电源管理接口(Advanced Configuration and Power Management Interface)。通过ACPI规范,就能查询计算机硬件的一些信息。
目录 1.什么是CPU上下文切换 2.CPU上下文切换的类型 3.如何查看系统中的上下文切换 4.案例 5.总结 ---- 读过倪朋飞的《Linux性能优化实战》经常说的 CPU 上下文切换是什么意思
很多时候,我们需要下载软件的时候,必须要知道我们使用的Linux系统是什么版本,32还是64位等等,可以使用最简单的命令查看:uname -a
最近在开发一个项目,需要用到高精度的延时机制,设计需求是 1000us 周期下,误差不能超过 1%(10us)。
/proc/cpuinfo 是一个虚拟文件系统,在 Linux 系统中提供有关 CPU(中央处理器)的信息。通过读取该文件,您可以获取有关处理器的详细信息,如型号、频率、核心数、缓存大小等。本文将介绍 /proc/cpuinfo 文件中最常见的标志,并提供相应的示例。
本文记录Linux系统获取CPU信息方法。 命令 1 cat /proc/cpuinfo 得到输出信息: processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 63 model name : Intel(R) Xeon(R) CPU E5-2678 v3 @ 2.50GHz stepping : 2 microcode : 0x43 cpu MHz : 1200.000 cache size : 30720 KB p
咱不能闷着头啥也不管一个劲的只管执行代码,还得和连接在主板上的其他单位打交道。经常保持联系的有键盘、鼠标、磁盘,哦对,还有网卡,这家伙最近把我惹到了,待会再说这事儿。
今天我们来学习几个小知识,不一定是Linux的命令,都是用于查看Linux的系统信息的
网上有很多写中断虚拟化的博客,讲qemu/kvm是怎么模拟中断的,贴了大段大段的代码,看起来很吃力,对于一个虚拟化新手来说太困难太困难,我这儿写点简单的,讲讲中断和中断虚拟化的原理和来龙去脉,争取让大家好理解一点,也同时加深自己的理解,中断和中断虚拟机实在太绕了,直接看代码那就是看天书,先掌握原理和设计再看代码会好一点,争取后面再写写细节和代码分析,一步一步来搞定它。
很多人在学习中断子系统的过程中,在对基本概念与整体不太了解的情况下,过早的陷入了各种架构的实现细节,如同盲人摸象。这里主要给大家明确中断的各个基本概念,希望从这个角度能让大家更好的理解中断子系统。
Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM已成为学术界的主流VMM之一。
如果什么都没有,说明没有加载,上面显示表明已加载KVM,如果没有加载则执行以下命令加载KVM
2017年11月24日 11:52:17 tiiefu1212 阅读数 14584
根据提示一步一步进行安装,其他的也类似,注意:! 表示必须要设置的 所有带有 ! 的都设置完毕后,就可以输入 b 继续安装了
领取专属 10元无门槛券
手把手带您无忧上云