Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
For bugs related to Red Hat Enterprise Linux 5 product line. The current stable release is 5.10. For Red Hat Enterprise Linux 6 and above, please visit Red Hat JIRA https://issues.redhat.com/secure/CreateIssue!default.jspa?pid=12332745 to report new issues.

Bug 549480

Summary: On a Dell R710, a read() operation on /dev/rtc blocks if the frequency is 8192.
Product: Red Hat Enterprise Linux 5 Reporter: dave.ray
Component: kernelAssignee: Prarit Bhargava <prarit>
Status: CLOSED WORKSFORME QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: high Docs Contact:
Priority: low    
Version: 5.4CC: jfeeney, jwilson
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Dell PowerEdge R710 server
Last Closed: 2010-01-11 18:51:59 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
test program none

Description dave.ray 2009-12-21 19:25:18 UTC
Description of problem:
On a Dell PowerEdge R710 server, a read() operation on /dev/rtc fails to receive interrupts if the interrupt frequency is 8192.  The point at which the block occurs is random, but is usually within the first few seconds.  This prevents usage of the RTC has a high-resolution timer.  No blockage has been observed if the interrupt frequency is 4096 or less.


Version-Release number of selected component (if applicable):
2.6.18-164.9.1.el5


How reproducible:
Compile and run the attached C-language test program.  The program will print out lines for each second or each reception of an interrupt.  When no more lines are ouput, the read() operation has failed to receive interrupts.


Steps to Reproduce:
1. Compile the test program:  'gcc -o test_rtc test_rtc.c'
2. Run the test program:  'test_rtc 8192 0' ## 0 causes output for each second
3. Run the test program:  'test_rtc 8192 1' ## 1 causes output for each tick
4. Run the test program:  'test_rtc 4096 0' 

  
Actual results:
With an interrupt frequency of 8192, the test program will cease to output lines within a few seconds, even if the second argument is 0 (to output a line for each second rather than for each tick).


Expected results:
With an interrupt frequency of 8192, the test program should continue to output lines for as long as the test program is running.


Additional info:

Comment 1 dave.ray 2009-12-22 14:41:02 UTC
Created attachment 379838 [details]
test program

Comment 2 Prarit Bhargava 2010-01-11 18:35:54 UTC
This WORKSFORME on a Dell PER710 as well as a Dell PER810 on -183.el5.

I've tried the reproducer several times for 1/2 hour runs without any issues.

I'll try 164.9.1.el5 to see if there is an issue with the z-stream kernels.

P.

Comment 3 Prarit Bhargava 2010-01-11 18:51:59 UTC
This also WORKSFORME on 164.9.1.el5.

P.

Comment 4 dave.ray 2010-01-14 16:15:15 UTC
Additional information:

While the test is running, /proc/driver/rtc is unchanged.  The contents of the file remain as:

rtc_time        : 11:14:48
rtc_date        : 2010-01-14
rtc_epoch       : 1900
alarm           : 15:19:00
DST_enable      : no
BCD             : yes
24hr            : yes
square_wave     : no
alarm_IRQ       : no
update_IRQ      : no
periodic_IRQ    : no
periodic_freq   : 1024
batt_status     : okay

Neither periodic_IRQ nor periodic_freq is modified.