当前位置:  技术问答>linux和unix

关于kernel和用户进程内存映射,进行读写问题

    来源: 互联网  发布时间:2016-09-13

    本文导语:  driver将kernel的一块内存(ring buffer)映射到user空间,用户进程mmap后就能访问映射后内存。 driver只做写操作,用户进程只做读操作。 1.这中情况要加互斥保护? 2.ring buffer中的size(有效数据个数(能否省略? 3.不能省略...

driver将kernel的一块内存(ring buffer)映射到user空间,用户进程mmap后就能访问映射后内存。
driver只做写操作,用户进程只做读操作。
1.这中情况要加互斥保护?
2.ring buffer中的size(有效数据个数(能否省略?
3.不能省略的话怎么让driver和用户进程都能访问size?关于size的互斥保护怎么做?

呵呵,问题挺多,不好意思

|
1、肯定要加互斥保护,要考虑到多进程/多线程访问的情况。
2/3、你用的是什么函数申请的内存?

|
你是做音视频编解码吧?这么做效率很低的,经过了两次拷贝,而且vmalloc总在分配和释放也不好。
你可以开辟出一块物理内存不由linux管理(比如留出高端的一块内存,mem=原始大小-128M),然后在驱动里把这块物理内存ioremap一下,这样内核态的DMA可以访问,然后再把这块物理内存mmap到用户空间,用户直接读。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • kernel 进程创建的实现,初级问题,大家指教
  • 进程,线性地址(虚拟地址),kernel之间的关系
  • 利用kernel提供的接口打印进程号(pid)
  • java命名空间java.awt.image类kernel的类成员方法: kernel定义及介绍
  • lock_kernel unlock_kernel编译不通过
  • java命名空间java.awt.image类kernel的类成员方法: getheight定义及介绍
  • linux-3ES-13.9.5安装oracle10g时更改/etc/sysctl.conf没有kernel.shmmax,kernel.shmmni
  • java命名空间java.awt.image类kernel的类成员方法: getwidth定义及介绍
  • ▲求助:kernel panic:No init found.try passing init=option to kernel.
  • java命名空间java.awt.image类kernel的类成员方法: getkerneldata定义及介绍
  • kernel too old , kernel panic原因
  • java命名空间java.awt.image类kernel的类成员方法: getyorigin定义及介绍
  • 区分uboot和kernel的宏
  • java命名空间java.awt.image类kernel的类成员方法: clone定义及介绍
  • kernel升级问题,初学,大家指教。
  • Linux Kernel 'sctp_v6_xmit()'函数信息泄露漏洞
  • 关于www.kernel.org结构
  • CentOS 6.5 下载地址及如何升级内核(kernel)版本到 3.10.28
  • __kernel_vsyscall 是什么?
  • 急!怎么没有/usr/src/kernel目录啊?
  • Uncompressing Linux... done, booting the kernel
  • Come in please! About the kernel.3X
  • 一个Kernel panic的问题怎么解决?
  • [救命]安装Ubuntu 时的Kernel Panic - not syncing 错误~


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3