All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson@hp.com>
To: Avi Kivity <avi@qumranet.com>
Cc: Anthony Liguori <aliguori@us.ibm.com>, kvm-devel <kvm@vger.kernel.org>
Subject: Re: Re: [kvm-devel] [PATCH 2/5] SCI fixes (v2)
Date: Wed, 28 May 2008 06:37:50 -0600	[thread overview]
Message-ID: <1211978270.14859.40.camel@bling> (raw)
In-Reply-To: <483CFB6D.3070302@qumranet.com>

On Wed, 2008-05-28 at 09:27 +0300, Avi Kivity wrote:
> This is
> > commit ce35c9534137b71327466fa9abc243cbe2d7e8dc
> > Author: Avi Kivity <avi@qumranet.com>
> > Date:   Wed Jan 2 12:52:28 2008 +0200
> >
> >     kvm: qemu: fix power management timer overflow handling
> >     
> >     The PMSTS overflow bit needs to be set each time bit 23 of the pm 
> > timer
> >     is toggled.  This means we need to adjust the overflow time every time
> >     we have an overflow.
> >     
> >     Taken from qemu patch by TeLeMan in
> >     
> >     http://www.mail-archive.com/qemu-devel@nongnu.org/msg14680.html
> 
> And, like the explanation says, we have to advance the overflow time in 
> order to get an interrupt.  Is there something horribly broken?

Yeah, it kinda seems like there is.  With this change, the timer expires
and we go through this path:

pm_tmr_timer()
	-> pm_update_sci()
		-> get_pmsts()
		-> qemu_set_irq() [but not for a TMFOF_EN]
		-> qemu_mod_timer()
		bump tmr_overlfow_time

We bumped tmr_overflow_time in pm_update_sci after setting the timer to
expire on the old value.  Unless something goes horribly wrong with
timers, we'll always get the timer event before overflow time and
get_pmsts never adds in the TMROF_EN bit to the status flag.  We
therefore never toggle the SCI interrupt because of a timer overflow,
and we never report a timer overflow status to the guest.

The author of this patch is correct that the timer in the original code
only goes off a couple times before we del_timer().  However, I think
the way it's supposed to work is that we set the timer overflow status,
toggle the SCI, then wait for the OSPM to come in through
pm_ioport_writew() to clear the timer overflow status, at which point we
call pm_update_sci() mod_timer and start it all over again.  At least
that's the way I see it working after removing this change.

It doesn't make much sense to bump tmr_overflow_time so that we never
hit it, unless I'm completely misunderstanding the code.  Thanks,

	Alex
 
-- 
Alex Williamson                             HP Open Source & Linux Org.


  reply	other threads:[~2008-05-28 12:37 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-04 15:11 [PATCH 0/5] Support for the Kernel Virtual Machine interface (v3) Anthony Liguori
2008-02-04 15:11 ` [Qemu-devel] " Anthony Liguori
     [not found] ` <1202137865-20232-1-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-02-04 15:11   ` [PATCH 1/5] Use correct types to enable > 2G support (v3) Anthony Liguori
2008-02-04 15:11     ` [Qemu-devel] " Anthony Liguori
     [not found]     ` <1202137865-20232-2-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-02-04 15:29       ` Izik Eidus
2008-02-04 15:29         ` [Qemu-devel] Re: [kvm-devel] " Izik Eidus
     [not found]         ` <1202138985.18306.7.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2008-02-04 15:33           ` Anthony Liguori
2008-02-04 15:33             ` [Qemu-devel] Re: [kvm-devel] " Anthony Liguori
     [not found]             ` <47A73040.3030501-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2008-02-04 15:43               ` Izik Eidus
2008-02-04 15:43                 ` [Qemu-devel] Re: [kvm-devel] " Izik Eidus
2008-02-04 15:31       ` Anthony Liguori
2008-02-04 15:31         ` [Qemu-devel] Re: [kvm-devel] " Anthony Liguori
2008-04-08 21:50     ` [Qemu-devel] " Aurelien Jarno
2008-04-08 21:50       ` Aurelien Jarno
2008-04-09 19:52       ` [Qemu-devel] [PATCH 1/5] Use correct types toenable " Sebastian Herbszt
2008-04-09 19:52         ` Sebastian Herbszt
2008-02-04 15:11   ` [PATCH 2/5] SCI fixes (v2) Anthony Liguori
2008-02-04 15:11     ` [Qemu-devel] " Anthony Liguori
2008-05-27  3:05     ` [kvm-devel] " Alex Williamson
2008-05-27 18:28       ` Anthony Liguori
2008-05-28  6:27         ` Avi Kivity
2008-05-28 12:37           ` Alex Williamson [this message]
2008-05-28 13:06             ` Avi Kivity
2008-05-28 21:50               ` Alex Williamson
2008-05-28 21:50                 ` [Qemu-devel] Re: [kvm] " Alex Williamson
2008-02-04 15:11   ` [PATCH 3/5] Fix daemonize options (v2) Anthony Liguori
2008-02-04 15:11     ` [Qemu-devel] " Anthony Liguori
2008-02-04 15:11   ` [PATCH 4/5] Tell BIOS about the number of CPUs (v2) Anthony Liguori
2008-02-04 15:11     ` [Qemu-devel] " Anthony Liguori
2008-02-04 15:11   ` [PATCH 5/5] QEMU support for the Kernel Virtual Machine interface (v3) Anthony Liguori
2008-02-04 15:11     ` [Qemu-devel] " Anthony Liguori

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=1211978270.14859.40.camel@bling \
    --to=alex.williamson@hp.com \
    --cc=aliguori@us.ibm.com \
    --cc=avi@qumranet.com \
    --cc=kvm@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.