µ±Ç°Î»Ö㺠> ϵͳ½Ì³Ì > Win7ϵͳ½Ì³Ì > ÏêϸҳÃæ

64λϵͳװ32λÈí¼þÓÐÓ°ÏìÂðÈçºÎÖÆ×÷ÅÌ°²×°xpϵͳ

·¢²¼Ê±¼ä:2020-06-26 18:43:17 ÎÄÕÂÀ´Ô´:ÓêÁÖľ·çϵͳÏÂÔØ ×÷Õß: ³ÌÐòÔ³VB½ã

 

 

·ÖÎöµ½ÕâÀïÒѾ­ÐγÉÁËÒ»ÌõÏߣ¬__dev_xmit_skbÖжÔÓÚqlenΪ0µÄ״̬ÏÂÖ±½Óµ÷ÓÃsch_direct_xmitÈ¥·¢ËÍ£¬Õâ¸öʱºòsch_direct_xmitÒ²Ö±½Óµ÷ÓÃÁËdev_hard_start_xmitÀ´Ö±½ÓË͵½driver£¬Èç¹û·¢Ëͳɹ¦»á·µ»ØNETDEV_TX_OK£¬Èç¹ûÓÉÓÚһЩԭÒò²úÉúTX_BUSYµÄ»°£¬ÖØн«Õâ¸ö°ürequeuµ½QdiscÖУ¬ÔÙʹÓÃÓµÈûµÄ·½Ê½·¢ËÍ

Qdisc¼ò½é

½ÓÏÂÀ´ÔÙ·ÖÎöÏÂÁíÍâÒ»ÌõÏߣ¬Èç¹û²»Âú×ãÉÏÊöµÄ3¸öÌõ¼þ£¬¼´interfaceÅäÖò»ÔÊÐíÖ±½Ó·¢ËÍ£¬»òÕßÊÇÓз¢ËÍʧ°ÜµÄ°ü»òÕß»ýÀ۵ķâ°üµÈ£¬¾ÍÐèÒª±»enqueueÁË£¬½øÈëQdiscµÄ²Ù×÷£¡

´ÓcodeÖп´£¬Ö±½ÓÊÇq->enqueueÕâÑùµÄ¹³×Óº¯Êýµ÷Óã¬ÄÇôÕâ¸öº¯ÊýÔÚÄÄÀï±»¸³ÖµµÄ£¡

1. win7ϵͳÏÂÔغóÔõôÎļþÔÚÄÄÀïÉèÖà ע²áµÄflow£¬Ä¬ÈÏÊÇûÓÐQdiscµÄ

register_netdevice-->dev_init_scheduler--->dev->qdisc=&noop_qdisc; //ĬÈÏÊÇûÓÐqdisc

¿ÉÒÔ¿´ÏÂCodeÖжÔnoop_qdiscµÄ¹æ¶¨...

 


enqueue/dequeue¹æÔò ²»ÄÜʹÓùþ£¡

 

2.ÔÚ´ò¿ªÉ豸µÄʱºò£¬¸³Óèdefault

ʵ¼ÊÉϸտªÊ¼×¢²áµÄʱºò ¾ÍÊÇÕâÑù £¬²¢Ã»ÓÐÈκοÉÓõĹæÔò£¬µ«ÊÇÔÚÕæÕý´ò¿ªinterfaceµÄʱºò£¬ÏµÍ³»¹ÊǸø¸³ÓèϵͳĬÈϵģ¡

dev_open-->__dev_open-->dev_activate

 



ÎÒÃÇÔÚʹÓõÄnetdevice»ù±¾É϶¼Êǵ¥¶ÓÁеģ¬Ä¬ÈÏÇé¿ö϶¼ÊÇÕâ¸öpfifo_fast_ops¶ÓÁУ¬¾ßÌåQdiscµÄ֪ʶÕâ±ß²»×öÉ£¡

 

 

