Performance issue with High Resolution Timer enabled kernel

Bug #183879 reported by Jeff Zheng
6
Affects Status Importance Assigned to Milestone
linux-source-2.6.22 (Ubuntu)
Won't Fix
Undecided
Unassigned

Bug Description

Binary package hint: kernel-image-2.6.22-14-generic-di

I'm not sure whether should I post this as a bug, or a question.
All the latest kernels in gusty have enabled the tickless system and high resolution timer support, and ever since I upgraded from 7.04 to 7.10 I started to having very sever performance problems with vmware, especial I/O tasks.
I not hundred percent sure that this is all because of the timer change, but from what I saw, I think it is related. So when the vmware system is busy, I can see that the system will have about 2000 timer interrupt per second, some time less, some times more. This is definitely not a good thing.
I'm embedded developer myself, I understand that interrupt can hurt the performance very badly. And from the gnome cpu load applet, you can also see that, in the past (7.04), if the system is busy, then there isn't much kernel time, but now you can see half of the cpu is used in kernel time (not always, but very true with vmware).

I recompiled the kernel without the high resolution timer and tickless system, than application start much quicker in the VM than the ubuntu stock kernel. (They start much quicker for the first time you run them as they are still not cached in memory.)

I'm not sure whether the ubuntu kernel team is aware of this issue with vmware and possibly other applications as well.

From my little understanding of the general application is very seldom that they will need such accurate timers at about 1us. 1ms/10ms would be sufficient enough for most applications. 7.04 worked quite well without these features, right?
On the other hand, by enabling this timer thing, the behavior of nanosleep/msleep changed, if you have a lot timers that below HZ, than suddenly you will have a lot of interrupts. You can blame it is the applications fault that they abused the nanosleep, but you can't just change the behavior of that so big all at a sudden, without giving a chance or time for all the applications to adopt the change. And actually for something like this, it is better to add a new flag for those people who actually need the accuracy.

I know some of these are really really not ubuntu's concern, but I think ubuntu could at least disable this feature in the kernel for the time being, and give the user a pleasant user experience.

Revision history for this message
Oleksij Rempel (olerem) wrote :

Unfortuantly this is qustion or may be vmware related issue.
HPET was enabled to make ubuntu suitible for mobile usage and make it consume less power.
http://www.lesswatts.org/projects/powertop/faq.php

More about timers and vmware you can find here:
http://www.vmware.com/pdf/vmware_timekeeping.pdf

You can try powertop to find what application couse interrupts and strace to find what exactly it do.

We need more objective deffinition of speed, tools like "time" or "ps" can be usefoul too. It is easyer to change clocksource by applying to kernel "clocksource=tsc" or acpi_pm,pit,hpet,tsc

Revision history for this message
Leann Ogasawara (leannogasawara) wrote :

Jeff,

Hardy Alpha has an updated version of the kernel that you may want try. Not sure if it will help improve your situation though. http://www.ubuntu.com/testing. Also I'm not sure which version of vmware you are running, but you may want to see if there is an updated version available to test with as well. But for now this report will be closed. Thanks.

Changed in linux-source-2.6.22:
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.