Bug 248491 - Kernel command-line option to turn off lost-tick compensation
Kernel command-line option to turn off lost-tick compensation
Status: CLOSED WONTFIX
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: kernel (Show other bugs)
4.5
x86_64 Linux
low Severity high
: rc
: ---
Assigned To: Chris Lalancette
Martin Jenner
:
Depends On: 248488
Blocks: 430698
  Show dependency treegraph
 
Reported: 2007-07-16 19:39 EDT by Tim Mann
Modified: 2010-07-19 09:03 EDT (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2008-08-02 22:28:23 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
Add a command-line option to disable lost tick compensation (3.94 KB, patch)
2007-07-19 17:19 EDT, Tim Mann
no flags Details | Diff


External Trackers
Tracker ID Priority Status Summary Last Updated
Linux Kernel 5127 None None None Never

  None (edit)
Description Tim Mann 2007-07-16 19:39:55 EDT
As discussed in http://bugzilla.kernel.org/show_bug.cgi?id=5127, Linux kernels
prior to the clocksource patches (i.e., 2.6.17 and earlier) have buggy code for
detecting and compensating for lost timer interrupts (ticks).  The bug results
in spurious detection of lost ticks and thus makes the clock run faster than
real time.

This problem is observable on real hardware, but is much more severe in a
virtual machine.

In 32-bit kernels, the command line option clock=pit effectively disables
lost-tick compensation.  (That's not the primary intent of the option; it's just
that basing timekeeping only on the PIT, as clock=pit does, gives the kernel no
way to detect lost ticks, so it doesn't try.)  On 64-bit kernels, however, there
is no way to disable lost-tick compensation from the command line.

We'd like to see a kernel command-line option to turn off lost-tick compensation
in 64-bit RHEL4 kernels, bringing them more or less to parity with 32-bit
kernels in this regard.

(I was planning to file a suggested patch to add the option along with this bug
report, but I don't have one ready quite yet.  I'll attach one when I have it;
should be later this week.  Due to some active discussions among various parties
we needed to get the bug into the RH bugzilla right away rather than waiting for
the patch to be done.  Thanks for your patience.)
Comment 1 Tim Mann 2007-07-19 17:19:57 EDT
Created attachment 159610 [details]
Add a command-line option to disable lost tick compensation

Here's the patch I promised.
Comment 2 Issue Tracker 2007-07-25 13:34:35 EDT
Rick,

As we discussed on our phone conversation, what I'd like to VMware for is
proof that turning off the lost tick compensation code conclusively shows
that the RHEL 4 guests stop gaining time. First they should show us what
kind of drift they are seeing on a stock RHEL 4.5 kernel. Actual deltas
from wall time.  Then, with their patch from BZ 248491 applied to a test
kernel that turns off the lost tick compensation code, show us how it
helped, show us the delta from our kernel and the test kernel. This would
give us something conclusive to discuss with engineering and would
certainly strengthen VMware's case for getting this included in RHEL 4.

Regards,

Chris


This event sent from IssueTracker by cww 
 issue 126566
Comment 3 Tim Mann 2007-07-25 15:56:56 EDT
We'll do some measurements and provide graphs.
Comment 4 RHEL Product and Program Management 2007-07-31 16:15:31 EDT
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux maintenance release.  Product Management has requested
further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products.  This request is not yet committed for inclusion in an Update
release.
Comment 9 Venkatesh Pallipadi 2007-12-07 00:38:24 EST
Data with and without patch, from David Meng.

Basically time does not jump forward with the patch.


Server time	          RHEL4U6 Guest OS without patch time	Difference 
(sec.)	Out sync (sec)
Thu Dec 6 04:09:47 PST 2007	Thu Dec 6 04:09:53 PST 2007	7	0
Thu Dec 6 04:16:48 PST 2007	Thu Dec 6 04:16:56 PST 2007	8	1
Thu Dec 6 04:17:00 PST 2007	Thu Dec 6 04:17:07 PST 2007	7	0
Thu Dec 6 04:20:21 PST 2007	Thu Dec 6 04:20:29 PST 2007	9	2
Thu Dec 6 04:23:45 PST 2007	Thu Dec 6 04:23:54 PST 2007	9	2
Thu Dec 6 04:31:51 PST 2007	Thu Dec 6 04:32:01 PST 2007	10	3
Thu Dec 6 04:32:00 PST 2007	Thu Dec 6 04:32:09 PST 2007	9	2
Thu Dec 6 04:45:12 PST 2007	Thu Dec 6 04:45:23 PST 2007	11	4
Thu Dec 6 04:48:11 PST 2007	Thu Dec 6 04:48:25 PST 2007	14	7
Thu Dec 6 04:49:32 PST 2007	Thu Dec 6 04:49:45 PST 2007	13	6
Thu Dec 6 04:54:12 PST 2007	Thu Dec 6 04:45:26 PST 2007	14	7
Thu Dec 6 04:56:07 PST 2007	Thu Dec 6 04:56:20 PST 2007	13	6
Thu Dec 6 04:58:26 PST 2007	Thu Dec 6 04:58:40 PST 2007	14	7
Thu Dec 6 05:00:54 PST 2007	Thu Dec 6 05:01:08 PST 2007	14	7
Thu Dec 6 05:06:00 PST 2007	Thu Dec 6 05:06:15 PST 2007	15	8
Thu Dec 6 05:14:09 PST 2007	Thu Dec 6 05:14:24 PST 2007	15	8
Thu Dec 6 05:19:00 PST 2007	Thu Dec 6 05:19:17 PST 2007	17	10
Thu Dec 6 05:20:11 PST 2007	Thu Dec 6 05:20:27 PST 2007	16	9
Thu Dec 6 05:29:02 PST 2007	Thu Dec 6 05:29:20 PST 2007	18	11
Thu Dec 6 05:40:44 PST 2007	Thu Dec 6 05:41:03 PST 2007	19	12
Thu Dec 6 05:51:11 PST 2007	Thu Dec 6 05:51:32 PST 2007	21	14
Thu Dec 6 06:17:18 PST 2007	Thu Dec 6 06:17:44 PST 2007	26	19
Thu Dec 6 06:24:32 PST 2007	Thu Dec 6 06:24:57 PST 2007	25	18



Server time	     RHEL4U6 Guest OS with patch time	Difference (sec.)
	Out sync (sec)
Thu Dec 6 18:34:00 PST 2007	Thu Dec 6 18:34:00 PST 2007	0	0
Thu Dec 6 18:34:56 PST 2007	Thu Dec 6 18:34:56 PST 2007	0	0
Thu Dec 6 18:39:19 PST 2007	Thu Dec 6 18:39:19 PST 2007	0	0
Thu Dec 6 18:43:15 PST 2007	Thu Dec 6 18:43:15 PST 2007	0	0
Thu Dec 6 18:45:44 PST 2007	Thu Dec 6 18:45:44 PST 2007	0	0
Thu Dec 6 18:49:50 PST 2007	Thu Dec 6 18:49:51 PST 2007	1	1
Thu Dec 6 18:51:40 PST 2007	Thu Dec 6 18:51:40 PST 2007	0	0
Thu Dec 6 18:57:44 PST 2007	Thu Dec 6 18:57:44 PST 2007	0	0
Thu Dec 6 19:04:57 PST 2007	Thu Dec 6 19:04:57 PST 2007	0	0
Thu Dec 6 19:12:25 PST 2007	Thu Dec 6 19:12:25 PST 2007	0	0
Thu Dec 6 19:23:16 PST 2007	Thu Dec 6 19:23:16 PST 2007	0	0
Thu Dec 6 19:34:28 PST 2007	Thu Dec 6 19:34:28 PST 2007	0	0
Thu Dec 6 19:40:40 PST 2007	Thu Dec 6 19:40:40 PST 2007	0	0
Thu Dec 6 19:53:55 PST 2007	Thu Dec 6 19:53:55 PST 2007	0	0
Thu Dec 6 20:04:43 PST 2007	Thu Dec 6 20:04:43 PST 2007	0	0
Thu Dec 6 20:13:32 PST 2007	Thu Dec 6 20:13:32 PST 2007	0	0
Thu Dec 6 20:23:50 PST 2007	Thu Dec 6 20:23:51 PST 2007	1	1
Thu Dec 6 20:33:06 PST 2007	Thu Dec 6 20:33:06 PST 2007	0	0
Thu Dec 6 20:43:19 PST 2007	Thu Dec 6 20:43:19 PST 2007	0	0
Thu Dec 6 20:53:30 PST 2007	Thu Dec 6 20:53:30 PST 2007	0	0
Thu Dec 6 21:02:53 PST 2007	Thu Dec 6 21:02:53 PST 2007	0	0

Comment 11 Tim Mann 2007-12-12 13:27:18 EST
This patch does not depend on the divider patch discussed bug 248488.  Of
course, they both affect timekeeping and we would like to see both changes applied.
Comment 14 RHEL Product and Program Management 2008-08-02 22:28:23 EDT
Development Management has reviewed and declined this request.  You may appeal
this decision by reopening this request.
Comment 15 Chris Lalancette 2010-07-19 09:03:47 EDT
Just clearing a needinfo request on me.

Note You need to log in before you can comment on or make changes to this bug.