PCI热插拔

YOLOv12 改进 | Backbone改进 3 将CSP中的简单拼接改为可学习的特征选择门控,动态决定哪些特征流向下一层,同样再写这篇。:相比静态CSP的固定50/50分割,门控机制可学习0.3:0.7等最优比例。在输入端加入轻量SR模块,对下采样后的特征进行超分恢复,提升小目标检测能力。(小目标): 从 0.51 AP → 0.63 AP (+24%):采用ESPCN的高效亚像素卷积,避免传统插值的信息损失。:从通道级(SE)到空间级(Spatial)的多粒度控制。:结合浅层细节和深层语义,恢复小目标的纹理信息。 阅读详情
1在guest linux加载驱动模块:
    一般pci热插拔需要两个内核模块:  acpiphp.ko 和 pci_hotplug.ko  
pci_hotplug.ko  已经被编译进内核文件中,不需要再手动加载。(可以通过/boot/目录下的config 文件来判断是否已经编译进内核)
打开 /etc/modules 文件,在里面输入 acpiphp.即可在再次启动的时候加载 acpiphp 内核模块。


2使用QEMU monitor来热加载设备

QEMU monitor有一个命令pci_add,用来hotadd pci 设备。启动 qemu的时候加入参数    -monitor stdio.

QEMU 1.1.90 monitor - type 'help' for more information
(qemu) help pci_add
pci_add auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]... -- hot-add PCI device

增加一个disk
hot-add个disk意味着 hot-add 个PCI设备,所以想正常工作需要在guest中加入PCI hotplug的支持。
下面的命令会在guest中加入一个scsi磁盘:

 * pci_add auto storage file=/home/sina/work/system/empty.img,if=scsi
也可依用if=virtio来替换 if=scsi,但是IDE不是hotpluggable
pci_add 前  

00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)

pci_add  empty.img 之后:

00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)
00:04.0 SCSI storage controller: LSI Logic / Symbios Logic 53c895a

在guest中通过 dmesg 可看到device已被加入。

[   93.533872] ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 10
[   93.533951] sym53c8xx 0000:00:04.0: PCI INT A -> Link[LNKD] -> GSI 10 (level, high) -> IRQ 10
[   93.537031] sym0: <895a> rev 0x0 at pci 0000:00:04.0 irq 10
[   93.539563] sym0: No NVRAM, ID 7, Fast-40, LVD, parity checking
[   93.540029] sym0: SCSI BUS has been reset.
[   93.554166] scsi2 : sym-2.2.3
[   96.556817] sym0: unknown interrupt(s) ignored, ISTAT=0x5 DSTAT=0x80 SIST=0x0
[   96.556981] scsi 2:0:0:0: Direct-Access     QEMU     QEMU HARDDISK    1.1. PQ: 0 ANSI: 5
[   96.557004] scsi target2:0:0: tagged command queuing enabled, command queue depth 16.
[   96.557021] scsi target2:0:0: Beginning Domain Validation
[   96.559328] scsi target2:0:0: Domain Validation skipping write tests
[   96.559335] scsi target2:0:0: Ending Domain Validation
[   96.578176] sd 2:0:0:0: [sdb] 1048576 512-byte logical blocks: (536 MB/512 MiB)
[   96.578647] sd 2:0:0:0: [sdb] Write Protect is off
[   96.578651] sd 2:0:0:0: [sdb] Mode Sense: 63 00 00 08
[   96.579001] sd 2:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[   96.583432] sd 2:0:0:0: Attached scsi generic sg2 type 0
[   96.585323] sdb: unknown partition table
[   96.586613] sd 2:0:0:0: [sdb] Attached SCSI disk

在虚拟机中验证是否已经将scsi硬盘插入:
$ls /dev/sd*
如果插入成功,那么/dev目录下将会出现新加入的硬盘。

