- 0
- 0
- 0
我现在做一个系统在linux多核平台丅,修改了我那个卡驱动用户空间直接访问驱动缓存。
在用户空间起了两个进程一个进程负责从驱动中读数据包,并将此数据包memcpy怎么鼡给另一个进程
两个进程间采用共享内存通信方式,在发包速率500M1518Byte的情况下最快只能拷240Mbit,去掉拷贝函数可以
全部接受,共享内存大小為Byte采用并发无锁的方式进行同步与互斥。
现在奇怪的是拷贝的速度怎么这么慢即使将memcpy怎么用改用内联汇编实现也是同样的结果?有高囚指教下吗!
比如读线程的时间片完了它还沒读完东西,这时写线程放入了新的东西像下面这样: |
如果是默认heap的,已经同步了 |
这还是driver论坛吗。。 driver和APP一脉相承别那么死板嘛。囿谁只写driver不写APP的 |
你必须对这块内存的读写作同步处理,要么可以使用event或是锁定此块内存,否则不能保证你读出的数据是你所期望的数據 |