public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: Scott Wood <scottwood@freescale.com>
Cc: Bhushan Bharat-R65777 <R65777@freescale.com>,
	Wood Scott-B07421 <B07421@freescale.com>,
	"<kvm-ppc@vger.kernel.org>" <kvm-ppc@vger.kernel.org>,
	"<kvm@vger.kernel.org>" <kvm@vger.kernel.org>,
	"<bharatb.yadav@gmail.com>" <bharatb.yadav@gmail.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Kumar Gala <galak@kernel.crashing.org>,
	Avi Kivity <avi@redhat.com>
Subject: Re: [PATCH 2/2 v2] KVM: PPC: booke: Add watchdog emulation
Date: Tue, 17 Jul 2012 18:51:44 +0200	[thread overview]
Message-ID: <50059820.7050305@suse.de> (raw)
In-Reply-To: <5005925A.7090502@freescale.com>

On 07/17/2012 06:27 PM, Scott Wood wrote:
> On 07/17/2012 09:35 AM, Alexander Graf wrote:
>> On 07/17/2012 04:13 PM, Bhushan Bharat-R65777 wrote:
>>>> -----Original Message-----
>>>> From: kvm-ppc-owner@vger.kernel.org
>>>> [mailto:kvm-ppc-owner@vger.kernel.org] On
>>>> Behalf Of Alexander Graf
>>>> Sent: Tuesday, July 17, 2012 7:31 PM
>>>> To: Bhushan Bharat-R65777
>>>> Cc: Wood Scott-B07421; <kvm-ppc@vger.kernel.org>; <kvm@vger.kernel.org>;
>>>> <bharatb.yadav@gmail.com>; Benjamin Herrenschmidt; Kumar Gala; Avi
>>>> Kivity
>>>> Subject: Re: [PATCH 2/2 v2] KVM: PPC: booke: Add watchdog emulation
>>>>
>>>> On 07/17/2012 03:15 PM, Bhushan Bharat-R65777 wrote:
>>>>>> -----Original Message-----
>>>>>> From: kvm-ppc-owner@vger.kernel.org
>>>>>> [mailto:kvm-ppc-owner@vger.kernel.org] On Behalf Of Alexander Graf
>>>>>> Sent: Tuesday, July 17, 2012 6:22 PM
>>>>>> To: Bhushan Bharat-R65777
>>>>>> Cc: Wood Scott-B07421; <kvm-ppc@vger.kernel.org>;
>>>>>> <kvm@vger.kernel.org>; <bharatb.yadav@gmail.com>; Benjamin
>>>>>> Herrenschmidt; Kumar Gala; Avi Kivity
>>>>>> Subject: Re: [PATCH 2/2 v2] KVM: PPC: booke: Add watchdog emulation
>>>>>>
>>>>>> On 07/17/2012 11:57 AM, Bhushan Bharat-R65777 wrote:
>>>>>>> Is not setting the TSR.WRS atomic here (cmpxchg() will handle this)?
>>>>>> Final expiration sets TCR. TSR should be ok.
>>>>> It is clearing some TCR bits :)
>>>>>
>>>>> Let us move the TCR clearing to userspace (please see below response
>>>>> ^^). Then
>>>> it is just setting TSR. Right?
>>>>
>>>> Then TSR is still set, right? So we don't set it, it just keeps on
>>>> being 1. We
>>>> need to trigger another expired event in that if branch now.
>>> I am sorry Alex but I did not get you.
>>>
>>> What I meant was that you were having concern that dec is atomic while
>>> watchdog final expiration (complex) is not atomic, but if we move the
>>> TCR.WRC clearing to userspace on final expiration then are you ok with
>>> current code?
>> If we move the final expiration TCR.WRC clearing out of that branch, you
>> don't have any condition left to check if we are in the final expiration
>> path.
> I don't follow.
>
> Determining whether we're on final expiration is based only on the
> previous value of TSR[ENW,WIS] when the timer expires.  We look at TCR
> to determine whether we need to actually exit to QEMU (as opposed to a
> final expiration with no action, which still should result in the timer
> being stopped), but I don't see any problematic races there as long as
> we don't try to update TCR from that context.

Yeah, what I was trying to say is that I would like to keep the TSR 
state unmodified for the final expiry case. If user space decides to not 
act upon it, it should be able to call into VCPU_RUN and have the same 
behavior as if the watchdog never expired.

So there needs to be a check whether we return to user space based on 
TCR, yes. But we shouldn't modify TSR or TCR in that branch. We only 
trigger an event saying "return to user space with a watchdog expired exit".

Then user space can decide whether to act on it. If it decides to ignore 
it, we don't have an oddball TSR.WRS state lingering around that'd need 
clearing.

That way we can put a single if (watchdog_enabled) on the qemu bubble-up 
event injection. If it's not enabled, it'd be as if TCR.WRC is 0 and the 
watchdog expired without action. If it's enabled, user space can decide 
to fire it up again if it deems it necessary.


Alex

>
>> So you need to set some other bit somewhere (eventually
>> pending_exceptions probably) that indicates that we need to return to
>> user space.
> We should do that to simplify other parts of the code, but I'm not sure
> what it has to do with TCR[WRC].
>
> -Scott
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



  reply	other threads:[~2012-07-17 16:51 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-09 10:34 [PATCH 2/2 v2] KVM: PPC: booke: Add watchdog emulation Bharat Bhushan
2012-07-16 17:18 ` Alexander Graf
2012-07-17  1:02   ` Scott Wood
2012-07-17  7:20     ` Alexander Graf
2012-07-17  9:57       ` Bhushan Bharat-R65777
2012-07-17 12:51         ` Alexander Graf
2012-07-17 13:15           ` Bhushan Bharat-R65777
2012-07-17 14:01             ` Alexander Graf
2012-07-17 14:13               ` Bhushan Bharat-R65777
2012-07-17 14:35                 ` Alexander Graf
2012-07-17 16:10                   ` Bhushan Bharat-R65777
2012-07-17 16:27                   ` Scott Wood
2012-07-17 16:51                     ` Alexander Graf [this message]
2012-07-17 18:00                       ` Scott Wood
2012-07-17 11:31     ` Bhushan Bharat-R65777
2012-07-17 16:37       ` Scott Wood
2012-07-17 16:56         ` Bhushan Bharat-R65777
2012-07-17 17:00           ` Scott Wood
2012-07-17 17:10             ` Bhushan Bharat-R65777
2012-07-17 17:25               ` Scott Wood
2012-07-17 17:29                 ` Bhushan Bharat-R65777

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=50059820.7050305@suse.de \
    --to=agraf@suse.de \
    --cc=B07421@freescale.com \
    --cc=R65777@freescale.com \
    --cc=avi@redhat.com \
    --cc=benh@kernel.crashing.org \
    --cc=bharatb.yadav@gmail.com \
    --cc=galak@kernel.crashing.org \
    --cc=kvm-ppc@vger.kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=scottwood@freescale.com \
    /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