全面解析Linux 内核 3.10.x - IPI核间中断的应用_ipi中断可以屏蔽-程序员宅基地

技术标签: os  

From: 全面解析Linux 内核 3.10.x - 中断子系统

前程往事,历历在目 - 佚名

一、基本概念

IPI 全称为Inter-Processor Interrupt,即处理中间的中断,需要可编程中断控制器PIC or APIC的支持! 
操作流程大概如下: 
IPI 
需要向IPI 控制寄存器中写入需要recv interrupt vector,写入的IDB代表了类似IRT Entry的ID,最多可以广播16个硬件处理线程!DTE可以设置硬件处理线程的掩码,支持NMI!

二、实例描述

1、应用场景描述

以XLP3XX为示例,来对IPI进行简单了解。

XLP3xx支持160个IRT ENTRY,
即160个64 Bit的IRT寄存器!
Pcie 访问地址问bus 0,device 0,function 4 + 0x40000(EFCG_BASE)
支持8个128 Bit 位的ITE 寄存器! 
2、和普通中断的的区别是什么?

说到普通中断 
首先我们来回顾一下中断类型! 
从原理上可以划分为:硬中断和软中断 
从类型上可以划分为:可屏蔽中断,不可屏蔽中断,共享中断 
这里我们所说的中断一般指的是一个中断线对应一个硬件处理线程,除了共享中断! 
所谓共享中断从硬件角度上其实就是一根中断线被复用了,所以可以对应多个硬件处理线程! 
然后IRT触发后的信号被多个硬件所使用!也就是说这一点必须需要硬件支持! 
上述简单的说了一下基本中断类型! 
如需要了解更多关于中断的信息!请查看 
而我们的核间中断则是一个硬件线程去中断另外一个硬件线程!

3、优点是什么?

避免CPU线程的浪费,很大限度上将有效的控制CPU硬件线程,发挥SMP多核处理的优势!

4、简单示例
request_irq(TEST_IRQ,handler_test,0,”ipi_test”,NULL);
int ipi_trigger(unsigned int dst)
{
unsigned int reg_value;
        unsigned int volatile *pic_base_addr = 0x18040100;
pic_base_addr -= 0x40; //对齐
reg_value = (1 << dst) | (dst / 16 <<  16) | (TEST_IRQ << 20);
*(pic_base_addr + 0x4e) |= reg_value;
}

By: Keven - 点滴积累

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ly890700/article/details/73928510

智能推荐

Wshshell 脚本简单学习-程序员宅基地

文章浏览阅读5.5k次,点赞7次,收藏13次。WshShell 的简单语法 学习同事给了一个脚本自动执行 部署命令 感觉挺好的 , 年前一直说要学习一下 但是一直没有学习(自己太懒了)这次简单总结一下.创建对象:Set WshShell = WScript.CreateObject("WScript.Shell")sendkeys一些keys的使用空格键 " "退格键 {BACKSPACE} 或..._wshshell

java项目部署云服务器踩坑记录_采用jdk20的项目有坑么-程序员宅基地

文章浏览阅读412次。文章目录云服务器安装环境(tomcat)IDEA项目打包部署结果查看部署后Mysql数据库中文乱码问题云服务器安装环境(tomcat)首先查看服务器是否已经装有tomcat:systemctl status tomcat.service云服务器安装tomcat:yum -y install tomcat,安装完成后tomcat会在/usr/share目录下然后进入/usr/share/tomcat/webapps发现什么都没有,于是可以安装一个tomcat的初始页面yum install tomca_采用jdk20的项目有坑么

详细创建Prism架构wpf项目_wpf prism开发项目模板-程序员宅基地

文章浏览阅读578次。将原本的父类Application改为:PrismApplication,并且实现抽象类(这个抽象可能需要做完步骤4后才给实现)区别:使用模板创建的App.xaml.cs中的App默认继承了PrismApplication;4、App.xaml中引入命名空间:xmlns:prism="http://prismlibrary.com/"2、这样子创建的项目命名最好不要用数字开头会莫名报错,中文的也行。注意: 1、创建完有可能会莫名报错,那就到NuGet中将Prism.DryIoc重写装一遍。_wpf prism开发项目模板

