qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Richard Henderson <rth@twiddle.net>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 27/33] target-alpha: Use a fixed frequency for the RPCC in system mode.
Date: Thu, 28 Apr 2011 13:51:09 -0700	[thread overview]
Message-ID: <1304023875-25040-28-git-send-email-rth@twiddle.net> (raw)
In-Reply-To: <1304023875-25040-1-git-send-email-rth@twiddle.net>

Signed-off-by: Richard Henderson <rth@twiddle.net>
---
 target-alpha/cpu.h       |    2 --
 target-alpha/op_helper.c |   14 +++++++++++---
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/target-alpha/cpu.h b/target-alpha/cpu.h
index 59b3bc3..30ecf2d 100644
--- a/target-alpha/cpu.h
+++ b/target-alpha/cpu.h
@@ -256,7 +256,6 @@ struct CPUAlphaState {
     uint64_t trap_arg1;
     uint64_t trap_arg2;
 
-#if !defined(CONFIG_USER_ONLY)
     /* The internal data required by our emulation of the Unix PALcode.  */
     uint64_t exc_addr;
     uint64_t palbr;
@@ -266,7 +265,6 @@ struct CPUAlphaState {
     uint64_t usp;
     uint64_t shadow[8];
     uint64_t scratch[24];
-#endif
 
 #if TARGET_LONG_BITS > HOST_LONG_BITS
     /* temporary fixed-point registers
diff --git a/target-alpha/op_helper.c b/target-alpha/op_helper.c
index 42fec07..36b8289 100644
--- a/target-alpha/op_helper.c
+++ b/target-alpha/op_helper.c
@@ -65,9 +65,17 @@ static void QEMU_NORETURN arith_excp(int exc, uint64_t mask)
 
 uint64_t helper_load_pcc (void)
 {
-    /* ??? This isn't a timer for which we have any rate info.  */
-    uint64_t ret = env->pcc_ofs;
-    return ret << 32 | (uint32_t)cpu_get_real_ticks();
+#ifndef CONFIG_USER_ONLY
+    /* In system mode we have access to a decent high-resolution clock.
+       In order to make OS-level time accounting work with the RPCC,
+       present it with a well-timed clock fixed at 250MHz.  */
+    return (((uint64_t)env->pcc_ofs << 32)
+            | (uint32_t)(qemu_get_clock_ns(vm_clock) >> 2));
+#else
+    /* In user-mode, vm_clock doesn't exist.  Just pass through the host cpu
+       clock ticks.  Also, don't bother taking PCC_OFS into account.  */
+    return (uint32_t)cpu_get_real_ticks();
+#endif
 }
 
 uint64_t helper_load_fpcr (void)
-- 
1.7.4.4

  parent reply	other threads:[~2011-04-28 20:51 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-28 20:50 [Qemu-devel] [PATCH 00/33] Alpha system emulation, v3 Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 01/33] Export the unassigned_mem read/write functions Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 02/33] gdbserver: Don't deliver TIMER interrupts when SSTEP_NOIRQ either Richard Henderson
2011-04-29 20:53   ` Blue Swirl
2011-04-29 22:39     ` Richard Henderson
2011-04-30  6:35       ` Blue Swirl
2011-04-28 20:50 ` [Qemu-devel] [PATCH 03/33] target-alpha: Disassemble EV6 PALcode instructions Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 04/33] pci: Export pci_to_cpu_addr Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 05/33] target-alpha: Single-step properly across branches Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 06/33] target-alpha: Remove partial support for palcode emulation Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 07/33] target-alpha: Enable the alpha-softmmu target Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 08/33] target-alpha: Tidy exception constants Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 09/33] target-alpha: Rationalize internal processor registers Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 10/33] target-alpha: Cleanup MMU modes Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 11/33] target-alpha: Fixup translation of PALmode instructions Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 12/33] target-alpha: Add IPRs to be used by the emulation PALcode Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 13/33] target-alpha: Tidy up arithmetic exceptions Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 14/33] target-alpha: Use do_restore_state for " Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 15/33] target-alpha: Merge HW_REI and HW_RET implementations Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 16/33] target-alpha: Implement do_interrupt for system mode Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 17/33] target-alpha: Swap shadow registers moving to/from PALmode Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 18/33] target-alpha: Add various symbolic constants Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 19/33] target-alpha: Use kernel mmu_idx for pal_mode Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 20/33] target-alpha: All ISA checks to use TB->FLAGS Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 21/33] target-alpha: Disable interrupts properly Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 22/33] target-alpha: Implement more CALL_PAL values inline Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 23/33] target-alpha: Implement cpu_alpha_handle_mmu_fault for system mode Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 24/33] target-alpha: Remap PIO space for 43-bit KSEG for EV6 Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 25/33] target-alpha: Trap for unassigned and unaligned addresses Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 26/33] target-alpha: Include the PCC_OFS in the RPCC return value Richard Henderson
2011-04-28 20:51 ` Richard Henderson [this message]
2011-04-28 20:51 ` [Qemu-devel] [PATCH 28/33] target-alpha: Implement TLB flush primitives Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 29/33] target-alpha: Add custom PALcode image for CLIPPER emulation Richard Henderson
2011-04-29  9:13   ` Peter Maydell
2011-04-29 13:13     ` Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 30/33] target-alpha: Add " Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 31/33] target-alpha: Implement WAIT IPR Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 32/33] target-alpha: Implement HALT IPR Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 33/33] target-alpha: Add high-resolution access to wall clock and an alarm Richard Henderson
2011-04-29  8:36 ` [Qemu-devel] [PATCH 00/33] Alpha system emulation, v3 Paolo Bonzini

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=1304023875-25040-28-git-send-email-rth@twiddle.net \
    --to=rth@twiddle.net \
    --cc=qemu-devel@nongnu.org \
    /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;
as well as URLs for NNTP newsgroup(s).