亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1992 | 回復(fù): 9
打印 上一主題 下一主題

[內(nèi)存管理] 如何將一塊指定用戶空間memory寫回內(nèi)存? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-03-13 17:43 |只看該作者 |倒序瀏覽
輸入是一個用戶空間地址,及memory size.準(zhǔn)備將這片memory做DMA, 有寫入和讀出兩種情況。
因此在DMA前,想將memory內(nèi)容先寫回并置無效。
linux 有一個函數(shù) dma_cache_wback_inv 可以按page來實現(xiàn)。
  
本人在這塊很菜,求實現(xiàn)方法;蛘遧inux有其他函數(shù)可以直接實現(xiàn)的嗎?
  
先謝了。

論壇徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辭舊歲徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亞洲杯之卡塔爾
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08處女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技術(shù)圖書徽章
日期:2014-03-25 09:00:29
2 [報告]
發(fā)表于 2014-03-14 09:47 |只看該作者
用戶空間估計比較麻煩~~,能否再詳細描述下需求,為何要這樣~

論壇徽章:
0
3 [報告]
發(fā)表于 2014-03-14 10:47 |只看該作者
回復(fù) 2# humjb_1983


    呵呵,這種怪異一般都是需求不夠明確。
DMA本身有方向,不會存在DMA完之后還需要再寫入讀出的情況。
它可能需要的是mmap()出兩片內(nèi)存,做兩個dma通道,或者雙緩沖來完成所需的功能。

論壇徽章:
0
4 [報告]
發(fā)表于 2014-03-14 11:14 |只看該作者
場景是這樣的,有個ioctl接口提供data transfer 功能。由用戶空間提供一塊memory,有時需要將memory的內(nèi)容DMA到一個device里,有時需要將device的內(nèi)容DMA到這塊memory里。我遇到的問題是,現(xiàn)在device的內(nèi)容DMA到這片memory里的數(shù)據(jù)不一致。

在查代碼時,發(fā)現(xiàn)code 是下面的寫法

dma_cache_wback_inv(用戶空間地址,。。)
DMA data in/out

上網(wǎng)一查,發(fā)現(xiàn)這個寫法不對。但目前也沒找到正確的寫法

論壇徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辭舊歲徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亞洲杯之卡塔爾
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08處女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技術(shù)圖書徽章
日期:2014-03-25 09:00:29
5 [報告]
發(fā)表于 2014-03-14 12:30 |只看該作者
dma_cache_wback_inv(用戶空間地址,。。)
這里應(yīng)該是物理地址吧?
搜了下內(nèi)核代碼,發(fā)現(xiàn)x86中很少用到這個的,mips用的多,感覺不一定與此相關(guān)。

論壇徽章:
0
6 [報告]
發(fā)表于 2014-03-14 12:56 |只看該作者
是啊,那個參數(shù)本來應(yīng)該是物理地址。這個問題是在mips芯片上碰到的。

論壇徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辭舊歲徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亞洲杯之卡塔爾
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08處女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技術(shù)圖書徽章
日期:2014-03-25 09:00:29
7 [報告]
發(fā)表于 2014-03-14 13:48 |只看該作者
那具體問題是啥?好像沒看明白~

論壇徽章:
0
8 [報告]
發(fā)表于 2014-03-14 14:18 |只看該作者
現(xiàn)在知道用戶空間地址,以及memory size。但怎樣將這片memory寫回并置無效?
前面說了 dma_cache_wback_inv(用戶空間地址。。)這樣的調(diào)用是錯的 ?
那正確的應(yīng)該怎樣寫呢?

論壇徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辭舊歲徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亞洲杯之卡塔爾
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08處女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技術(shù)圖書徽章
日期:2014-03-25 09:00:29
9 [報告]
發(fā)表于 2014-03-14 15:33 |只看該作者
不好意思,之前理解錯了,
dma_cache_wback_inv()傳入的應(yīng)該是虛擬地址,這里傳物理地址可能不對,你試試呢~
另外,x86架構(gòu)中該函數(shù)的實現(xiàn)中根本就沒有用到這個地址:
  1. static inline void flush_write_buffers(void)
  2. {
  3.         __asm__ __volatile__ ("lock; addl $0,0(%%esp)": : :"memory");
  4. }

  5. #define dma_cache_inv(_start,_size)                flush_write_buffers()
  6. #define dma_cache_wback(_start,_size)                flush_write_buffers()
  7. #define dma_cache_wback_inv(_start,_size)        flush_write_buffers()
復(fù)制代碼
x86中使用很少,mips代碼不懂,各個平臺實現(xiàn)也不一樣,建議你研究下代碼。

論壇徽章:
0
10 [報告]
發(fā)表于 2014-03-14 15:37 |只看該作者
回復(fù) 4# xhx321


    硬件做DMA要求物理地址連續(xù)。由用戶空間申請到的內(nèi)存經(jīng)常是不連續(xù)的。
更常見的做法是用戶空間通過mmap向設(shè)備申請一塊可以做dma的內(nèi)存。
用戶空間控制dma的觸發(fā)。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP