关于IOMMU问题的扩展

关联CSDN:

Steam Deck OLED WLAN下载速率过低问题的排查和解决-CSDN博客

前言

如前所述,Steam Deck OLED WLAN速率低问题和IOMMU有一定的关系,这里我们对IOMMU为什么会对速率有影响进行一个较深入的理解。

对于IOMMU我相信大家通过网上的资料,或多或少都有一定的了解,那在这里我们只是简单的描述下,具体相关的资料大家可以google等等。。。

首先IOMMU(Input and Output Memory Management Unit)可以我们可以直接理解为一个硬件单元,主要的作用是地址的转换和地址的隔离,可以将它和MMU进行类比。

从上图可以看出,IOMMU是直接内存访问,即设备与内存直接通信,而无需经过CPU的一个操作。

IOMMU: https://en.wikipedia.org/wiki/Input%E2%80%93output_memory_management_unit

接下来我们理解为什么IOMMU会影响Steam Deck OLED WLAN的速率:

基于市场环境,大部分外设的寻址范围优先,以目前主流的32位设备为例,其在物理内存中直接寻址的范围是0~4GB。但是,现代操作系统的内存往往大于4GB。如果设备申请DMA时,内核为设备分配的DMA buffer的地址高于4GB(如上图所示简称为"high buffer"),则设备将无法寻址到它。

但是有了IOMMU以后,IOMMU就可以在0~4GB范围内分配一段与高地址buffer长度相同的内存,让设备能够直接寻址(以下称为"low buffer")。设备向low buffer写入后,IOMMU就会将low buffer中的内容,复制到high buffer,而后通知CPU从high buffer读取内容。反之亦然——CPU向high buffer写入后,IOMMU就会将high buffer中的内容,复制到low buffer,而后通知设备从low buffer读取内容。这样,CPU和设备都能读取到对方写入的内容,这样就不会占用过多的CPU资源,以提高数据搬用的效率。这样在"high buffer"和"low buffer"之间复制内容的操作,在IOMMU机制中被称为"sync"或"bounce"。

如前描述Steam Deck OLED WLAN使用的是Qualcomm QCA2066芯片,其支持能力如下所示:


WLAN

  • Compliant with lEEE 802.11a/b/g/n/ac/ax Supports 2x2 Muli-User Multiple-nput Multiple-Qutput(MU-MIMO)
  • Dual Band Simultaneous(DBS), up to 3 Gbps data rate(2x2+2x2 11ax DBS)
  • Tri-band 2.4 GHz/5 GHz/6 GHz support 20 MHz/40 MHz channel bandwidth for 2.4 GHz and 20MHz/40 MHz/80 MHz/160 MHz channel bandwidth for 5 GHz/6 GHz
  • Seamless antenna sharing with Bluetooth, LTE, LTE-U.and 5G
  • Dynamic Frequency Selection (DFS, radar detection)
  • Offloading traffc for minimal host ulilization at 802.11ac/ax speeds
  • Low-power PCle (with Li substate) interface
  • Integrated close-loop power detector

Bluetooth

  • Compliant with Bluetooth Milan and ANT+
  • Supports 2 Mbps Bluetooth Low Energy (BLE), BLE LOngRange
  • Split ACL support for A2DP true stereo (earbuds)
  • Dedicated Bluetooth antenna, sharing Bluetooth antenna with WLAN, and concurrent with 5G WLAN
  • Dual eSCO and dual A2DP streams
  • Supports class 1 and class 2 power-level transmissions without requiring an extemal PA (power amplifier)
  • Backward-compatible with previous Bluetooth standards
  • Flexible interace Slimbus, PCM2S for Bluetooth audio

因为QCA2066的PCIe寻址范围被限制到了0~4G,所以跑流时,PCIe无法直接访问高于4G以上的内存,并且IOMMU没有被使能,所以就会发生大量的软中断进行数据的搬运,基于上图,也能直观的看到问题的原因。

这里再插个话题:

为啥Qualcomm QCA206x设备使能的是32位DMA MASK(本身支持36位 DMA MASK),而不是36位的DMA MASK,这里做了一个猜测:因为我们平常适配的都是嵌入式ARM设备,对于嵌入式ARM设备的话,其实本身的物理内存一般都是小于4G的(当前有一些Android设备除外),所以对于物理内存小于4G的设备,本身在进行内存拷贝的时候,也就不需要IOMMU的参与了,所以QCA206x只需要使能32位的DMA MASK,另一个原因是为了兼容性,一些嵌入式ARM设备不支持36位的DMA MASK。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/29443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android中的Audio系统框架分析(一)

概述 Audio系统是Android 平台重要的组成部分,我们将从以下几个方面来讲解: 一Audio基础知识讲解 二、Android系统中Audio框架 Audio基础知识讲解 我们大家知道声音是由物体振动产生的声波。是通过介质(空气或固体、液体)传播并…

CrossOver Games For Mac官方下载_2024电脑最新版软件安装包下载

CrossOver Pro For Mac是由codewaver公司开发的类虚拟机软件,目的是使linux和Mac OS X操作系统和window系统兼容。CrossOver Pro For Mac能够直接在Mac上运行Windows软件与游戏,而不需虚拟机,功能是非常强大的,值得大家下载使用。…

在Spring Boot中使用Sa-Token实现路径拦截和特定接口放行

在Spring Boot中使用Sa-Token实现路径拦截和特定接口放行 很喜欢的一段话:别想太多,好好生活,也许日子过着过着就会有答案,努力走着走着就会有温柔的着落。 春在路上,花在枝上,所有的美好都在路上&#xff…

【测试专题】系统测试报告(原件Word)