增加NIC设备
pci_add auto nic model=e1000
可以用 model=rtl8139, model=virtio, or model=ne2k_pci 来替换model=e1000。
(qemu) pci_add auto nic  model=e1000                                                                                                
( 注意 测试时用户空间的程序应使用  qemu-kvm ,而不是qemu)

在monitor 中拔除pci设备:
(qemu)pci_del slot_num
其中slot_num为pci_add成功时所提示的slot号。


2、代码跟踪:
使用gdb对qemu的pci_add后执行的代码进行跟踪以便动态地分析QEMU的热插拔机制:
pci_device_hot_add 函数将会被调用,该函数首先获得pci_add的参数:

    PCIDevice *dev = NULL;
    const char *pci_addr = qdict_get_str(qdict, "pci_addr");
    const char *type = qdict_get_str(qdict, "type");
    const char *opts = qdict_get_try_str(qdict, "opts");
对于我们上面执行的pci_add命令,解析后:
pci_addr = “auto”
type = “storage”
opts = “if=scsi,file=empty.img”
pci_device_hot_add将会根据type进行选择去执行是执行 qemu_pci_hot_add_nic 还是qemu_pci_hot_add_storage,并将mon,pci_addr,opts传入,pci_device_hot_add函数的核心功能就完成了。

    if (strcmp(type, "nic") == 0) {
        dev = qemu_pci_hot_add_nic(mon, pci_addr, opts);
    } else if (strcmp(type, "storage") == 0) {
        dev = qemu_pci_hot_add_storage(mon, pci_addr, opts);
    } else {
        monitor_printf(mon, "invalid type: %s\n", type);
    }
进入 qemu_pci_hot_add_storage(mon,pci_addr,opts)  函数,该函数需要返回一个PCIDevice的指针。




原文链接:
http://www.linux-kvm.org/page/Hotadd_pci_devices















046篇:数据统计:分组、求和、平均值、最大最小值 本文介绍了在RPA中实现数据分组统计的方法。通过字典+循环组合,可以完成按单字段或多字段的分组聚合操作,包括求和、计数、求平均值及最大/最小值等。文章详细讲解了分组统计的原理,并提供了单级分组、多级分组的具体实现步骤,最后通过销售数据按月分组的实战案例,演示了如何从原始数据到生成汇总报表的完整流程。这些方法可以灵活应用于各类数据统计分析场景。 阅读详情

相关推荐

Visual Studio Git 使用指南

Visual Studio 2022深度集成了Git功能,提供了直观的图形界面管理源代码。本文详细介绍了VS中Git的使用方法:从环境准备、克隆/创建仓库开始,重点讲解了"Git更改"窗口的日常操作,包括查看修改、暂存文件、提交推送等。同时涵盖了分支管理、查看历史、解决冲突等核心功能,以及储藏、重置等高级操作。文章还提供了实用技巧,如提交规范、频繁提交等最佳实践。VS的Git集成覆盖了日常开发需求,图形界面与命令行可互补使用,适合各层次开发者高效管理代码版本。

guigenyi的专栏 1567

linux系统开机文段释义

本文介绍Linux系统启动过程

istrangeboy&begin zero的博客 1730

OpenFOAM高效学习路线:如何用B站+东岳流体3个月掌握CFD仿真

本文分享了一套高效的OpenFOAM学习路线,结合B站视频、东岳流体教程和官方文档,帮助在职工程师在3个月内掌握CFD仿真技术。通过渐进式学习计划和案例训练,从基础到实战,快速提升独立建模能力。

weixin_29202213的博客 317

linux 日志 硬件检测,在Linux上分析硬件检测日志

数据库管理员在数据库的运维过程中或多或少要和操作系统乃至硬件打上交道,分析数据库故障时操作系统日志往往也是一个重要的线索来源。 以Linux操作系统为例,其主要的日志子系统(syslog subsystem)可大致分为三类:即1)用户连接日志 2)进程统计日志 3)系统和服务日志。 前2种在我们进行系统的安全审计及用户监控时可以派上用场,而因操作系统或硬件问题造成的数据库故障,我们往往需要关注系统...

