qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Igor Kovalenko <igor.v.kovalenko@gmail.com>
To: Blue Swirl <blauwirbel@gmail.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] sparc64: reimplement tick timers v3
Date: Wed, 27 Jan 2010 02:09:39 +0300	[thread overview]
Message-ID: <b2fa41d61001261509y4b1b180brde0d9cf7c488b65d@mail.gmail.com> (raw)
In-Reply-To: <f43fc5581001221232h6cf2a6c1k60eb0ff5dc84406@mail.gmail.com>

On Fri, Jan 22, 2010 at 11:32 PM, Blue Swirl <blauwirbel@gmail.com> wrote:
> On Tue, Jan 19, 2010 at 10:25 PM, Igor V. Kovalenko
> <igor.v.kovalenko@gmail.com> wrote:
>> From: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
>>
>> sparc64 timer has tick counter which can be set and read,
>> and tick compare value used as deadline to fire timer interrupt.
>> The timer is not used as periodic timer, instead deadline
>> is set each time new timer interrupt is needed.
>>
>> v2 -> v3:
>> - added missing timer debug output macro
>> - CPUTimer struct and typedef moved to cpu.h
>> - change CPU_SAVE_VERSION to 6, older save formats not supported
>>
>> v1 -> v2:
>> - new conversion helpers cpu_to_timer_ticks and timer_to_cpu_ticks
>> - save offset from clock source to implement cpu_tick_set_count
>> - renamed struct sun4u_timer to CPUTimer
>> - load and save cpu timers
>>
>> v0 -> v1:
>> - coding style
>
> My debugging of Linux panic has not been very fruitful. Once I got the
> panic triggered while single stepping calibrate_delay() with GDB and
> keeping enter key pressed. Then I missed the fault though.
>
> One possible problem is that 4dc28134f3d7db0033c6b3c5bc4be9a91adb3e2b
> added interrupt checks to the helpers which means that they can cause
> faults, but translation of the instructions was not changed to take
> this into account. But when I added calls to save_state() in
> translate.c, it didn't change anything.

The issue is with PUT_CWP64 - linux kernel does read cwp which
happens to be zero, decrements it and writes the result to cwp.
Expected value is max window id but we store zero cwp,
and return path from trap handler does restore wrong window.

I'll post the fix now, and then try to clean up the rest of timer patch.

-- 
Kind regards,
Igor V. Kovalenko

  reply	other threads:[~2010-01-26 23:09 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-19 22:25 [Qemu-devel] [PATCH] sparc64: reimplement tick timers v3 Igor V. Kovalenko
2010-01-22 20:32 ` Blue Swirl
2010-01-26 23:09   ` Igor Kovalenko [this message]
2010-01-27 18:02     ` Blue Swirl

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=b2fa41d61001261509y4b1b180brde0d9cf7c488b65d@mail.gmail.com \
    --to=igor.v.kovalenko@gmail.com \
    --cc=blauwirbel@gmail.com \
    --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).