软件测试报告在软件开发过程中起着至关重要的作用,主要有以下几个主要原因: 1、确保软件质量 2、提供决策支持 3、记录测试过程和结果 4、促进沟通和协作 5、符合标准和法规要求 6、改进测试流程和策略 7、降低风险 软件开发全套资料获取进主页或者本文末…

IO流(二)

IO流(二) 目录 IO流 —— 字符流IO流 —— 缓冲流IO流 —— 转换流IO流 —— 打印流IO流 —— 数据流IO流 —— 序列化流 1.IO流 —— 字符流 文件字符输入流 —— 读字符数据进来 字节流:适合复制文件等,不适合读写文本文件字…

nginx rewrite地址重写

目录 常用的nginx正则表达式 location和rewrite的区别 一、location 1.location常用匹配类型 2.location匹配机制 3.实际工作中三大匹配规则 1.网站首页匹配 2.网站静态页面,通过前缀匹配或通用匹配在nginx服务器本地处理 3.网站动态页面,通过匹…

PostgreSQL源码分析——initdb

数据库初始化 在安装完数据库后,需要进行初始化数据库操作,对应PostgreSQL数据库中就是需要进行initdb后,才能对数据库进行启动。initdb的过程,其实就是创建数据库实例的过程,生成模板数据库和相应的目录、文件信息&a…

uniapp小程序限制微信群访问(图文教程)

我有一个微信小程序 “程序员实用资源” 我现在只想让我的微信群可以访问这个小程序的所有功能 所以我必须对我小程序的来源进行限制,让部分功能在正常访问的时候提示没有加群,不可访问,只有从群内点击进入小程序的时候才可以访问这部分功能…

目标检测顶会新成果!20个突破性方法,更高性能,更强理解与分析能力!

【目标检测】在近年来的深度学习领域中备受关注,它通过识别和定位图像中的目标对象,提升了模型在图像理解和分析方面的能力。目标检测技术在自动驾驶、安防监控和医疗影像分析等任务中取得了显著成果。其独特的方法和卓越的表现使其成为研究热点之一。 为…

ESP32蓝牙串口通讯

文章目录 一、前言二、代码三、运行 一、前言 ESP32支持经典蓝牙和低功耗蓝牙(BLE),经典蓝牙可在计算机上模拟出一个串口,使得ESP32可以以串口的方式和计算机通信。 二、代码 #include "BluetoothSerial.h"String device_name …

2025计算机毕业设计选题题目推荐-毕设题目汇总大全

选题在于精,以下是推荐的容易答辩的选题: SpringBoot Vue选题: 基于SpringBoot Vue家政服务系统 基于SpringBoot Vue非物质文化遗产数字化传承 基于SpringBoot Vue兽医站管理系统 基于SpringBoot Vue毕业设计选题管理系统 基于SpringBoot Vue灾害应急救援…

软考中级证在手里,感觉白躺家里了?

软考中级,最适合考的专业是《系统集成项目管理工程师》,特别适合零基础的人! 2022年中级职称的报名条件和要求非常宽松,即使没有学历、零基础和相关工作经验也可以考试!!! 一、职称的含金量 …

docker 中 File Sharing 和Volumes 的区别

在 Docker 中,File Sharing 和 Volumes 都涉及到将文件和目录从主机系统映射到容器中,但它们的用途和实现方式有一些重要的区别: 一、简介 File Sharing 是 Docker Desktop 在 Windows 和 macOS 上的一项功能,允许你将主机文件系…

中国最厉害的改名大师颜廷利:食物的真正人生意义是识悟

在探索人生意义的深邃征途中,我们本应以“识悟”为航标,不断扬帆远航,以实现自我的升华。然而,当回望人世繁华,古往今来,无论男女老少,似乎都在“食物”的陪伴下,徘徊往复&#xff0…

计算机网络复习

2024年whut 概述 1.计算机网络的目标:信息传输和资源共享 2.网络协议的要素(必考): 语法:数据信息和控制信息的结构或格式 语义:要发出何种控制信息,完成何种动作,做出何种响应 同…

safari浏览器无法连接到服务器

问题:MacBook pro,网络连接正常,可以使用各种软件上网,唯独safari浏览器打不开网页,报错说Safari无法连接到服务器; 原因:使用了VPN,VPN自动更改了网络设置,导致Safari浏…

监控局域网电脑屏幕的办法,最简单的三种方法,好用!

在现代企业管理和家庭教育环境中,对局域网内电脑屏幕进行有效监控成为了保障信息安全、提升工作效率和监督行为规范的重要手段。 监控局域网电脑屏幕不仅可以帮助管理者了解员工的工作状态,确保资源的合理使用,还能在一定程度上预防潜在的网…

银行卡归属地查询-银行卡归属地接口-银行卡归属地API

接口简介:通过银行卡号查询国内外银行名称、银行卡卡种、卡品牌以及银行卡发卡省份和城市,支持借记卡和部分贷记卡的发卡省市查询。 若银行卡是农村信用社,归属地无法区分到城市,只能到省份 接口地址:https://www.wapi…

CentOS 7 安装MySQL以及常见问题解决

访问网站:http://repo.mysql.com 找到适配CentOS 7版本的MySQL 的YUM仓库包rpm文件,如下图 下载后,找到安装包的位置 空白处右键,选择在终端打开 查看当前目录下文件 # 安装MySQL 5.7的YUM仓库包rpm -ivh mysql57-community-rele…

中科数安 | 加密管理系统

中科数安提供的加密管理系统是一套全面而高效的数据安全解决方案,旨在保护企业核心文件资料的安全。该系统结合了多种先进的技术手段和管理策略,确保企业数据在存储、传输和使用过程中都得到严格的保护。 www.weaem.com 以下是中科数安加密管理系统的主要…