qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Gleb Natapov <gleb@redhat.com>,
	glommer@redhat.com, qemu-devel@nongnu.org, blauwirbel@gmail.com,
	Isaku Yamahata <yamahata@valinux.co.jp>,
	alex.williamson@redhat.com
Subject: Re: [Qemu-devel] Re: [PATCH 5/5] RFC: distinguish warm reset from cold reset.
Date: Tue, 31 Aug 2010 17:03:54 +0300	[thread overview]
Message-ID: <4C7D0BCA.3050603@redhat.com> (raw)
In-Reply-To: <4C7D0A6E.8000302@codemonkey.ws>

  On 08/31/2010 04:58 PM, Anthony Liguori wrote:
> On 08/31/2010 08:46 AM, Avi Kivity wrote:
>>  On 08/31/2010 04:34 PM, Anthony Liguori wrote:
>>> On 08/31/2010 08:29 AM, Avi Kivity wrote:
>>>> Note, for most devices there's no difference.  x86 has INIT and 
>>>> RESET, with the keyboard controller RESET signal sometimes wired to 
>>>> INIT, and RAM doesn't have RESET.  Otherwise most devices don't see 
>>>> a difference.
>>>
>>> Yes, that's why I'm wondering if we can just get away with using a 
>>> simple reset() callback and for the handful of devices that don't do 
>>> a full reset, they can just move the state unaffected by warm reset 
>>> to ->init().
>>>
>>
>> This seems reasonable.
>
> But I'm still not sure whether the reset signal can be deliver based 
> on a pre-order transversal or whether a custom transversal was 
> required that each bus participates in.

There's no such thing as a global reset.  There's a trace on the board 
that's called RESET that's connected to many chip's RESET input (but 
perhaps not all).  A PCI bus controller will likely propagate its RESET 
input into the PCI reset signal, however it's called.  So individual 
RESET traces are connected by chips, which have different conditions for 
asserting them.

So yes, we need a custom traversal.  Some bus controllers will block off 
RESET completely, some will pass it through, some can reset the devices 
on their bus independently of the controller's RESET input, if it has one.

(but I think we're drifting off into pointlessness here)

>
>>> For cold reset, I'd rather approach it as a device destroy + 
>>> create.  This means that given a DeviceState, we need to collect 
>>> enough information to recreate the device.  I'm not 100% sure we 
>>> have that today but if we solve that problem, it means we can 
>>> migrate the device tree during migration which is a feature I'd 
>>> really like to see.
>>
>> Why do we need a cold reset at all?  it doesn't map to anything.
>
> That's why I'm suggesting a second-class approach to implementing it 
> if someone really wants it.

Sure.

-- 
error compiling committee.c: too many arguments to function

  parent reply	other threads:[~2010-08-31 14:04 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-30  7:49 [Qemu-devel] [PATCH 0/5] RFC: distinguish warm reset from cold reset Isaku Yamahata
2010-08-30  7:49 ` [Qemu-devel] [PATCH 1/5] sysemu.h, vl.c: static'fy qemu_xxx_requested() Isaku Yamahata
2010-08-30  7:49 ` [Qemu-devel] [PATCH 2/5] vl.c: consolidate qemu_xxx_requested() logic Isaku Yamahata
2010-08-30  7:49 ` [Qemu-devel] [PATCH 3/5] vl.c: consolidate qemu_system_xxx_request() logic Isaku Yamahata
2010-08-30  7:49 ` [Qemu-devel] [PATCH 4/5] vl.c: factor out qemu_reguster/unregister_reset() Isaku Yamahata
2010-08-30  7:49 ` [Qemu-devel] [PATCH 5/5] RFC: distinguish warm reset from cold reset Isaku Yamahata
2010-08-30  8:50   ` [Qemu-devel] " Paolo Bonzini
2010-08-30  9:38     ` Isaku Yamahata
2010-08-30  9:31       ` Paolo Bonzini
2010-08-30 13:03     ` Anthony Liguori
2010-08-30 19:16       ` Blue Swirl
2010-08-30 19:25         ` Anthony Liguori
2010-08-30 19:36           ` Blue Swirl
2010-08-30 20:10             ` Anthony Liguori
2010-08-30 12:59   ` Anthony Liguori
2010-08-31  2:58     ` Isaku Yamahata
2010-08-31 13:08       ` Anthony Liguori
2010-08-31 13:14         ` Gleb Natapov
2010-08-31 13:20           ` Anthony Liguori
2010-08-31 13:21             ` Gleb Natapov
2010-08-31 13:26               ` Anthony Liguori
2010-08-31 13:29                 ` Avi Kivity
2010-08-31 13:34                   ` Anthony Liguori
2010-08-31 13:46                     ` Avi Kivity
2010-08-31 13:58                       ` Anthony Liguori
2010-08-31 14:03                         ` Gleb Natapov
2010-08-31 14:03                         ` Avi Kivity [this message]
2010-08-31 15:00                           ` Anthony Liguori
2010-08-31 16:04                             ` Avi Kivity
2010-08-31 13:35                   ` Gleb Natapov
2010-08-30  7:59 ` [Qemu-devel] Re: [PATCH 0/5] " Avi Kivity
2010-08-30  8:35   ` Isaku Yamahata
2010-08-30 11:19     ` Gleb Natapov
2010-08-30 13:05       ` Anthony Liguori
2010-08-30 13:15         ` Gleb Natapov
2010-08-30 19:07       ` Blue Swirl
2010-08-31  5:26         ` Gleb Natapov
2010-08-30 13:04     ` Glauber Costa

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=4C7D0BCA.3050603@redhat.com \
    --to=avi@redhat.com \
    --cc=alex.williamson@redhat.com \
    --cc=anthony@codemonkey.ws \
    --cc=blauwirbel@gmail.com \
    --cc=gleb@redhat.com \
    --cc=glommer@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=yamahata@valinux.co.jp \
    /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).