qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/9] sparc64: tick timers
@ 2010-01-05 23:19 Igor V. Kovalenko
  2010-01-05 23:19 ` [Qemu-devel] [PATCH 1/9] sparc64: trace pstate and global register set changes Igor V. Kovalenko
                   ` (7 more replies)
  0 siblings, 8 replies; 20+ messages in thread
From: Igor V. Kovalenko @ 2010-01-05 23:19 UTC (permalink / raw)
  To: qemu-devel

The following series deals with tick timers for sparc64.
It is not complete solution yet, comments are welcome.

First two changes are really debug helpers,
so are not strictly required.

Central part is addressing how traps are taken, which
includes taking trap when PSTATE.IE is changed,
PIL mask is changed, and SOFTINT is written to.
I did not used CPU_INTERRUPT_TIMER at all, instead
all interrupts are delivered with CPU_INTERRUPT_HARD.

Last change is reimplementing tick timers without
periodic timer framework. sparc64 timers are essentially
one-shot since they provide trap on tick counter match
only so require reloading for next time period. Still
it may be cleaner to fix sun4u use of periodic timers.

These changes allow recent linux kernel to start
scheduler works, and count about 200 bogomips
before crashing later.

---

Igor V. Kovalenko (9):
      sparc64: trace pstate and global register set changes
      sparc64: add PSR and PIL to cpu state dump
      sparc64: use helper_wrpil to check pending irq on write
      sparc64: check for pending irq when pil, pstate or softint is changed
      sparc64: add macros to deal with softint and timer interrupt
      sparc64: clear exception_index with -1 value
      sparc64: move cpu_interrupts_enabled to cpu.h
      sparc64: interrupt trap handling
      sparc64: reimplement tick timers


 cpu-exec.c               |   40 ++++----
 hw/sun4u.c               |  234 +++++++++++++++++++++++++++++++++++++---------
 target-sparc/cpu.h       |   19 ++++
 target-sparc/exec.h      |   13 ---
 target-sparc/helper.c    |    1 
 target-sparc/helper.h    |    1 
 target-sparc/op_helper.c |   75 ++++++++++++++-
 target-sparc/translate.c |    5 -
 8 files changed, 304 insertions(+), 84 deletions(-)

-- 
Kind regards,
Igor V. Kovalenko

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2010-01-07 20:05 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-05 23:19 [Qemu-devel] [PATCH 0/9] sparc64: tick timers Igor V. Kovalenko
2010-01-05 23:19 ` [Qemu-devel] [PATCH 1/9] sparc64: trace pstate and global register set changes Igor V. Kovalenko
2010-01-06 15:24   ` Blue Swirl
2010-01-05 23:19 ` [Qemu-devel] [PATCH 2/9] sparc64: add PSR and PIL to cpu state dump Igor V. Kovalenko
2010-01-06 15:31   ` Blue Swirl
2010-01-05 23:19 ` [Qemu-devel] [PATCH 3/9] sparc64: use helper_wrpil to check pending irq on write Igor V. Kovalenko
2010-01-06 15:41   ` Blue Swirl
2010-01-05 23:19 ` [Qemu-devel] [PATCH 4/9] sparc64: check for pending irq when pil, pstate or softint is changed Igor V. Kovalenko
2010-01-06 15:54   ` Blue Swirl
2010-01-05 23:19 ` [Qemu-devel] [PATCH 5/9] sparc64: add macros to deal with softint and timer interrupt Igor V. Kovalenko
2010-01-06 15:58   ` Blue Swirl
2010-01-05 23:19 ` [Qemu-devel] [PATCH 6/9] sparc64: clear exception_index with -1 value Igor V. Kovalenko
2010-01-06 17:36   ` Blue Swirl
2010-01-06 23:29     ` Artyom Tarasenko
2010-01-06 23:57       ` Igor Kovalenko
2010-01-07 20:05         ` Blue Swirl
2010-01-05 23:19 ` [Qemu-devel] [PATCH 7/9] sparc64: move cpu_interrupts_enabled to cpu.h Igor V. Kovalenko
2010-01-05 23:19 ` [Qemu-devel] [PATCH 8/9] sparc64: interrupt trap handling Igor V. Kovalenko
2010-01-06 17:00   ` Blue Swirl
2010-01-07 17:24     ` Igor Kovalenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).