lkml.org 
[lkml]   [2000]   [Jan]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: (*(unsigned long *)&jiffies)++;
oops. Forgot that there (may be) non-Intel archs out there....

On Thu, 6 Jan 2000, Tigran Aivazian wrote:

> 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/

\
 
 \ /
  Last update: 2005-03-22 13:55    [W:0.267 / U:0.104 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site