[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Question about high CPU load during iperf ethernet testing

Hello, all!

I am running iperf ethernet tests on DRA7XX_EVM board (OMAP5).
Xen version is 4.4.
I run only Linux (kernel 3.8) as Dom0, no other active domains (For clear tests results I decided not to start DomU).
iperf server is started on host, iperf client is started on board with command line "iperf -c -w 256k -m -f M -d -t 60".

During test I studied CPU load with top tool on Dom0, and saw, that one VCPU is totally loaded, spending about 50% in software IRQs, and 50% in system.
Running the same test on clear Linux without Xen, I saw that CPU load is about 2-4%.

I decided to debug a bit, so I used "({register uint64_t _r; asm volatile("mrrc " "p15, 0, %0, %H0, c14" ";" : "=r" (_r)); _r; })" command to read timer counter before and after operations I want to test.

In such way I've found, that most time of CPU is spent in functions enable_irq/disable_irq_nosync and spin_lock_irqsave/spin_unlock_irqrestore (mostly in "mrsÂÂÂ %0, cpsrÂÂÂ @ arch_local_irq_save"/"msrÂÂÂ cpsr_c, %0ÂÂÂ @ local_irq_restore"). When running without Xen it should not take so much time.

So, could anyone explain me some questions:
1. Is it normal behaviour?
2. Does hypervisor trap cpsr register? I suppose, that hypervisor trap access to cpsr register, that leads to additional overhead, but I can't find place in sources where it happens.

Thank you in advance.
Best regards.

Iurii KonovalenkoÂ| Senior Software Engineer
+3.8044.492.9695 M +38.099.932.2909ÂÂ
Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.