Just installed CentOS 5.1 on VMware ESX and am attempting to play with the newly added tick_divider feature. It doesn't seem to be making any difference in the number of timer interrupts though. I set tick_divider=10 which should reduce the number of timer interrupts to 100.
I wrote a nasty little scripts that queries /proc/interrupts every 1 second and still see an increase each second in about 1000 interrupts.
The server is:
uname -srvmpio
Linux 2.6.18-53.1.4.el5 #1 SMP Fri Nov 30 00:45:16 EST 2007 i686 i686 i386 GNU/Linux
Obviously not running 64bit. Only one cpu has been allocated to this vm. Has anybody else used this successfully?
On Dec 6, 2007 7:47 AM, Scott McClanahan scott.mcclanahan@trnswrks.com wrote:
Just installed CentOS 5.1 on VMware ESX and am attempting to play with the newly added tick_divider feature. It doesn't seem to be making any difference in the number of timer interrupts though. I set tick_divider=10 which should reduce the number of timer interrupts to 100.
I wrote a nasty little scripts that queries /proc/interrupts every 1 second and still see an increase each second in about 1000 interrupts.
The server is:
uname -srvmpio
Linux 2.6.18-53.1.4.el5 #1 SMP Fri Nov 30 00:45:16 EST 2007 i686 i686 i386 GNU/Linux
Obviously not running 64bit. Only one cpu has been allocated to this vm. Has anybody else used this successfully?
Could you add your finding to the bug report dealing with this subject?
http://bugs.centos.org/view.php?id=2189
Thanks,
Akemi
On Thu, 2007-12-06 at 07:58 -0800, Akemi Yagi wrote:
On Dec 6, 2007 7:47 AM, Scott McClanahan scott.mcclanahan@trnswrks.com wrote:
Just installed CentOS 5.1 on VMware ESX and am attempting to play with the newly added tick_divider feature. It doesn't seem to be making any difference in the number of timer interrupts though. I set tick_divider=10 which should reduce the number of timer interrupts to 100.
I wrote a nasty little scripts that queries /proc/interrupts every 1 second and still see an increase each second in about 1000 interrupts.
The server is:
uname -srvmpio
Linux 2.6.18-53.1.4.el5 #1 SMP Fri Nov 30 00:45:16 EST 2007 i686 i686 i386 GNU/Linux
Obviously not running 64bit. Only one cpu has been allocated to this vm. Has anybody else used this successfully?
Could you add your finding to the bug report dealing with this subject?
http://bugs.centos.org/view.php?id=2189
Thanks,
Akemi _______________________________________________ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
I just did. Note I made a typo and commented on that in a second post. Does tick_divider work successfully in a 64bit installation? In the changelog of the kernel installed on my test box (32bit) I see:
- [x86] Fixes for the tick divider patch (Chris Lalancette ) [305011]
Can anybody confirm that?
On Dec 6, 2007 8:52 AM, Scott McClanahan scott.mcclanahan@trnswrks.com wrote:
I just did. Note I made a typo and commented on that in a second post. Does tick_divider work successfully in a 64bit installation? In the changelog of the kernel installed on my test box (32bit) I see:
- [x86] Fixes for the tick divider patch (Chris Lalancette ) [305011]
Can anybody confirm that?
As you may have already noticed but the latest version of kernel-vm was built by Tru and made available now. I reported my finding as a short note in the bug tracker. The tick_divider did not show any difference in my test. I look forward to hearing what you find.
Akemi
On Dec 8, 2007 2:18 AM, Akemi Yagi amyagi@gmail.com wrote:
On Dec 6, 2007 8:52 AM, Scott McClanahan scott.mcclanahan@trnswrks.com wrote:
I just did. Note I made a typo and commented on that in a second post. Does tick_divider work successfully in a 64bit installation? In the changelog of the kernel installed on my test box (32bit) I see:
- [x86] Fixes for the tick divider patch (Chris Lalancette ) [305011]
Can anybody confirm that?
Almost forgot to answer this question ...
Yes, the patch is in kernel 2.6.18-53.1.4: ==================================================================== linux-2.6-x86-fixes-for-the-tick-divider-patch.patch
Subject: Re: [RHEL 5.1.z PATCH]: Fixes for the tick divider patch Date: Tue, 02 Oct 2007 16:53:22 -0400 Bugzilla: 315471 Message-Id: 4702AFC2.9020702@redhat.com Changelog: [x86] Fixes for the tick divider patch
All, While testing the tick divider patch under VMware, a number of issues were found with it:
1) On i386, when specifying "divider=10 apic=verbose", a bogus value was printed for the CPU MHz and the host bus speed. This is because during APIC calibration, we were using "HZ/10" loops instead of "REAL_HZ/10", causing the calculation to go out of bounds.
2) On x86_64, when using the tick divider, it wasn't dividing the local APIC as well as the external timer. This causes problems under VMware since the hypervisor (ESX server) has to deliver 1000 local APIC interrupts per second to each logical processor, which can end up causing time drift. By properly dividing the local APIC as well as the external time source, it significantly reduces the load on the HV, and the guests have less tendency to drift.
3) On x86_64, we weren't looping during smp_local_timer_interrupt(), so we were losing profiling ticks.
3) On x86_64, when using the tick divider with PM-Timer, lost tick compensation wasn't being calculated properly. In particular, we would count ticks as lost when they really weren't, because we were using HZ instead of REAL_HZ in the lost calculation.
4) On x86_64, TSC suffers from the same problem as PM-Timer.
The attached patch fixes all 4 of these problems. Additionally, this patch also adds a "hz=" command-line parameter for both i386 and x86_64. This is nicer way to specify the divider from a user point-of-view; they don't have to know the current value of HZ in order to specify the HZ value they want.
These patches are not upstream, since upstream has since gone with the tickless kernel.
Patches successfully tested by myself (just for verifying basic correctness), and HP and VMware using ESX server.
This fixes BZ 305011. Please review and ACK.
Chris Lalancette ====================================================================
This is the kernel I used in the latest test, and I did not see any obvious difference with the tick_divider=10 option. However, this needs to be tested by others on different systems under different conditions to get anything conclusive.
For your reference,
http://bugs.centos.org/file_download.php?file_id=389&type=bug http://bugs.centos.org/file_download.php?file_id=390&type=bug
Akemi
Sorry, one more piece of the patch note was missing in my previous e-mail:
==========================================================
ACK less the hz= bits for 5.1.z, per Alan's concern about only certain values in the currently accepted range actually being valid. I'd say fully bake that part for 5.2 and just take the fixes for 5.1.z.
Same patch, with hz= bits removed for the z-stream.
Chris Lalancette ==========================================================
So, there is no hz= option.
Akemi