Linux Kernel API (2.6)
#protect share data
spin_lock/spin_unlock: protect the data during process context(and only at process context), and make sure your code bewteen lock/unlock is fast enough.There may deadlock if the same spin_lock is called at interrupt context.
spin_lock_irq/spin_unlock_irq: call it during interrupt context, make sure the irq is on before calling this function, it will disable irq before accessing share data
spin_lock_irqsave/irqrestore: use at interrupt context, and will save/restort irq registers
The code between spin_lock**/spin_unlock** must not sleep.
The spin_lock** API is defined at include/linux/spinlock_api_up.h for UP architecture.
linux/kernel/spinlock.c is only for SMP.
mutex_lock/mutex_unlock: the similar with down/up, but more efficient
mutex_lock_interruptible: the simlilar with down_interruptiable, can be interruptiable by signal.(like CTRL-C)
the code beween mutex_lock and mutex_unlock can go to sleep
Ïà¹ØÎĵµ£º
È«ÎÄÃèÊöÁË´Ówindowx xpϵͳÖУ¬Í¨¹ýÓ²ÅÌÖдæÔÚµÄubuntuµÄiso°²×°Îļþ£¬ Òýµ¼ÏµÍ³Íê³ÉLinuxµÄ°²×°¡£
ÔÀí£º ÉèÖÃϵͳµÄÆô¶¯·½Ê½£¬Í¨¹ýÐÞ¸Äboot.iniÎļþ£¬ÀûÓÃgrub for dos Òýµ¼ÏµÍ³´ÓisoÆô¶¯£¬´Ó¶øË³ÀûÆô¶¯UbuntuµÄ°²×°¡£
(×¢Ò⣺Ubuntu isoÎļþ¿ÉÒÔ²»Óð²×°£¬Ö±½ÓʹÓá£Ï൱ÓÚLive CDÒ»Ñù£¬ Ö»ÊÇ´¦ÀíµÄ½á¹û² ......
¡¡ÔÚLinuxϵͳÖУ¬Èç¹ûҪʹÓÃÓ²ÅÌ¡¢¹âÅÌ¡¢ÈíÅÌ»òMOÅ̵ȴ洢É豸£¬±ØÐëÏȽøÐйÒ×°£¨Mount£©¡£µ±´æ´¢É豸¹Ò×°Íê³ÉÖ®ºó£¬¾Í¿ÉÒÔ½«Æä×÷Ϊһ¸öĿ¼À´½øÐзÃÎÊÁË¡£¹Ò×°É豸ÐèҪʹÓÃmountÃüÁî¡£Ö´ÐÐÕâÒ»ÃüÁÖÁÉÙÒªÏÈÈ·¶¨ÏÂÁÐÈýÖÖÐÅÏ¢£º
¡¡¡¡1. Òª¹Ò×°£¨Mount£©¶ÔÏóµÄÎļþϵͳÀàÐÍ£»
¡¡¡¡2. Òª¹Ò×°£¨Mount£©¶ÔÏóµÄÉ豸à ......
I learned some experience while Nanjing found 0x03 error. At begining, we don't know why our GSRM(a linux process) hang in a short time 5 seconds sometimes. It didn't handle any message at that time and the interruption is not regularly. So we assume we have Linux OS problem. We did following checks ......
ʵÑé3 LinuxµÄ½ø³Ì¿ØÖÆ
Ò».ʵÑéÄ¿µÄ
ͨ¹ýʵÑéÕÆÎÕLinuxÖнø³Ì¿ØÖƵĻù±¾ÃüÁî¡£
¶þ.ʵÑéÒªÇó
1.Á·Ï°Ê¹ÓÃwho, w, ps,pstree²ì¿´ÏµÍ³Óû§¼°½ø³ÌµÄÐÅÏ¢¡£
2.Á·Ï°Ê¹ÓÃkillÃüÁî³·Ïú½ø³Ì¡£
3.Á·Ï°½ø³Ìǰºǫ́µÄÇл»¡£
Èý¡¢ ʵÑ鱨¸æÒªÇó
1£®   ......
ʵÑé4 Linux³ÌÐò¿ª·¢»ù´¡
Ò»¡¢ÊµÑéÄ¿µÄ£º
1. ¼ÌÐøÊìϤLinuxÖÕ¶ËÃüÁ
2. ¼ÌÐøÑ§Ï°Ê¹ÓÃVi±à¼Æ÷£»
3. ѧϰʹÓÃLinux»·¾³ÏÂCÓïÑÔ³ÌÐòµÄ±àÒë¡£
4. µ÷ÊÔÆ÷GdbµÄʹÓÃ
¶þ¡¢ÊµÑéÒªÇó£º
& ......