LinuxÍøÂçÇý¶¯³ÌÐò±àд(Èý)
¡¡2.4 ³£ÓõÄϵͳ֧³Ö
¡¡¡¡2.4.1 ÄÚ´æÉêÇëºÍÊÍ·Å
¡¡¡¡include/linux/kernel.hÀïÉùÃ÷ÁËkmalloc()ºÍkfree()¡£ÓÃÓÚÔÚÄÚºËģʽÏÂÉêÇëºÍÊÍ·ÅÄÚ´æ¡£
¡¡¡¡void *kmalloc(unsigned int len,int priority);
¡¡¡¡void kfree(void *__ptr);
¡¡¡¡ÓëÓû§Ä£Ê½ÏµÄmalloc()²»Í¬£¬kmalloc()ÉêÇë¿Õ¼äÓдóСÏÞÖÆ¡£³¤¶ÈÊÇ2µÄÕû´Î·½¡£¿ÉÒÔÉêÇëµÄ×î´ó³¤¶ÈÒ²ÓÐÏÞÖÆ¡£ÁíÍâkmalloc()ÓÐpriority²ÎÊý£¬Í¨³£Ê¹ÓÃʱ¿ÉÒÔΪGFP_KERNEL£¬Èç¹ûÔÚÖжÏÀïµ÷ÓÃÓÃGFP_ATOMIC²ÎÊý£¬ÒòΪʹÓÃGFP_KERNELÔòµ÷ÓÃÕß¿ÉÄܽøÈësleep״̬£¬ÔÚ´¦ÀíÖжÏʱÊDz»ÔÊÐíµÄ¡£
¡¡¡¡kfree()ÊͷŵÄÄÚ´æ±ØÐëÊÇkmalloc()ÉêÇëµÄ¡£Èç¹ûÖªµÀÄÚ´æµÄ´óС£¬Ò²¿ÉÒÔÓÃkfree_s()ÊÍ·Å¡£
¡¡¡¡2.4.2 request_irq()¡¢free_irq()
¡¡¡¡ÕâÊÇÇý¶¯³ÌÐòÉêÇëÖжϺÍÊÍ·ÅÖжϵĵ÷Óá£ÔÚinclude/linux/sched.hÀïÉùÃ÷¡£request_irq()µ÷Óõ͍Ò壺
¡¡¡¡int request_irq(unsigned int irq,
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ void (*handler)(int irq, void *dev_id, struct pt_regs *regs),
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ unsigned long irqflags,
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ const char * devname,
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ void *dev_id);
¡¡¡¡irqÊÇÒªÉêÇëµÄÓ²¼þÖжϺš£ÔÚIntelƽ̨£¬·¶Î§0--15¡£handlerÊÇÏòϵͳµÇ¼ÇµÄÖжϴ¦Àíº¯Êý¡£ÕâÊÇÒ»¸ö»Øµ÷º¯Êý£¬ÖжϷ¢Éúʱ£¬ÏµÍ³µ÷ÓÃÕâ¸öº¯Êý£¬´«ÈëµÄ²ÎÊý°üÀ¨Ó²¼þÖжϺţ¬device id£¬¼Ä´æÆ÷Öµ¡£dev_id¾ÍÊÇÏÂÃæµÄrequest_irqʱ´«µÝ¸øÏµÍ³µÄ²ÎÊýdev_id¡£irqflagsÊÇÖжϴ¦ÀíµÄһЩÊôÐÔ¡£±È½ÏÖØÒªµÄÓÐSA_INTERRUPT£¬±êÃ÷Öжϴ¦Àí³ÌÐòÊÇ¿ìËÙ´¦Àí³ÌÐò(ÉèÖÃSA_INTERRUPT)»¹ÊÇÂýËÙ´¦Àí³ÌÐò(²»ÉèÖÃSA_INTERRUPT)¡£¿ìËÙ´¦Àí³ÌÐò±»µ÷ÓÃʱÆÁ±ÎËùÓÐÖжϡ£ÂýËÙ´¦Àí³ÌÐò²»ÆÁ±Î¡£»¹ÓÐÒ»¸öSA_SHIRQÊôÐÔ£¬ÉèÖÃÁËÒÔºóÔËÐжà¸öÉ豸¹²ÏíÖжϡ£dev_idÔÚÖжϹ²Ïíʱ»áÓõ½¡£Ò»°ãÉèÖÃΪÕâ¸öÉ豸µÄdevice½á¹¹±¾Éí»òÕßNULL¡£Öжϴ¦Àí³ÌÐò¿ÉÒÔÓÃdev_idÕÒµ½ÏàÓ¦µÄ¿ØÖÆÕâ¸öÖжϵÄÉ豸£¬»òÕßÓÃrq2dev_mapÕÒµ½Öж϶ÔÓ¦µÄÉ豸¡£¡¡
¡¡¡¡void free_irq(unsigned int irq,void *dev_id);
¡¡¡¡2.4.3 ʱÖÓ
¡¡¡¡Ê±ÖӵĴ¦ÀíÀàËÆÖжϣ¬Ò²ÊǵǼÇÒ»¸öʱ¼ä´¦Àíº¯Êý£¬ÔÚÔ¤¶¨µÄʱ¼ä¹ýºó£¬ÏµÍ³Ê±ÖӵĴ¦ÀíÀàËÆÖжϣ¬Ò²ÊǵǼÇÒ»¸öʱ¼ä´¦Àíº¯Êý£¬ÔÚÔ¤¶¨µÄʱ¼ä¹ýº
Ïà¹ØÎĵµ£º
½ñÌìÔÚ°²×°oracle¹ý³ÌÖУ¬²ÎÕÕÍøÉÏÏÂÔØµÄ×ÊÁÏÔÚRHEL5Éϰ²×°oracle£¬Õû¸ö¹ý³Ì±È½Ï˳Àû£¬µ«ÊÇÈ´Óöµ½ÁËÒ»µãÎÊÌ⣬ËäÈ»²»ÊǺÜÑÏÖØ£¬µ«ÊDZϾ¹ÊǸöÎÊÌâÐÄÀﻹÊDz»ºÜÊæ·þ£¬ÔÚ´ËÇë·¹ýµÄ½â¾ö¡£
Ö÷ÒªÎÊÌâÊÇoracleÓû§µÄ»·¾³±äÁ¿£¬ÔÚ°²×°oracle¹ý³ÌÖУ¬ÓÐÒ»²½ÊÇÐèÒªÒÔoracleÓû§µÇ¼£¬È»ºó±à¼ ......
µ¼º½£º[Ê×Ò³]>[linuxÄÚºËѧϰ±Ê¼Ç]
Ŀ¼
[Òþ²Ø]
1 ×Ö·ûÉ豸Çý¶¯ÖªÊ¶½²½â
1.1 ÃèÊö×Ö·ûÉ豸»ù±¾½á¹¹Ìå
1.2 ×÷ÓÃ
1.3 ¸÷×Ö¶ÎÏê½â
1.4 ²Ù×÷
1.5 ʵÀý
1.5.1 ´úÂë
1.5.2 ÔËÐÐ
[±à¼]×Ö·ûÉ豸Çý¶¯ÖªÊ¶½²½â
×÷Õߣº[Å£ÌÎ]
[±à¼]ÃèÊö×Ö·ûÉ豸»ù±¾½á¹¹Ìå
/linux/ ......
×î½üÔÚ×ösamsung
s3c2416
ÔÚlinuxϵÄspiÇý¶¯³ÌÐò£¬²âÊÔÁËÏÂsamsung·¢²¼µÄspiµÄÄÚºËÔ´´úÂ룬ÎÞÂÛÊDzÉÓÃdma»òÕß·Çdmaģʽ¶¼ÎÞ·¨¹¤×÷¡£ÔĶÁ¸ÃÇý¶¯´úÂ룬·¢ÏÖ
ÕâÂëÓ¦¸ÃÊÇÒ»¸öδÍê³ÉµÄ°æ±¾£¬´æÔںܶàµÄbug¡£ÓÚÊÇÔÚÕâ¸ö°æ±¾µÄ»ù´¡ÉϽøÐÐÐ޸ģ¬ÖØÐ´Ò»¸ö¿ÉÓõġ¢Ö§³Öȫ˫¹¤µÄͨѶ ......
ÈçºÎÓÃÓï¾äɱËÀËùÓÐoracle´ø(LOCAL=NO)µÄ½ø³Ì£¿
·½·¨Ò»£º(½øÈëoracleÓû§ÏÂ)
$ a=`ps -ef |grep oracle$ORACLE_SID|grep LOCAL=NO |awk '{print $2}'`
»òÕß (È¥³ýµ±Ç°grep½ø³Ì)
$ a=`ps -ef |grep oracle$ORACLE_SID|grep LOCAL=NO |grep -v grep|awk '{print $2}'`
$ echo $a
$ kill -9 $a
·½·¨¶þ£º£¨Ö±½Óɱ£©
$ p ......
½ø³Ìµ÷¶ÈÕþ²ß¾ÍÊǵ÷¶ÈϵͳÖÖÄÄÒ»¸ö½ø³ÌÀ´CPUÔËÐС£ÕâÖÖµ÷¶È·Ö2²ã¿¼ÂÇ¡£
µÚÒ»²ã£¬½ø³Ì״̬Õâ¸öÊÇ×îÓÅÏÈ¿¼Âǵģ¬Ò²¾ÍÊÇ˵ÓÅÏȼ¶×î¸ßµÄ¡£ÔÚlinuxÖÐÖ»ÓоÍÐ÷̬µÄ½ø³Ì²ÅÓпÉÄܻᱻµ÷¶ÈÑ¡ÖÐÈ»ºóÕ¼ÓÐCPU£¬ÆäËü״̬µÄ½ø³Ì²»¿ÉÄÜÕ¼Óеĵ½CPU¡£ÏÂÃæÊÇlinuxÖнø³ÌµÄ״̬
TASK_RUNNING:¾ÍÐ÷״̬£¬µÃµ½CPU¾Í¿ÉÒÔÔËÐС£
TASK_INTERRU ......