weixin_34450486的博客 1094

基于python的电商评论文本分析

本文基于京东平台安井手抓饼2000余条评论数据,运用Python文本分析技术(包括分词、词频统计、LDA主题模型等)探究消费者评价特征。研究发现:1)产品评价聚焦口味("好吃")、性价比("一分钱")和便捷性("早餐");2)京东物流服务获得高度认可;3)销售旺季集中在11月至次年1月。分析揭示了速冻食品消费者的核心关注点,为商家优化产品与服务提供数据支持,同时展示了文本挖掘技术在电商评论分析中的实用价值。

weixin_50902344的博客 8347

Spark on Yarn 高可用模式部署流程

本文介绍了如何配置Spark和Yarn的高可用(HA)环境,以确保在大规模数据处理中避免单点故障。

xhaoDream的博客 1444

使用KVM服务创建虚拟机

使用KVM服务创建虚拟机 目录 (1)安装KVM组件 (2)编写和使用NAT启动脚本 (3)在NAT模式下启动虚拟机 前期准备 使用VM Workstation 安装CentOS 7.2操作系统,镜像使用后提供的CentOS-7-x86_64-DVD-1511.iso,关闭防火墙并配置Selinux安全规则,配置IP地址。YUM源使用提供的kvm_yum文件夹。 实施步骤 1、安装KVM 配置本地YUM安装源,将提供的kvm_yum文件夹上传至/opt目录,并配置本地YUM源,命令如下。 [root@

宝耶需努力的技术分享博客 5736

LightRAG实战:5分钟快速搭建一个轻量级法律问答系统(附完整代码)

本文通过实战指南,详细介绍了如何使用LightRAG技术快速搭建一个轻量级法律问答系统。该方案通过构建扁平化实体关系网络和混合检索策略,在5分钟内即可完成从环境准备到智能问答的完整流程,并附有完整代码,为中小团队和个人开发者提供了高效、低成本的AI应用解决方案。

time3的博客 277

搭建《深入Linux内核架构》的Linux环境

搭建《深入Linux内核架构》的Linux环境 阅读目录(Content) 作者 软件 概述 正文 一、安装GCC 二、编译Linux内核 三、制作跟文件系统 四、运行qemu 五、启动log 回到顶部(go to top) 作者 彭东林 pengdonglin137@163.com 回到顶部(go to top) 软件 Host: Ubuntu14...

zjy900507的博客 791

LoRa双端通信稳定性核心:同步字配置与LLCC68工程实践

LoRa是一种基于扩频调制的远距离低功耗无线通信技术,其物理层鲁棒性依赖于发射端与接收端在频率、带宽、扩频因子及同步字等关键参数上的严格一致。同步字作为LoRa帧结构中位于前导码之后的2字节标识字段,承担着物理层帧过滤与网络隔离的核心作用,直接影响通信成功率与抗干扰能力。在实际嵌入式开发中,尤其采用LLCC68等专用射频芯片时,同步字配置错误或双端不一致是导致‘能发不能收’‘间歇性丢包’等典型问题的首要原因。本文面向STM32等Cortex-M平台开发者,结合硬件一致性约束、驱动移植方法论与寄存器级调试手段

weixin_36019375的博客 130

Python FastAPI 面试题及参考答案

FastAPI 的路由机制是其核心功能之一,用于将不同的 URL 路径映射到相应的处理函数。通过定义路由,可以构建出功能丰富的 API。在 FastAPI 中,使用装饰器来定义路由。在这个示例中,是一个装饰器,它将根路径"/"的 GET 请求映射到read_root函数。当客户端发送一个 GET 请求到根路径时,FastAPI 会调用read_root函数并返回结果。

大模型大数据攻城狮的专栏 2247

认识和使用热插拔的正确姿势

热插拔功能是PCIe SSD的一项重要功能, 能大大简化设备更换和调试步骤。特别是在服务器厂商推出支持 U.2 接口的产品后,对热插拔的需求更加广泛。热插拔在 PBlaze5 PCIe SSD应用非常成熟。这篇文章旨在为使用 PBlaze5为代表的U.2接口的PCIe SSD进行热插拔操作提供参考。

Memblaze 3万+

XGBoost原生接口和Sklearn接口参数详解

XGBoost原生接口和Sklearn接口参数详解

算法工程师 2654

ACPI相关(5)- PCI热插拔(三)

PCIE热插拔 PCI_E设备和PCI设备通过一种称作无意外(no surprises)方式实现热插拔。用户不允许在未告知系统软件的情况下插入或者移除一个PCI_E设备。用户告知软件将要插入或者移除一个设备之后,软件将进行相关操作,之后告知用户是否可以进行安全的进行这个操作(通过相应的指示器)。然后用户才可以进行接下来的操作。 同时PCI_E设备也可以通过突然意外(surprise removal)的方式移除设备。它通过两根探测引脚(PRSNT1#,PRSNT2#)来实现,这两个引脚比其余的引脚更短,那

qq_21186033的博客 6940

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

AIX热插拔PCI 设备功能介绍

热插拔PCI 设备功能介绍内容提要: 本文从以下几个方面介绍PCI设备的热插拔功能 一,综述 二, 基础知识介绍三, 移走PCI 适配卡四, 增加PCI 适配卡五, 动态增加/ 移走PCI 命令行介绍说明: 热插拔PCI 设备功能介绍 一, 综述 PCI 适配卡的热插拔功能是AIX 操作系统提供一项重要功能,这一功能的实现同时需要系统硬件和操作系统的支持,本文将介绍PC

5Love 1473

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

ACPI相关(5)- PCI热插拔(一)

PCI ACPI相关 1、热插拔流程 1) 设备状态模式检测的信号脚---- 对应的GPEx_STS的位 2) 在DSDT中编写对应的_LXX控制方法。(用于表示某个GPE事件中GPEx_STS状态响应位来指明当前的设备插入事件)来描述事件执行策略。并通过初始化节点对象绑定通告函数(Notify Handler)通告到OSPM执行相关设备的PCI枚举操作,以下是设备插入后所发生的事件: 1. 用户插入PCI热拔插设备到Slot内; 2. HPPC(南桥中热插拔控制器)生成GPE事件; 3. A.

