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

Chinaunix

標(biāo)題: BKL 究竟用在什么時候 vfs里面的readdir 需要嗎 [打印本頁]

作者: viton_xuan    時間: 2006-11-10 14:06
標(biāo)題: BKL 究竟用在什么時候 vfs里面的readdir 需要嗎
有兩個問題求教
一 BKL(Big kernel lock )
看 2.6.9 內(nèi)核
"include/linux/fs.h" 里面對file_operations前有段說明
/*
* NOTE:
* read, write, poll, fsync, readv, writev can be called
*   without the big kernel lock held in all filesystems.
*/
意思是除他提到的幾個外, 其他的有可能要調(diào)用 BKL
而在 "Documentation/filesystems/Locking"里對file_operations的說明
locking rules:
        All except ->poll() may block.
                        BKL
llseek:                 no      (see below)
read:                   no
aio_read:               no
write:                  no
aio_write:              no
readdir:                no
poll:                   no
ioctl:                  yes     (see below)
mmap:                   no
open:                   maybe   (see below)
flush:                  no
release:                no
fsync:                  no      (see below)
aio_fsync:              no
fasync:                 yes     (see below)
lock:                   yes
readv:                  no
writev:                 no
sendfile:               no
sendpage:               no
get_unmapped_area:      no
check_flags:            no
dir_notify:             no

好像是絕大部分都不需要 BKL
而ioctl等幾個是要的,就看了 sys_ioctl, 里面的確有 lock_kernel ()  unlock_kernel()
想問這個BKL究竟用在什么場合。  用來保護什么資源。

二  hook vfs里面的readdir。 之后rmmod, 在磁盤讀寫比較密集時,會oops。 而一般空閑時正常
我是用 find / -name not _exist_file 進行測試
rmmod之后
oops情況見附件

可能是正在有readdir的操作, 而剛好這時把指針替換了。 所以報錯。 需要加什么同步保護機制可以防止這種情況呢? 可是我看sys_read好像也沒檢查什么同步機制啊

oops.JPG (73.91 KB, 下載次數(shù): 44)

oops.JPG





歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2