基于ArUco的视觉定位(一)_多个aruco定位-程序员宅基地

文章浏览阅读6.3k次,点赞7次,收藏68次。1、ArUco简介ArUco: a minimal library for Augmented Reality applications based on OpenCV,是科尔多瓦大学“人工视觉应用”研究小组(A.V.A)设计开发的一个微型现实增强库。ArUco源码下载地址:https://sourceforge.net/projects/aruco/files/?source=navba..._多个aruco定位

Android - 实现微信的底部导航功能(第五次作业)_android仿微信底部导航栏-程序员宅基地

文章浏览阅读447次。利用fragment和ViewPager实现类似微信的底部导航功能。上传模拟器运行截图及代码截图。_android仿微信底部导航栏

20届 信息安全毕业设计(论文)选题推荐-程序员宅基地

文章浏览阅读1.3k次,点赞37次,收藏16次。信息安全毕业设计选题合集涵盖了管理系统、小程序、深度学习、机器学习、算法、人工智能、大数据、网络安全、嵌入式、推荐系统、目标检测等多个热门领域。对于计算机专业、软件工程专业、人工智能专业、通信工程专业的毕业生而言,选择一个合适的毕业设计选题至关重要。在这个毕业设计选题合集中,我们精心收集了各种有趣且具有挑战性的选题,旨在帮助学生们在毕业设计中展现他们的技术实力和创新能力。不论是对于对深度学习技术感兴趣的同学,还是希望探索机器学习、算法或人工智能的领域的同学,本合集都能为您提供丰富的选题资源和灵感。

随便推点

Java PhantomJS+ECharts Windows 生成图片_phantomjs eharts window cdns-程序员宅基地

文章浏览阅读777次,点赞2次,收藏3次。Java PhantomJS+ECharts Windows 生成图片菜鸡程序员小童准备用Java生成图片啦,主要是为了生成图表哦简单的效果图开始准备下手吧~下载安装PhantomJS下载选择Windows版本,我选择的是2.1.1版本https://phantomjs.org/download.html部署环境PHANTOM_JS_HOME=D:\phantomjs\pha..._phantomjs eharts window cdns

零基础入门生信数据分析——导读-程序员宅基地

文章浏览阅读701次,点赞21次,收藏9次。专栏的目录,可以直接通过各个分析点跳转到相关帖子,方便查找

找出字符串 “abcabcabcabcabcabda“ 中 “ab“ 出现的次数和位置_编写一个函数,找出字符串 “abcabcabcabcabcabda” 中 “ab” 出现的次数和位置-程序员宅基地

文章浏览阅读967次。找出字符串 "abcabcabcabcabcabda" 中 "ab" 出现的次数和位置_编写一个函数,找出字符串 “abcabcabcabcabcabda” 中 “ab” 出现的次数和位置。

第04天-文件IO_#include <stdio.h>#include <string.h>#include <sys-程序员宅基地

文章浏览阅读239次。第04天-文件IO系统调用是受控的内核入口,借助于这一机制,进程可以请求内核以自己的名义去执行某些动作**实现:**系统调用是操作系统内核的一部分的,必须以某种方式提供给进程让他们去调用。CPU可以在不同的特权级别下运行,而相应的操作系统也有的运行级别(用户态和内核态)运行在内核态的进程可以毫无限制的访问各种资源,操作系统通过软件中断从用户态切换到内核态库函数:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-18xZd0AJ-1656067116776)(D:\图片\imag_#include #include #include #incl

确定LR(1)项目的搜索符_lr(1)搜索符怎么看-程序员宅基地

文章浏览阅读1.9k次,点赞3次,收藏6次。确定LR(1)项目的搜索符典例提示要求哪个的搜索符,就找这个是从哪儿来的,规约后原来的后面跟的就是搜索符_lr(1)搜索符怎么看

ubuntu安装教程及ubuntu镜像下载(超详细图文教程)_vmware安装ubuntu-程序员宅基地

文章浏览阅读10w+次,点赞152次,收藏529次。VMware虚拟机安装Ubuntu(超详细图文教程)_vmware安装ubuntu