¡¾LinuxÓ¦ÓÃÓëÇý¶¯¿ª·¢¡¿LinuxÄں˵ÄÅŶÓ×ÔÐýËø
ÅŶÓ×ÔÐýËø(FIFO Ticket Spinlock)ÊÇ Linux ÄÚºË 2.6.25 °æ±¾ÖÐÒýÈëµÄÒ»ÖÖÐÂÐÍ×ÔÐýËø£¬Ëü½â¾öÁË´«Í³×ÔÐýËøÓÉÓÚÎÞÐò¾ºÕùµ¼Öµē¹«Æ½ÐÔ”ÎÊÌâ¡£±¾ÎÄÏêϸ½éÉÜÁËÅŶÓ×ÔÐýËøµÄÉè¼ÆÔÀíºÍ¾ßÌåʵÏÖ£¬²¢Óë ²Ù×÷ϵͳ²ÉÓõÄÀàËÆ¼¼Êõ½øÐбȽϡ£×îºóÌÖÂÛ¿ÉÄܵÄÀ©Õ¹ÅŶÓ×ÔÐýËøµÄһЩÏë·¨¡£
ÒýÑÔ
×ÔÐýËø(Spinlock)ÊÇÒ»ÖÖ Linux ÄÚºËÖй㷺ÔËÓõĵײãͬ²½»úÖÆ¡£×ÔÐýËøÊÇÒ»ÖÖ¹¤×÷ÓÚ¶à´¦ÀíÆ÷»·¾³µÄÌØÊâµÄËø£¬ÔÚµ¥´¦Àí»·¾³ÖÐ×ÔÐýËøµÄ²Ù×÷±»Ì滻Ϊ¿Õ²Ù×÷¡£µ±Ä³¸ö´¦ÀíÆ÷ÉϵÄÄÚºËÖ´ÐÐÏß³ÌÉêÇë×ÔÐýËøÊ±£¬Èç¹ûËø¿ÉÓã¬Ôò»ñµÃËø£¬È»ºóÖ´ÐÐÁÙ½çÇø²Ù×÷£¬×îºóÊÍ·ÅËø£»Èç¹ûËøÒѱ»Õ¼Óã¬Ï̲߳¢²»»áתÈë˯Ãß״̬£¬¶øÊÇæµÈ´ý¸ÃËø£¬Ò»µ©Ëø±»ÊÍ·Å£¬ÔòµÚÒ»¸ö¸ÐÖª´ËÐÅÏ¢µÄÏ߳̽«»ñµÃËø¡£
³¤ÆÚÒÔÀ´£¬ÈËÃÇ×ÜÊǹØ×¢ÓÚ×ÔÐýËøµÄºÍ¸ßЧ£¬¶øºöÊÓÁË×ÔÐýËøµÄ“¹«Æ½”ÐÔ¡£´«Í³µÄ×ÔÐýËø±¾ÖÊÉÏÓÃÒ»¸öÕûÊýÀ´±íʾ£¬ÖµÎª1´ú±íËøÎ´±»Õ¼Óá£ÕâÖÖÎÞÐò¾ºÕùµÄ±¾ÖÊÌØµãµ¼ÖÂÖ´ÐÐÏß³ÌÎÞ·¨±£Ö¤ºÎʱÄÜÈ¡µ½Ëø£¬Ä³Ð©Ï߳̿ÉÄÜÐèÒªµÈ´ýºÜ³¤Ê±¼ä¡£Ëæ×żÆËã»ú´¦ÀíÆ÷¸öÊýµÄ²»¶ÏÔö³¤£¬ÕâÖÖ“²»¹«Æ½”ÎÊÌ⽫»áÈÕÒæÑÏÖØ¡£
ÅŶÓ×ÔÐýËø(FIFO Ticket Spinlock)ÊÇ Linux ÄÚºË 2.6.25 °æ±¾ÒýÈëµÄÒ»ÖÖÐÂÐÍ×ÔÐýËø£¬Ëüͨ¹ý±£´æÖ´ÐÐÏß³ÌÉêÇëËøµÄ˳ÐòÐÅÏ¢½â¾öÁË´«Í³×ÔÐýËøµÄ“²»¹«Æ½”ÎÊÌâ¡£ÅŶÓ×ÔÐýËøµÄ´úÂëÓÉ Linux Äں˿ª·¢Õß Nick Piggin ʵÏÖ£¬Ä¿Ç°Ö»Õë¶Ô x86 Ìåϵ½á¹¹(°üÀ¨ IA32 ºÍ x86_64)£¬ÏàÐźܿì¾Í»á±»ÒÆÖ²µ½ÆäËüƽ̨¡£
´«Í³×ÔÐýËøµÄʵÏÖÓë²»×ã
Linux ÄÚºË×ÔÐýËøµÄµ×²ãÊý¾Ý½á¹¹ raw_spinlock_t ¶¨ÒåÈçÏ£º
typedef struct {
unsigned int slock;
} raw_spinlock_t;
slockËäÈ»±»¶¨ÒåΪÎÞ·ûºÅÕûÊý£¬µ«ÊÇʵ¼ÊÉϱ»µ±×÷ÓзûºÅÕûÊýʹÓá£slockֵΪ1´ú±íËøÎ´±»Õ¼Óã¬ÖµÎª0»ò¸ºÊý´ú±íËø±»Õ¼Óᣳõʼ»¯Ê±slock±»ÖÃΪ1¡£
Ïß³Ìͨ¹ýºê spin_lock ÉêÇë×ÔÐýËø¡£Èç¹û²»¿¼ÂÇÄÚºËÇÀÕ¼£¬Ôò spin_lock µ÷Óà __raw_spin_lock º¯Êý£¬´úÂëÈçÏÂËùʾ£º
static inline void __raw_spin_lock(raw_spinlock_t *lock)
{
asm volatile("\n1:\t"
LOCK_PREFIX " ; decb %0\n\t"
"jns 3f\n"
"2:\t"
"rep;nop\n\t"
"cmpb $0,%0\n\t"
"jle 2b\n\t"
"jmp 1b\n"
"3:\n\t"
: "+m" (lock->
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
ÒòΪ×ölinux³£³£»áÒª×ölinuxϵÄÁ÷Á¿²é¿´£¬ÏÂÃæµÄÈý¸ö·½·¨ÄܺܺõĽâ¾öµ±Ç°Á÷Á¿²é¿´
iftop¹¤¾ß
ÓÃ;: ÓÃÀ´¼´Ê±¼à¿´ÍøÂ·×´Ì¬ºÍ¸÷ipËùʹÓÃµÄÆµ¿í
iftop ¹Ù·½ÍøÕ¾:
http://www.ex-parrot.com/~pdw/iftop/
°²×°iftop£¬£¬±ØÐëÏȰ²×°libpcap
http://www.tcpdump.org/release/
wget http://www.tcpdump.org/release/libpc ......
¸ÐлÔÎÄ×÷Õߣºhttp://blog.csdn.net/thinkerABC/archive/2006/03/11/621817.aspx
¸ÐлתÌûÕßµÄÅŰ棺http://blog.chinaunix.net/u3/101219/showart_2006014.html
ÎÒÃÇͨ³£°ÑһЩ¹«Óú¯Êý
ÖÆ×÷³Éº¯Êý¿â£¬¹©ÆäËü³ÌÐòʹÓá£
º¯Êý¿â·ÖΪ¾²Ì¬¿âºÍ¶¯Ì¬¿âÁ½ÖÖ¡£
¾²Ì¬¿âÔÚ³ÌÐò±àÒëʱ»á±»Á¬½Óµ½Ä¿±ê´úÂëÖУ¬ ......
ÔÚLinuxÖа²×°Èí¼þ¾³£»á³öÏÖȱÉÙÎļþ£¬¾ßÌå±íÏÖÔÚ±àÒëʱ³öÏÖȱÉÙÍ·Îļþ£¬¶øÔÚÓÃRPM°üʱ³öÏÖÒÀÀµ¹ØÏµ£¬¸ø´ó¼Ò·ÖÏíÏÂÎÒÔÚʹÓÃÖг£³öÏÖµÄȱÉÙÎļþ½â¾ö·½°¸
¡¡¡¡1¡¢¹ØÓÚrpmbuild
¡¡¡¡ÔÚʹÓÃ***.src.rpmʱ£¬ÐèÒªÓÃrpmbuildÃüÁÆä±äΪ***.rpm¸ñʽ£¬¶ørpmbuildµÄʹÓÃÊÇÐèÒªÏȰ²×°rpm-build….rpmÕâ¸ö°üµÄ¡£
¡¡¡¡2¡¢±àÒ ......