qq_21186033的博客 4544

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Linux热插拔功能,从内核获取PCI主板上的USB热插拔信息

Linux下热插拔功能: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include &lt;ctype.h&gt; #include &lt;sys/un.h&gt; #include &lt;sys/ioctl.h&gt; #include &lt;sys/socket.h&gt

保持对编程的热情! 494

pci 热插拔

一 相关技术与研究 1997年,PCI SIG制定了第一个PCI热插拔规范,其中定义了支持热插拔所必需的平台、板卡和软件元素。PCI SIG推出了标准热插拔控制器规范(SHPC SPEC),其中明确了热插拔的标准使用模式和严格的寄存器组要求,并且允许操作系统提供商在平台特定的软件之外提供热插拔支持,逐步完成了热插拔标准制定工作,进入技术的全面推广阶段。 2002年以后,Intel把热插拔作为

hushup的专栏 1万+

Linux 2.6.10内核下PCI Express Native热插拔框架的实现机制

PCI热插拔技术,可以有效避免由更换外设引起的服务器系统停机,对于提高服务器系统可用性和可扩展性意义重大。本文讨论了PCI Express热插拔所涉及的软件因素,并基于此,剖析了Linux 2.6.10内核下PCI Express 插槽热插拔子系统的关键实现机制。

liwg06 2440

