在 IA-32 系统中,物理内存最开始的1GB 被称为“低端内存”,1GB 以上的部分称为“高端内存”。先前的Linux 核心版本要求通往存储设备的数据缓存必须放在物理RAM 的低端内存区域,即使是应用程序可以同时使用高端内存和低端内存也存在同样状况。这样,来自低端内存区域数据缓存的I/O 请求可以直接进行内存存取操作。但是,当应用程序发出一个I/O 请求,其中包含位于高端内存的数据缓存时,核心将强制在低端内存中分配一个临时数据缓存,并将位于高端内存的应用程序缓存数据复制到此处,这个数据缓存相当于一个跳转的buffer。例如一些老设备只能访问16M以下的内存,但DMA的目的地址却在16M以上时,就需要在设备能访问16M范围内设置一个buffer作为跳转。这种额外的数据拷贝被称为“bounce buffering”,会明显地降低I/O 密集的数据库应用的性能,因为大量分配的bounce buffers 会占用许多内存,而且bouncebuffer 的复制会增加系统内存总线的负荷。

bounce buffer相关推荐

  1. I/O Performance HOWTO: Avoiding Bounce Buffers

    在 IA-32 系统中,物理内存最开始的1GB 被称为"低端内存",1GB 以上的部分称为"高端内存".先前的Linux 核心版本要求通往存储设备的数据缓存必须 ...

  2. Linux文件系统之文件的读写

    ------------------------------------------ 本文系本站原创,欢迎转载! 转载请注明出处:http://ericxiao.cublog.cn/ -------- ...

  3. 英特尔虚拟化技术发展蓝图

     当前非常热门的Virtualization虚拟化技术的出现和应用其实已经有数十年的历史了,在早期,这个技术主要应用在服务器以及大型主机上面,现在,随着PC性能的不断增长,Virtualizati ...

  4. 大块数据申请及DMA

    在内核中有时需要申请一段大内存,方法之一是可以采取如下方法: 示例: 如何将1M的物理内存作为私人使用(假设物理内存大小为256M): 1. 在内核启动时,通过mem=255M参数,让内核只能使用25 ...

  5. Linux 内核引导选项简介 *********很多常用的受益匪浅

    内核引导选项大体上可以分为两类:一类与设备无关.另一类与设备有关.与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项.比如,如果你想知道可以向 AHA154 ...

  6. Linux Kernel 3.10内核源码分析--块设备层request plug/unplug机制

    一.基本原理 Linux块设备层使用了plug/unplug(蓄流/泄流)的机制来提升IO吞吐量.基本原理为:当IO请求提交时,不知直接提交给底层驱动,而是先将其放入一个队列中(相当于水池),待一定时 ...

  7. 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】PowerPC + Linux2.6.25平台下的SPI驱动架构分析

    PowerPC + Linux2.6.25平台下的SPI驱动架构分析 Sailor_forever  sailing_9806#163.com (本原创文章发表于Sailor_forever 的个人b ...

  8. 系统英伟达gpu驱动卸载_绕过CPU,英伟达让GPU直连存储设备

    英伟达最近发布了一个新的GPUDirect Storage,暂且叫做GPU直连存储,让GPU直接连到NVMe存储设备上.这一方案用到了RDMA设备来把数据从闪存存储转移到GPU本地的内存里,无需经过C ...

  9. 内核引导参数IOMMU与INTEL_IOMMU有何不同?

    <ARM SMMU原理与IOMMU技术("VT-d" DMA.I/O虚拟化.内存虚拟化)> <提升KVM异构虚拟机启动效率:透传(pass-through).DM ...

  10. masonry的约束应该写在哪里_约束选择

    本文用WarpDrive作为例子讨论一下模块设计的思路.这种问题是一线软件设计工程师在设计中天天面对的问题,但这个东西很难告诉你:第一步怎么做,第二步怎么做.所以你也别来找我要什么"in n ...

最新文章

  1. 内涵! 程序员才懂的动图... | 节日出行注意安全~~
  2. JDK 10 的 109 项新特性
  3. python英语-我们用程序整理出了一份Python英语高频词汇表,拿走不谢!
  4. 再来一次的C语言贪吃蛇小游戏(二)
  5. 重学ES6 模板字符串
  6. 关于完善Github repo里文档的规范做法
  7. IC设计前端几本经典书籍
  8. 前端学习(2852):简单秒杀系统学习之鼠标点击方法
  9. setwindowpos怎么改变z序_【情感问答】||朋友圈子小,沉默寡言嘴不甜,情商低,该怎么脱单?...
  10. uchome 数据字典详解
  11. 哪个ei期刊容易过计算机专业,计算机期刊哪个好中_ei期刊计算机_计算机八大核心期刊...
  12. 信息系统项目管理师思维导图
  13. androidのBack返回键,home键,menu键监听使用
  14. 计算机云开头的词语,云开头的四字词语介绍
  15. 荣耀V40用机技巧有哪些
  16. 【讲座】02 写作英文学术论文
  17. 8个免费在线编程游戏网站,让每个人都可以学习编程
  18. 产品经理 - 产品设计方法论业务落地部分_包括流程产品文档方法论需求设计方法论
  19. ROS+UR机械臂系列-1- 虚拟机及ROS安装
  20. 《数据赋能IT团队技术管理实战》与老杨不得不说的故事

热门文章

  1. CF984B Minesweeper
  2. git学习笔记-(6-提交对象)
  3. pvs、pvdisplay、pvscan 查看物理卷信息
  4. springboot图片上传和显示_Jeewx-Boot 1.1 版本发布,基于SpringBoot的开源微信管家系统...
  5. opengl大作业c语言,openGL-计算机图形大作业中出现的几个错误及解决
  6. vagrant box磁盘扩容 亲测有效
  7. cardBattle游戏启动场景设计
  8. 张季跃 201771010139《面向对象程序设计(java)》第八周学习总结
  9. c语言回顾之指针数组和数组指针
  10. 数论二·Eular质数筛法