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

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 4498 | 回復(fù): 12
打印 上一主題 下一主題

關(guān)于內(nèi)存映射的一個(gè)奇怪現(xiàn)象 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-09-14 20:54 |只看該作者 |倒序?yàn)g覽
1、Intel平臺(tái)X86下設(shè)備要用一段大內(nèi)存,怕起來(lái)后分不出大內(nèi)存,所以在內(nèi)核初始化時(shí),直接分出相應(yīng)的內(nèi)存,是通過(guò)alloc_bootmem_pages分的。
然后在設(shè)備驅(qū)動(dòng)用,通過(guò)dma_map_single得到dma地址,供設(shè)備使用,結(jié)果發(fā)現(xiàn)這段內(nèi)存設(shè)備無(wú)法使用。

2、換成在設(shè)備驅(qū)動(dòng)中通過(guò)__alloc_free_pages分小段內(nèi),再通過(guò)dma_map_single得到dma地址,供設(shè)備使用,這樣這段內(nèi)存設(shè)備可以正常使用。

3、我又試了第1種方式,將內(nèi)存減少,結(jié)果還是不行。

我比較困惑的是:
  是不是建立映射方式有問(wèn)題,還是alloc_bootmem_pages得到的內(nèi)存無(wú)法供外設(shè)使用。

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2010-09-14 23:39 |只看該作者
高人快快現(xiàn)身!!

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2010-09-15 09:34 |只看該作者
結(jié)果發(fā)現(xiàn)這段內(nèi)存設(shè)備無(wú)法使用。
回復(fù) 1# kgd7558


    無(wú)法使用時(shí)什么意思? 是因?yàn)椋褂胟malloc等slab分配不到大的連續(xù)內(nèi)存,所以才使用alloc_bootmem_pages吧,文件系統(tǒng)中的dentry的cache就是這么分配的。如果分配的內(nèi)存不是在zone_dma,通過(guò)dma_map_single得到的DMA地址也可以使用嗎?

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2010-09-15 09:47 |只看該作者
grub啟動(dòng)參數(shù)可以限制系統(tǒng)使用的內(nèi)存,mem=XXX。

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2010-09-15 10:14 |只看該作者
回復(fù) 4# zyr-linux

在grub中預(yù)留內(nèi)存是可以的。我試過(guò)。不過(guò)不能這么用,因?yàn)閱?dòng)時(shí)要?jiǎng)討B(tài)計(jì)算一下設(shè)備需要的大小,不是固定的。

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2010-09-15 11:33 |只看該作者
本帖最后由 kgd7558 于 2010-09-15 11:41 編輯

回復(fù) 3# kgn28


    可能是你說(shuō)的原因,我再看看代碼。這種方式分配的內(nèi)存,這段內(nèi)存應(yīng)該就不是內(nèi)存管理里的。
    可是我又試了一下,還是在啟動(dòng)時(shí)分配,但不用dma_map_single映射,我直接用virt_to_phys取出物理地址給外設(shè),發(fā)現(xiàn)還是一樣不行。
    我理解是只要給外設(shè)段物理連續(xù)的空間應(yīng)該是可以。不知道是我理解有問(wèn)題還是取物理地址有問(wèn)題?

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2010-09-15 13:21 |只看該作者
請(qǐng)高手支招,

    我直接通過(guò)virt_to_phys拿出物理地址,供外設(shè)使用行不?

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2010-09-15 13:27 |只看該作者
回復(fù) 7# kgd7558


    你是32位還是64位?,32位內(nèi)核,外設(shè)可以使用zone_dma(32M)以外的內(nèi)存?

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2010-09-15 18:18 |只看該作者
回復(fù) 8# kgn28


    64位的系統(tǒng),對(duì)dma內(nèi)存沒(méi)有限制吧?

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2010-09-15 18:25 |只看該作者
回復(fù) 9# kgd7558


    那就應(yīng)該沒(méi)有,64為的zone_dma有4G,你的內(nèi)存沒(méi)這么大吧。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP