Messages in this thread Patch in this message |  | | | Date | Thu, 6 Jan 2000 15:25:43 +0000 (GMT) | | From | Tigran Aivazian <> | | Subject | Re: (*(unsigned long *)&jiffies)++; |
| |
On Thu, 6 Jan 2000, Petko Manolov wrote: > GCC optimize(reorder) "jiffies++" and "(*(unsigned long *)&jiffies)++" > is > used to be sure jiffies is incremented exactly where/when you want.
Ok, then it applies to lost_ticks and lost_ticks_system as well. And therefore a cleaner way of doing it (as Richard Johnson suggested) would be in asm:
--- timer.c.0 Thu Jan 6 15:13:21 2000 +++ timer.c Thu Jan 6 15:15:31 2000 @@ -629,12 +629,11 @@ void do_timer(struct pt_regs * regs) { - /* (*(unsigned long *)&jiffies)++; */ - jiffies++; - lost_ticks++; + __asm__ __volatile__("incl jiffies"); + __asm__ __volatile__("incl lost_ticks"); mark_bh(TIMER_BH); if (!user_mode(regs)) - lost_ticks_system++; + __asm__ __volatile__("incl lost_ticks_system"); if (tq_timer) mark_bh(TQUEUE_BH); } Thsi is better than the *& hack because it is gcc-version-independent.
Regards, ------ Tigran A. Aivazian | http://www.sco.com Escalations Research Group | tel: +44-(0)1923-813796 Santa Cruz Operation Ltd | http://www.ocston.org/~tigran
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
|  |