linux-mips
[Top] [All Lists]

About the changes in co_timer_ack() function of time.c.

To: linux-mips@linux-mips.org
Subject: About the changes in co_timer_ack() function of time.c.
From: tnishioka <tnishioka@mvista.com>
Date: Sat, 27 Oct 2007 22:11:05 +0900
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
Hi all,

I DO know you guys must be very busy always, so I am sorry to disturb you.
I please ask you to let me know the reason why the changes made in 
co_timer_ack()
function on Mips kernel v2.6.23.1.
Because I got a problem on kernel v2.6.10 that the timer interrupt had ignored 
rarely
and it causes no updates for "jiffies" for a while (approx. 4min on my board).
And I found the change - a part of your excellent works - on v2.6.23.1
for co_timer_ack() function in time.c.

v2.6.10 kernel:
                /* Check to see if we have missed any timer interrupts.  */
                count = read_c0_count();
                if ((count - expirelo) < 0x7fffffff) {
                        /* missed_timer_count++; */
                        expirelo = count + cycles_per_jiffy;
                        write_c0_compare(expirelo);
                }

v2.6.23.1 kernel:
                /* Check to see if we have missed any timer interrupts.  */
                while (((count = read_c0_count()) - expirelo) < 0x7fffffff) {
                        /* missed_timer_count++; */
                        expirelo = count + cycles_per_jiffy;
                        write_c0_compare(expirelo);
                }

So, I plase ask you a couple of my questions -
1) What kind of phenomena did this change cause ?
2) What is the defect that this part of codes in v2.6.10 kernel has ?
Please let me know.

Thanks,

Best regards,
tnishioka

<Prev in Thread] Current Thread [Next in Thread>