this is the oprofile result, when I test, the top cpu is 100%: samples % app name symbol name 297294 53.8607 vmlinux r4k_wait 22324 4.0444 vmlinux half_md4_transform 19912 3.6075 ath_hal.ko ar5416GetPendingInterrupts 18076 3.2748 ath_hal.ko ar5416SetInterrupts 8409 1.5235 ath_hal.ko ar5416GetTsf64 7193 1.3032 vmlinux do_ade 6897 1.2495 vmlinux handle_adel_int 6692 1.2124 ath_hal.ko ath_hal_reg_write 6608 1.1972 ath_dev.ko ath_rx_tasklet 6065 1.0988 merakiclick.ko IPFilter::push(int, Packet*) 5334 0.9664 merakiclick.ko SR2GatewaySelector::best_ gateway() 5219 0.9455 ath_hal.ko ar5416ProcTxDesc 4274 0.7743 ath_pci.ko ath_tx_startraw 3271 0.5926 vmlinux __local_bh_enable 2861 0.5183 ath_dev.ko ath_check_uapsdtriggers 2746 0.4975 ath_hal.ko ar5416Set11nRateScenario 2594 0.4700 ath_dev.ko ath_tx_complete_buf 2570 0.4656 vmlinux r4k_dma_cache_inv 2553 0.4625 merakiclick.ko SR2Forwarder::encap(Packet*, Vector<IPAddress>, int) 2459 0.4455 merakiclick.ko WifiEncap::simple_action(Packet*) 2392 0.4334 merakiclick.ko packet_notifier_hook
2009/12/7 Yongheng Qi <[email protected]> > Dear everyone: > > I don't success use oprofile on my system. but I try enable the linux > profile: this is the high cpu loading profile info: > > r...@openwrt:/etc# readprofile -m System.map | sort -nr | head -10 > 36396 *unknown* > 22185 total 0.0121 > 5202 __copy_user 7.4314 > 1847 do_ade 2.3559 > 1716 r4k_wait 143.0000 > 1590 handle_adel_int 28.3929 > 799 r4k_dma_cache_wback_inv 4.5398 > 756 __do_softirq 3.6346 > 705 do_dsemulret 3.8315 > 640 ag71xx_poll 0.6324 > > I think the "unknown" is click mode. accordint to before testing, click > performece no problem. now use cpu more is r4k_wait and handle_adel_int . > > I don't know who use it. > > 2009/12/1 Yongheng Qi <[email protected]> > > By the way, I used kernel version is 2.6.26.5 >> >> On 12/1/09, Yongheng Qi <[email protected]> wrote: >> > Dear Cliff and friends: >> > >> > Today, I test the click efficiency without driver, it's work very well. >> > your >> > point is right, thanks. >> > >> > but both ethernet and wireless lead to cpu high loading. so I trace the >> > element ToDevice code: >> > >> > ret = _dev->hard_start_xmit(skb1, _dev); >> > >> > this line send packet throuth driver. if don't excute this line. the cpu >> > load is normal. if excute this line, >> > >> > only ToDevice(eth0) will have high cpu loading. I test ToDevice(ath0) >> too, >> > the issue like ToDevice(eth0) too. >> > >> > I don't know click ToDevice use hard_start_xmit. why have the strange >> > problem? the hard_start_xmit in the kernel is >> > >> > diffient with dev_queue_xmit. I guess in the ToDevice use interrupt have >> > some conflict with kernel. >> > >> > how to solve the problem? >> > >> > Thanks >> > >> > >> > 2009/11/30 Cliff Frey <[email protected]> >> > >> >> IRQ time is likely time spent in interrupt handlers... most likely your >> >> drivers (ethernet and wireless) both install interrupt handlers. This >> is >> >> _not_ time spent in click. This is time spent in your drivers. >> >> >> >> Softirq time is generally time spent in tasklets, either explicit >> >> tasklets >> >> used by drivers or by rx_poll functions. Again, this is time spent in >> >> your >> >> driver, not in click. >> >> >> >> If you want to choose what to optimize, then you must do what I >> suggested >> >> in the first email, and measure the performance of each part of your >> >> system >> >> individually. You could replace FromDevice with InfiniteSource and >> >> ToDevice >> >> with (Counter -> Discard) and see what byte/packet rate click can >> achieve >> >> on >> >> its own. >> >> >> >> You could run >> >> >> >> InfiniteSource -> Counter -> ToDevice >> >> >> >> And see how many packets/bytes per second your drivers are capable of >> >> sending. >> >> >> >> Either way, I feel like your measurements indicate that it is not a >> click >> >> performance problem, but in fact a driver performance problem. >> >> >> >> Good luck, >> >> >> >> Cliff >> >> >> >> >> >> On Sun, Nov 29, 2009 at 5:01 AM, Yongheng Qi <[email protected]> >> wrote: >> >> >> >>> Dear Cliff >> >>> >> >>> My system use FromDevice get packet from wireless and ethernet driver. >> >>> you >> >>> mean FromDeivce used interrupt is irq but not the softirq? >> >>> >> >>> I can't distinguish between irq and softirq at driver , FromDevice and >> >>> ToDevice. >> >>> >> >>> 2009/11/29 Cliff Frey <[email protected]> >> >>> >> >>>> 56% softirq implies to me that 56% of the time is spent in the packet >> >>>> receive functions in your ethernet or wireless driver.... as click >> >>>> should >> >>>> not be running at softirq context. 15% irq means that 15% of the >> time >> >>>> is >> >>>> actually in interrupt handlers, again that is likely your wireless >> >>>> and/or >> >>>> ethernet drivers. So I don't think that your performance problem is >> in >> >>>> kclick itself. Probably you could get 10% better performance if you >> >>>> were >> >>>> able to get rid of many many click elements in your data path... but >> I >> >>>> really think that you should be looking at your ethernet/wireless >> >>>> drivers >> >>>> instead. >> >>>> >> >>>> >> >>>> As I said in my earlier email, you need to break down your problem >> into >> >>>> smaller pieces before you can blame kclick for the performance. You >> >>>> could >> >>>> also enable CONFIG_PROFILE in linux, which could give you insight >> into >> >>>> how >> >>>> much time your drivers are spending on what lines of code... but it >> is >> >>>> a >> >>>> fair amount of work. In addition, with some work you can get linux >> to >> >>>> also >> >>>> profile your kernel modules... for instance: >> >>>> http://lkml.indiana.edu/hypermail/linux/kernel/0405.1/1115.html >> >>>> >> >>>> Good luck. >> >>>> >> >>>> Cliff >> >>>> >> >>>> >> >>>> On Sat, Nov 28, 2009 at 12:50 AM, Yongheng Qi <[email protected]> >> >>>> wrote: >> >>>> >> >>>>> I tested the NotifierQueue, the instance is the same as before. >> >>>>> >> >>>>> anyone have ideas? Thanks. >> >>>>> >> >>>>> This is the top result: >> >>>>> >> >>>>> Mem: 20540K used, 106700K free, 0K shrd, 0K buff, 6656K cached >> >>>>> CPU: 0% usr 27% sys 0% nice 0% idle 0% io 15% irq 56% >> >>>>> softirq >> >>>>> Load average: 0.95 0.88 0.50 >> >>>>> PID PPID USER STAT VSZ %MEM %CPU COMMAND >> >>>>> 777 2 root RW 0 0% 99% [kclick] >> >>>>> 807 691 root R 1960 2% 0% top >> >>>>> 682 664 root S 1992 2% 0% /usr/sbin/dropbear -p 22 >> >>>>> 691 682 root S 1972 2% 0% -ash >> >>>>> >> >>>>> >> >>>> >> >>> >> >>> >> >>> -- >> >>> Yongheng Qi >> >>> >> >>> Mobile: +86 1390 119 7481 >> >>> >> >> >> >> >> > >> > >> > -- >> > Yongheng Qi >> > >> > Mobile: +86 1390 119 7481 >> > >> >> -- >> Sent from my mobile device >> >> Yongheng Qi >> >> Mobile: +86 1390 119 7481 >> > > > > -- > Yongheng Qi > > Mobile: +86 1390 119 7481 > -- Yongheng Qi Mobile: +86 1390 119 7481 _______________________________________________ click mailing list [email protected] https://amsterdam.lcs.mit.edu/mailman/listinfo/click