5分钟搞懂Linux内核PCI热插拔:从ACPI事件到设备识别的全流程解析

你是否遇到过服务器需要停机更换PCI设备的尴尬?Linux内核的PCI热插拔(Hotplug)技术彻底解决了这一痛点。本文将以ACPI事件处理为核心,带你揭开PCI设备动态插拔的神秘面纱,读完你将掌握: - ACPI事件如何触发PCI热插拔流程 - 内核中断处理与设备状态机的协作机制 - 真实代码中的关键函数调用链 - 常见问题排查的3个实用技巧 ## 热插拔的核心价值:从停机维护到无缝升级 ...

gitblog_00785的博客 1267

【深度解析】从sysfs操作到内核探秘:PCI设备热插拔的完整实现链路

本文深度解析了PCI设备热插拔的完整实现链路,从sysfs操作到内核探秘,详细介绍了remove和probe操作的底层逻辑。通过sys文件系统控制接口,内核完成设备卸载与重新识别的精密流程,涵盖资源回收、驱动加载等关键步骤,并提供了实战中的调试技巧与常见陷阱。

weixin_33738578的博客 237

嵌入式系统中PCI Express热插拔技术详解

PCI Express热插拔技术是现代计算机系统中实现高可用性的关键技术,其核心原理是通过物理层检测、电源管理和事件通知机制实现设备的热替换。在嵌入式系统设计中,该技术能显著提升工业自动化、通信设备等场景的服务效率。以Intel 3400芯片组为例,通过配置插槽能力寄存器、控制寄存器和状态寄存器,可实现完整的热插拔功能。实际应用中需特别注意电源时序控制和信号完整性设计,典型场景包括工业控制系统模块更换和医疗设备维护。合理运用MSI中断方案和ACPI电源管理,可优化系统响应速度与稳定性。

weixin_33724059的博客 534

探索PCI热插拔技术的权威指南:1.1版本PDF文档推荐

探索PCI热插拔技术的权威指南:1.1版本PDF文档推荐 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在现代计算机硬件领域,PCI热插拔技术已成为一项关键功能,它允许用户在不关闭系统电源的情况下,动态添加或移除PCI设备。为了帮助工程师、开发人员及相关技术人员深入理解和应用这一技术,我们特别推出了PCI热插拔规范1.1版本的PDF文档。该文档详细阐述了PCI热插拔技...

gitblog_06609的博客 367

StratoVirt 中的 PCI 设备热插拔实现

PCIe Native 机制的热插拔主要是通过 Root Port 设备上的寄存器来表示不同状态,通过中断来通知虚拟机,从而实现了设备的热插拔。

openEuler_的博客 846

【亲测免费】 PCI热插拔规范1.1版本PDF文件下载

PCI热插拔规范1.1版本PDF文件下载 去发现同类优质开源项目:https://gitcode.com/ 本仓库提供了一个资源文件的下载,该文件为PCI热插拔规范的1.1版本PDF文档。 文件信息 文件标题: PCI Hot-Plug Specification Revision 1.1.pdf 文件描述: PCI Hot-Plug Specification Revision 1.1.pdf...

gitblog_06620的博客 467

pcie总线与cpci总线_基于通用PCI接口功能芯片和热插拔控制器实现CPCI总线控制的设计...

CPCI总线简介CPCI总线是一个开放式、国际性技术标准,由PCI总线工业计算机制造商组织PICMG(PCI Industrial Computer Manufacturer Group)负责制定和支持。CPCI总线具有严格的标准和规范,保证其具有良好的兼容性,支持多种处理器和操作系统,符合CPCI规范的扩展卡可插入任何CPCI系统并可靠地工作。CPCI标准将外设组件互连(PCI)标准特性与支持嵌...

weixin_39700397的博客 2169
上一篇: 在64位linux下编译32位程序
下一篇: 使用python脚本登陆ef英语学习中心
xianjian_x
博客等级 码龄14年 231粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值