Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NSIg7-0006ju-HT for qemu-devel@nongnu.org; Tue, 05 Jan 2010 18:19:07 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NSIg6-0006iI-CW for qemu-devel@nongnu.org; Tue, 05 Jan 2010 18:19:06 -0500 Received: from [199.232.76.173] (port=56587 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NSIg6-0006ht-6h for qemu-devel@nongnu.org; Tue, 05 Jan 2010 18:19:06 -0500 Received: from fg-out-1718.google.com ([72.14.220.158]:24807) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NSIg5-0008Hr-R1 for qemu-devel@nongnu.org; Tue, 05 Jan 2010 18:19:06 -0500 Received: by fg-out-1718.google.com with SMTP id 19so1980746fgg.10 for ; Tue, 05 Jan 2010 15:19:04 -0800 (PST) Received: from localhost ([127.0.0.1] helo=[192.168.1.2]) by skyserv with esmtp (Exim 4.71) (envelope-from ) id 1NSIg2-0001je-Pr for qemu-devel@nongnu.org; Wed, 06 Jan 2010 02:19:02 +0300 From: "Igor V. Kovalenko" Date: Wed, 06 Jan 2010 02:19:02 +0300 Message-ID: <20100105231558.6526.44483.stgit@skyserv> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] [PATCH 0/9] sparc64: tick timers List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org 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