yŽ‹’®E˜^‰æzLinux‚ ..
[
2ch
|
¥Menu
]
¡ƒRƒsƒyƒ‚[ƒh
ƒXƒŒ‚ð’Êí•\ަ
ƒIƒvƒVƒ‡ƒ“ƒ‚[ƒh
‚±‚̽گÄÞ‚ÌURL
¡€–ÚƒeƒLƒXƒg
437:login:Penguin 09/04/09 20:04:52 ToYDZCEE >>436 ‚¨‚¨‚ÁB‚»‚ê‚Í‚¤‚ꂵ‚¢B ‰´‚à‚â‚肽‚¢‚ȂƎv‚Á‚Ä‚¢‚½‚Æ‚±‚낾B 438:41 09/04/09 20:05:54 bWbMo3bu ’†g‚ðÚ‚µ‚à–¾‚·‚邯A 1. dmactlalloc.patch PT1_DEVICE‚ð‚܂邲‚Ækzalloc‚·‚邯2.6.22–¢–ž‚¾‚Ækzalloc‚Å‚«‚é128KB§ŒÀ‚ð‰z‚¦‚邽‚ßA PT1_DEVICE‚Ìdmactl[DMA_RING_SIZE]‚ð*dmactl[DMA_RING_SIZE]‚É‚µ‚ÄADMA_RING_SIZEŒÂ kzalloc(sizeof(DMA_CONTROL),...)‚·‚邿‚¤‚É‚µ‚½ 2. ringbuf-vmalloc.patch Ѝˆá‚¢‚µ‚Ä‚¢‚é‚©‚à‚µ‚ê‚È‚¢‚¯‚ÇApt1_thread‚Ì250s–Ú‚ ‚½‚è‚Ń`ƒƒƒ“ƒlƒ‹ƒoƒbƒtƒ@‚ª–ž”t‹ß‚‚É‚È‚é‚Æ while(1){ if(channel->size >= (channel->maxsize - 4)){ ... wait_event_timeout(...) ... } if(channel->packet_size >= PACKET_SIZE){ memcpy(&channel->buf[channel->size], channel->packet_buf, PACKET_SIZE); ‚±‚¤‚È‚Á‚Ä‚¢‚邯‚ÇAchannel->size‚̃TƒCƒY‚ªchannel->maxsize - 5‚¾‚Á‚½‚çA channel->size + PACKET_SIZE(=188) = channel->maxsize - 5 + 188 (‚³‚ç‚É+2?)‚Ü‚Åmemcpy ‚³‚ê‚é‚Ì‚ÅAƒoƒbƒtƒ@ƒI[ƒo[ƒtƒ[‚µ‚Ä‚¢‚é‚Í‚¸ ‚à‚¤ˆê‚ÂApt1_read‚ŃAƒvƒŠ‚©‚çƒoƒbƒtƒ@ˆÈ‰º‚̓ǂݞ‚Ý‚ª‚ ‚Á‚½ê‡memmove‚µ‚Ä‚¢‚邯‚ÇA ƒoƒbƒtƒ@‚ª‚Ù‚Æ‚ñ‚Ç–ž”t‚łقñ‚Ì‚¿‚å‚Á‚Æ‚¾‚¯“ǂݞ‚Ý‚ª‚ ‚Á‚½‚ç4MB‹ß‚memmove‚·‚é ‚Í‚¸‚Ȃ̂ÅA‰ü—Ç‚µ‚ÄƒŠƒ“ƒOƒoƒbƒtƒ@‚É‚µ‚Ă݂½ ‚³‚ç‚ÉA_PT1_CHANNEL‚Ìbuf‚Ívmalloc‚Å‚à‘åä•v‚Ȃ͂¸‚¾‚©‚çA128KB§ŒÀ‚Ì‚ ‚ékzalloc(kmalloc) ‚©‚çvmalloc‚É‚µ‚Ä2.6.22–¢–ž‚Å‚à“¯‚¶ƒoƒbƒtƒ@—ÊŠm•Û‚Å‚«‚邿‚¤‚É‚É‚È‚é‚æ‚¤‚É•ÏX ringbuf.patch‚Íringbuf-vmalloc.patch‚©‚çvmalloc‚ð‚Ì‚¼‚¢‚½‚à‚Ì ringbuf2.patch‚Íringbuf.patch‚Ì_PT1_CHANNEL‚Ìbuf‚ð•¡”‚É‚µ‚Ä“¯‚¶—ʂ̃oƒbƒtƒ@‚É‚È‚é‚æ‚¤‚É‚µ‚½‚à‚Ì
ŽŸƒy[ƒW
ÅVƒŒƒX•\ަ
ƒXƒŒƒbƒh‚ÌŒŸõ
—ÞŽ—ƒXƒŒˆê——
˜b‘è‚̃jƒ…[ƒX
‚¨‚Ü‚©‚¹ƒŠƒXƒg
¥ƒIƒvƒVƒ‡ƒ“‚ð•\ަ
ƒŒƒXƒWƒƒƒ“ƒv
mixiƒ`ƒFƒbƒNI
Twitter‚É“Še
ƒIƒvƒVƒ‡ƒ“
‚µ‚¨‚è‚ð‹²‚Þ
ƒXƒŒƒbƒh‚É‘ž
ƒXƒŒƒbƒh‚̈ꗗ
‰É‚‚Ԃµ2ch
5325“ú‘O‚ÉXV/208 KB
’S“–:undef