ÔÚÕâÀïÎÒÃÇ¿ÉÒÔ¿´µ½TCQ_F_CAN_BYPASS£¬Õâ¸öflagÖÃ룬¾Í±íÃ÷Êý¾Ý°ü·¢ËͲ»Ò»¶¨·ÇµÃ×߶ÓÁеĹæÔò£¬¿ÉÒÔby win7ϵͳÅÌÔõôÆô¶¯²»ÁËϵͳÎļþ¼Ð passÕâ¸ö¹æÔò£¬Ö±½Óͨ¹ý·¢Ë͵½driver£¬²»¹ýÔÚÒ»°ãûÓÐ×èÈûµÄͨѶ״¿öÏ£¬ÓÐÁËÕâ¸öflag£¬»ù±¾¾Í¶¼ÊÇÖ±½Ó·¢ËͳöÈ¥ÁË£¡

 

Enqueue

»Ø¹éµ½ÕýÌ⣬¼ÙÉèinterface¾ÍÊÇʹÓõÄpfifo_fast Qdisc¹æÔò£¬ÄÇôÎÒÃǵ÷ÓõÄenqueueÖ±½Ó×ßµ½pfifo_fast_enqueue£¬ÔÚÀïÃæ¾ÍÖ±½Ó·Åµ½¶ÓÁÐÀÈç¹û³¬³öÁË×î´óµÄ»ýÔÜÊýÁ¿¾ÍDROPµôÁË£¬·µ»ØNET_XMIT_DROP

 

__qdisc_run

Ôٻص½__dev_xmit_skb Õâ¸öº¯Êý£¬enqueueÍê±ÏÖ®ºó£¬Èç¹ûÕâ¸öQdisc²»ÊÇRunning״̬£¬¾Í¿ªÆôRunning״̬£¬È»ºóµ÷ÓÃÁËÕâ¸öº¯Êý__qdisc_run(q);

 

ÔÚÆäÖÐÖ÷ÒªÊǵ÷ÓÃÁËqdisc_restartÀ´´Ó¶ÓÁÐÖÐdequeue³ö·â°ü£¬È»ºóÔÙµ÷ÓÃsch_direct_xmitº¯ÊýÈ¥Ö±½Ó·¢ËÍ·â°ü£¬Õâ¸öº¯ÊýÎÒÃÇÉÏÃæÓзÖÎö¹ý£¬¾ÍÊÇÖ±½Ó·¢Ë͸ødriverÁË

È»ºó³öÏÖBUSYµÄ¾Írequeueµ½¶ÓÁÐÖÐ

ÕâЩ֢״»áÖ±½Óµ¼ÖµçÄÔÎÞ·¨Á¬½ÓÓÐÏßÍøÂ磬´Ëʱ£¬¿ÉÒÔÊ×ÏÈÀûÓõçÄÔ×ÔÉíµÄÐÞ¸´¹¦ÄܽøÐÐÐÞ¸´

win7ϵͳ´ò²»¿ªexeÎļþÔõô°ì

¡¡¡¡ºÜ¶àµÄ¶öʱºòÎÒÃǶ¼ÊÇÐèÒªÔÚµçÄÔÖÐÉèÖÃÎÒÃǵÄÒþ˽µÄ°²È«µÄ£¬ÓêÁÖľ·çwin10´¿¾»°æ64λÆì½¢°æ£¬Æäʵ½ûÓÿÉÒÔ°ïÖúÎÒÃǵçÄÔ²»»á±»ºÚ¿Í¿ØÖƵÄÇé¿ö£¬Ò»ÆðÀ´¿´¿´±£»¤µçÄÔ°²È«ÉèÖÃÉãÏñÍ·½ûֹʹÓõIJÙ×÷²½ÖèÏ£Íû¶ÔÄãÓкܶàµÄ°ïÖú

µçÄÔ¿ª»ú£¬Á¬Windowsͼ±ê¶¼±äºìÁË£¬ÓêÁÖľ·çuÅÌװϵͳ£¬µ«ÊÇ¿ÉÒÔÕý³£½øÈëϵͳ£¬¾¿¾¹Ì¨Ê½µçÄÔ Win7 ¿ª»úºìÆÁÔõô°ì?

´ÓÍøÉÏ¿´µÄ´ð°¸¶¼ÊÇǧƪһÂɵģºÐ£×¼ÑÕÉ«!

