作者homer00 (宅爸一枚)
看板Linux
標題[問題] dma cache wback 疑問
時間Fri Aug 28 11:59:36 2015
大家好,
小弟最近在研究cache write back的機制, 想要改善code的performance時,
看到說既有driver會call:
_dma_cache_wback_inv
而目前使用CPU是MIPS 24K
看到它的定義是:
_dma_cache_wback_inv = r4k_dma_cache_wback_inv
_dma_cache_wback = r4k_dma_cache_wback_inv
_dma_cache_inv = r4k_dma_cache_inv
而
r4k_dma_cache_wback_inv會再呼叫
bc_wback_inv(addr, size)
再往下查
bc_wback_inv的定義是
bcops->bc_wback_inv(page, size)
bcops裡面又定義:
static struct bcache_ops
mips_sc_ops = {
.bc_enable = mips_sc_enable,
.bc_disable = mips_sc_disable,
.bc_wback_inv = mips_sc_wback_inv,
.bc_inv = mips_sc_inv
}
繼續往下查
static void
mips_sc_wback_inv(unsigned long addr, unsigned long size)
{
blast_scache_range(addr, addr + size);
}
查到這邊就斷了QAQ... linux cross reference也沒有繼續描述說這個blast是做啥的,
google也找不太到資訊,
因為想往下了解硬體廚何處理cache的行為,
想請問有大大能幫忙解惑這個blast會驅使硬體(CPU/cache)怎麼動作嗎...?
感謝看倌 m(_ _)m
(若此文有違板歸, 也請麻煩告知我該去哪個版問這個問題, 感謝~!!)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.205.229
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1440734379.A.044.html
※ 編輯: homer00 (60.250.205.229), 08/28/2015 12:00:19
推 yvb: __BUILD_BLAST_CACHE_RANGE(pfx, desc, hitop, prot) 08/28 14:20
→ yvb: 對應參數 (s, scache, Hit_Writeback_Inv_SD, ) 那一項. 08/28 14:21
→ homer00: 感謝!! 08/31 15:03