From: schwidefsky@de.ibm.com
To: george anzinger <george@mvista.com>
Cc: Jamie Lokier <lk@tantalophile.demon.co.uk>,
high-res-timers-discourse@lists.sourceforge.net,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>,
David Schleef <ds@schleef.org>, Mark Salisbury <mbs@mc.com>,
Jeff Dike <jdike@karaya.com>,
linux-kernel@vger.kernel.org
Subject: Re: No 100 HZ timer !
Date: Wed, 11 Apr 2001 11:06:00 +0200 [thread overview]
Message-ID: <C1256A2B.0031F59B.00@d12mta07.de.ibm.com> (raw)
>f) As noted, the account timers (task user/system times) would be much
>more accurate with the tick less approach. The cost is added code in
>both the system call and the schedule path.
>
>Tentative conclusions:
>
>Currently we feel that the tick less approach is not acceptable due to
>(f). We felt that this added code would NOT be welcome AND would, in a
>reasonably active system, have much higher overhead than any savings in
>not having a tick. Also (d) implies a list organization that will, at
>the very least, be harder to understand. (We have some thoughts here,
>but abandoned the effort because of (f).) We are, of course, open to
>discussion on this issue and all others related to the project
>objectives.
f) might be true on Intel based systems. At least for s/390 the situation
is a little bit different. Here is a extract from the s/390 part of the
timer patch:
.macro UPDATE_ENTER_TIME reload
la %r14,thread+_TSS_UTIME(%r9) # pointer to utime
tm SP_PSW+1(%r15),0x01 # interrupting from user ?
jno 0f # yes -> add to user time
la %r14,8(%r14) # no -> add to system time
0: lm %r0,%r1,0(%r14) # load user/system time
sl %r1,__LC_LAST_MARK+4 # subtract last time mark
bc 3,BASED(1f) # borrow ?
sl %r0,BASED(.Lc1)
1: sl %r0,__LC_LAST_MARK
stck __LC_LAST_MARK # make a new mark
al %r1,__LC_LAST_MARK+4 # add new mark -> added delta
bc 12,BASED(2f) # carry ?
al %r0,BASED(.Lc1)
2: al %r0,__LC_LAST_MARK
stm %r0,%r1,0(%r14) # store updated user/system time
clc __LC_LAST_MARK(8),__LC_JIFFY_TIMER # check if enough time
jl 3f # passed for a jiffy update
l %r1,BASED(.Ltime_warp)
basr %r14,%r1
.if \reload # reload != 0 for system call
lm %r2,%r6,SP_R2(%r15) # reload clobbered parameters
.endif
3:
.macro UPDATE_LEAVE_TIME
l %r1,BASED(.Ltq_timer) # test if tq_timer list is empty
x %r1,0(%r1) # tq_timer->next != tq_timer ?
jz 0f
l %r1,BASED(.Ltq_timer_active)
icm %r0,15,0(%r1) # timer event already added ?
jnz 0f
l %r1,BASED(.Ltq_pending)
basr %r14,%r1
0: lm %r0,%r1,thread+_TSS_STIME(%r9) # load system time
sl %r1,__LC_LAST_MARK+4 # subtract last time mark
bc 3,BASED(1f) # borrow ?
sl %r0,BASED(.Lc1)
1: sl %r0,__LC_LAST_MARK
stck __LC_LAST_MARK # make new mark
al %r1,__LC_LAST_MARK+4 # add new mark -> added delta
bc 12,BASED(2f) # carry ?
al %r0,BASED(.Lc1)
2: al %r0,__LC_LAST_MARK
stm %r0,%r1,thread+_TSS_STIME(%r9) # store system time
.endm
The two macros UPDATE_ENTER_TIME and UPDATE_LEAVE_TIMER are executed
on every system entry/exit. In the case that no special work has to
be done less then 31 instruction are executed in addition to the
normal system entry/exit code. Special work has to be done if more
time then 1/HZ has passed (call time_warp), or if tq_timer contains
an element (call tq_pending).
The accuracy of the timer events has not changed. It still is 1/HZ.
The only thing this patch does is to avoid unneeded interruptions.
I'd be happy if this could be combined with a new, more accurate
timing method.
blue skies,
Martin
Linux/390 Design & Development, IBM Deutschland Entwicklung GmbH
Schönaicherstr. 220, D-71032 Böblingen, Telefon: 49 - (0)7031 - 16-2247
E-Mail: schwidefsky@de.ibm.com
next reply other threads:[~2001-04-11 9:08 UTC|newest]
Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-04-11 9:06 schwidefsky [this message]
-- strict thread matches above, loose matches on Subject: below --
2001-08-01 17:22 george anzinger
2001-08-01 19:34 ` Chris Friesen
2001-08-01 19:49 ` Richard B. Johnson
2001-08-01 20:08 ` Mark Salisbury
2001-08-01 20:33 ` george anzinger
2001-08-01 21:20 ` george anzinger
2001-08-02 4:28 ` Rik van Riel
2001-08-02 6:03 ` george anzinger
2001-08-02 14:39 ` Oliver Xymoron
2001-08-02 16:36 ` george anzinger
2001-08-02 17:05 ` Oliver Xymoron
2001-08-02 17:46 ` george anzinger
2001-08-02 18:41 ` Oliver Xymoron
2001-08-02 21:18 ` george anzinger
2001-08-02 22:09 ` Oliver Xymoron
2001-08-02 17:26 ` John Alvord
2001-04-12 13:14 No 100 HZ timer! Bret Indrelee
2001-04-12 12:58 No 100 HZ timer ! Mark Salisbury
2001-04-11 17:56 No 100 HZ timer! Bret Indrelee
2001-04-12 17:39 ` george anzinger
2001-04-12 21:19 ` Bret Indrelee
2001-04-12 22:20 ` george anzinger
2001-04-13 4:00 ` Bret Indrelee
2001-04-13 6:32 ` Ben Greear
2001-04-13 8:42 ` george anzinger
2001-04-13 10:36 ` Jamie Lokier
2001-04-13 16:07 ` george anzinger
2001-04-13 23:00 ` Jamie Lokier
2001-04-13 12:05 ` Horst von Brand
2001-04-13 21:53 ` george anzinger
2001-04-13 23:10 ` Jamie Lokier
2001-04-16 3:02 ` Ben Greear
2001-04-16 2:46 ` Jamie Lokier
2001-04-16 12:36 ` Mark Salisbury
2001-04-16 19:19 ` george anzinger
2001-04-16 20:45 ` Albert D. Cahalan
2001-04-16 21:29 ` Chris Wedgwood
2001-04-16 22:25 ` george anzinger
2001-04-16 23:57 ` Mark Salisbury
2001-04-17 0:45 ` george anzinger
2001-04-17 12:12 ` Mark Salisbury
2001-04-17 12:51 ` Mark Salisbury
2001-04-17 18:53 ` george anzinger
2001-04-17 19:41 ` Jamie Lokier
2001-04-23 8:05 ` Ulrich Windl
2001-04-23 13:22 ` Mark Salisbury
2001-04-16 2:41 ` Ben Greear
2001-04-10 14:42 No 100 HZ timer ! schwidefsky
2001-04-10 12:54 schwidefsky
2001-04-10 11:38 schwidefsky
2001-04-10 11:54 ` Alan Cox
2001-04-10 7:29 schwidefsky
2001-04-10 7:27 schwidefsky
2001-04-09 15:54 schwidefsky
2001-04-09 18:30 ` Jeff Dike
2001-04-09 18:19 ` Mark Salisbury
2001-04-09 20:12 ` Alan Cox
2001-04-09 20:32 ` Mark Salisbury
2001-04-09 22:31 ` Mikulas Patocka
2001-04-09 22:35 ` Alan Cox
2001-04-10 11:43 ` David Schleef
2001-04-10 12:04 ` Mikulas Patocka
2001-04-10 12:31 ` David Schleef
2001-04-10 12:34 ` Mark Salisbury
2001-04-10 14:10 ` Mikulas Patocka
2001-04-10 13:35 ` root
2001-04-10 14:22 ` Andi Kleen
2001-04-10 15:43 ` Alan Cox
2001-04-12 5:25 ` watermodem
2001-04-12 8:45 ` Jamie Lokier
2001-04-10 17:15 ` Jamie Lokier
2001-04-10 17:27 ` Alan Cox
2001-04-10 17:35 ` Jamie Lokier
2001-04-10 18:17 ` Alan Cox
2001-04-10 18:24 ` Jamie Lokier
2001-04-10 19:28 ` george anzinger
2001-04-10 20:02 ` mark salisbury
2001-04-10 22:08 ` george anzinger
2001-04-11 0:48 ` Mark Salisbury
2001-04-11 2:35 ` george anzinger
2001-04-12 0:24 ` Mark Salisbury
2001-04-11 16:11 ` Jamie Lokier
2001-04-11 16:59 ` george anzinger
2001-04-11 18:57 ` Jamie Lokier
2001-04-11 19:21 ` John Alvord
2001-04-12 8:41 ` Jamie Lokier
2001-08-01 1:08 ` george anzinger
2001-08-11 11:57 ` Pavel Machek
2001-08-14 15:59 ` Jamie Lokier
2001-08-14 16:57 ` george anzinger
2001-04-10 19:50 ` Zdenek Kabelac
2001-04-11 11:42 ` Maciej W. Rozycki
2001-04-11 16:13 ` Jamie Lokier
2001-04-12 9:51 ` Maciej W. Rozycki
2001-04-10 19:42 ` Zdenek Kabelac
2001-04-10 12:19 ` Mark Salisbury
2001-04-10 17:51 ` yodaiken
2001-04-11 18:43 ` Oliver Xymoron
2001-04-10 12:11 ` Mark Salisbury
2001-04-10 5:51 ` Andi Kleen
2001-04-10 9:33 ` Martin Mares
2001-04-10 10:00 ` Albert D. Cahalan
2001-04-10 12:14 ` Mark Salisbury
2001-04-11 5:55 ` Karim Yaghmour
2001-04-10 11:18 ` Alan Cox
2001-04-10 12:02 ` Andi Kleen
2001-04-10 12:12 ` Alan Cox
2001-04-10 12:27 ` Mark Salisbury
2001-04-10 12:32 ` Andi Kleen
2001-04-10 12:36 ` Alan Cox
2001-04-10 12:37 ` Andi Kleen
2001-04-10 18:45 ` Stephen D. Williams
2001-04-10 19:59 ` Andi Kleen
2001-04-10 12:07 ` Mark Salisbury
2001-04-10 12:45 ` Andi Kleen
2001-04-10 12:42 ` Mark Salisbury
2001-04-10 12:54 ` Andi Kleen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=C1256A2B.0031F59B.00@d12mta07.de.ibm.com \
--to=schwidefsky@de.ibm.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=ds@schleef.org \
--cc=george@mvista.com \
--cc=high-res-timers-discourse@lists.sourceforge.net \
--cc=jdike@karaya.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lk@tantalophile.demon.co.uk \
--cc=mbs@mc.com \
--cc=mikulas@artax.karlin.mff.cuni.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®