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
next prev 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).