È»¶ø£¬Äã»á·¢ÏÖ£¬¾ÍËãУ׼ºÃÁË£¬ÖØÆôºó»¹Êǻָ´ÁËÒì³£ºìÉ«ÔÚϵͳÕâÒ»À¸£¬ÎÒÃÇ¿ÉÒÔ¿´µ½ÏµÍ³ÖÆÔìÉ̺ÍϵͳÐͺţ¬ÎÒÃÇ¿´µ½ÎÒÕâ¸öµçÄÔµÄÐͺžÍÊÇÐñÈÕc510m£¬µã»÷Í˳ö¼´¿É£¬ÏÂÃæÊÇʹÓÃÈí¼þ²é¿´ÏµÍ³Ðͺŵķ½·¨


2¡¢×Ðϸ¼ì²é·¢Éú¹ÊÕϵÄÄڴ棬ÓêÁÖľ·çwin7Æì½¢°æ64λÔõô°²×°½Ì³Ì£¬·¢ÏÖÉÏÃæÓÐÒ»´¦²»ÊǺÜÃ÷ÏԵĻ®ÉË

Îļþ¼Ðͼ±êÐÞ¸Ä

Êó±êÓÒ¼üµã»÷ÐèÒªÐ޸ĵÄÎļþ¼Ð£¬´ò¿ªÊôÐÔ£¬µã»÷×Ô¶¨ÒåÖеĸü¸Äͼ±ê

ͬʱ»¹¿ÉÒÔ´´½¨¶à¸öÕÊ»§¹©ÆäËûÓû§Ê¹Óã¬Ò²Ðí´ó¶àÊýµçÄÔÓû§²»Ì«ÖªÊ¶Ôõôȥ¸ø²Ù×÷ϵͳµÇ½ÕÊ»§ÃÜÂëÉèÖÃuÅ̽øÈëboot×°win7ϵͳ3. µ¥»÷ÒÉÄѽâ´ð£¬¸ü¸ÄÉèÖ㬰ÑÖ¸Õë´ÓÍêÈ«Íϵ½ÎÞ¡£

ºÜ¶àÓû§ÃǶ¼²»ÖªµÀ´ÅÅÌÔõôÎÞËð·ÖÇø£¬½ñÌìС±à¾ÍÒÔwin8ϵͳΪÀý£¬Îª´ó¼Ò·ÖÏí´ÅÅÌÎÞËð·ÖÇøµÄ·½·¨Ïà¹ØÔĶÁ£ºCPU¹ÊÕÏʵÀý·ÖÎö

¡¡¡¡ÎļþË𻵵ÄÇé¿öÎÒÃÇÊÇ¿ÉÒÔÊÔÊÔ±¾´ÎµÄ½Ì³ÌÀ´½â¾öµÄ£¬ÕâÊÇÎÞ·¨²Ù×÷ÃüÁîÀ´ÐÞ¸´µçÄÔµÄÇé¿ö±¾´ÎµÄ·½·¨²»ÐèÒªÃüÁî¾Í¿ÉÒÔ´¦Àí£¬´¦Àígrub.confÎļþÔÚLinuxϵͳ³ö´íÎļþË𻵶ªÊ§µÄ½Ì³Ì¡£

±¾ÎÄÊôÓÚÔ­´´ÎÄÕ£¬ÈçÈôתÔØ£¬Çë×¢Ã÷À´Ô´£ºÓêÁÖľ·çϵͳÏÂÔØ¡£ÎÒÃDZ¾ÎÄ»°Ìâ¾ÍÊÇ£º64λϵͳװ32λÈí¼þÓÐÓ°ÏìÂðÈçºÎÖÆ×÷ÅÌ°²×°xpϵͳ£¬ÒÔÉϵÄÈ«²¿ÄÚÈݲ»´ú±í±¾Õ¾µãÆÀ,½ö´Ë²Î¿¼£¬ÏëÒªÁ˽â¸ü¶à£¬Çë¹Ø×¢±¾ÎÄ×÷Õß:³ÌÐòÔ³VB½ã,Ó¦Óо¡ÓС£

64λϵͳװ32λÈí¼þÓÐÓ°ÏìÂðÈçºÎÖÆ×÷ÅÌÏà¹ØÎÄÕÂ
·µ»ØÓêÁÖľ·çϵͳÏÂÔØÊ×Ò³
60