spinlock 小問題 煩請幫忙c

如果您覺得您的問題不屬於 debian desktop 或是 debian server 版的範圍內,請在這裡發問。

版主: mufa

spinlock 小問題 煩請幫忙c

文章rz600000 » 週六 12月 01, 2007 4:59 am

因為不知道 spin_lock_irqsave 的用法

所以我自己寫了一個小module測試一下

#include <linux/init.h>
#include <linux/module.h>
//#include <linux/list.h>
//#include <linux/vmalloc.h>
#include <linux/spinlock.h>
#include <asm/spinlock.h>
static int __init my_module_init(void)
{

printk("enter spinlock_test.....................\n");
spinlock_t my_lock = SPIN_LOCK_UNLOCKED;
unsigned long flags;
spin_lock_irqsave(&my_lock, flags);
printk("the flags is %lu \n",flags);
spin_unlock_irqrestore (&my_lock, flags);


// spin_lock(&my_lock);
// spin_unlock(&my_lock);
}


static void __exit my_module_exit(void)
{
printk("spinlock_test unload\n");

}


module_init(my_module_init);
module_exit(my_module_exit);

但編譯成功後 我要insmod時會出現一個

insmod: error inserting 'spinlock_test.ko': -636854376 Function not implemented

我在google 找好久也找不到答案 煩請幫忙

還有就是

spin_lock_irq

spin_lock_irqsave 之間的用法差在哪

我知道一個有save cpu 現在的flags 但是為什麼什麼情況下我必須要save flag

而又如何知道我不必要save flag 而使用 spin_lock_irq

兩個問題煩請幫忙 謝謝
rz600000
可愛的小學生
可愛的小學生
 
文章: 44
註冊時間: 週日 10月 22, 2006 10:18 pm

文章jueming » 週六 12月 01, 2007 8:40 am

OS自動跑有硬體中斷,軟體中斷
避免程式楚理資料到一辦
所以
用spin_lock關掉其它程式,但硬體中斷,軟體中斷可執行
用spin_lock_bh關掉其它程式,軟體中斷,但硬體中斷可執行
用spin_lock_irqsave關掉其它程式,軟體中斷,硬體中斷,讓程式獨佔CPU
jueming
可愛的小學生
可愛的小學生
 
文章: 10
註冊時間: 週二 6月 28, 2005 12:52 pm

文章rz600000 » 週六 12月 01, 2007 7:08 pm

那spin_lock_irq 是關掉其他程式 那硬體跟軟體中斷呢??

還有上面那個

insmod: error inserting 'spinlock_test.ko': -636854376 Function not implemented

可以煩請幫我解答嗎
ps. 我查好久 有refernece 的網站嗎 多謝感恩
rz600000
可愛的小學生
可愛的小學生
 
文章: 44
註冊時間: 週日 10月 22, 2006 10:18 pm

文章訪客 » 週一 12月 03, 2007 6:15 am

訪客
 

文章rz600000 » 週二 12月 04, 2007 8:37 am

首先感恩幾位回答問題的各位
但是我試過上面
http://kerneltrap.org/node/3891
這個refernece 的網站 沒有用=.=+

煩請把我上面的code拿去run run 看好嗎

拜託了 謝謝各位~~~~感恩
rz600000
可愛的小學生
可愛的小學生
 
文章: 44
註冊時間: 週日 10月 22, 2006 10:18 pm


回到 debian misc

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客