From: Paolo Bonzini <pbonzini@redhat.com>
To: "Andreas Färber" <afaerber@suse.de>
Cc: Eduardo Habkost <ehabkost@redhat.com>,
Nadav Amit <namit@cs.technion.ac.il>,
mst@redhat.com, qemu-devel@nongnu.org,
Igor Mammedov <imammedo@redhat.com>,
nadav.amit@gmail.com, rth@twiddle.net
Subject: Re: [Qemu-devel] target-i386: clear bsp bit when designating bsp
Date: Tue, 07 Apr 2015 15:54:11 +0200 [thread overview]
Message-ID: <5523E183.9000805@redhat.com> (raw)
In-Reply-To: <5523DE35.5050103@suse.de>
On 07/04/2015 15:40, Andreas Färber wrote:
> Am 07.04.2015 um 15:29 schrieb Paolo Bonzini:
>> On 07/04/2015 15:24, Andreas Färber wrote:
>>>>> /* We hard-wire the BSP to the first CPU. */
>>>>> if (s->cpu_index == 0) {
>>>>> apic_designate_bsp(cpu->apic_state);
>>>>> }
>>> I know, that's what this patch is changing, and I am saying that by the
>>> same logic the CPU has no business fiddling with the APIC's apicbase
>>> field when the APIC's reset is touching that very same field.
>>
>> That's exactly what a real CPU does on power up or #RESET, though.
>
> Does the APIC retain its BSP bit value on #RESET though? I doubt it.
You cannot tell, since the MP protocol reruns immediately after a full
reset. I think we do this in apic_cpu_reset to avoid mess with the
initialization order of the APIC and CPU.
> It feels we're awkwardly working around qdev reset semantics here...
>
> If you say the CPU must be in charge, then we should assure that the
> APIC is reset before the CPU designates it and not have the APIC reset
> callback retain such bits.
Yes, I agree, but as you know very well the propagation of signals (be
it "reset" or "realize") is a mess.
Even if you make the APIC a QOM child of the CPU, this doesn't mean that
qdev reset (which is post-order) propagates to the APIC before
propagating to the CPU.
> Admittedly, if this were for-2.3 (as which it is not marked) then this
> patch may be the least intrusive. But it isn't and I've been preparing
> to refactor the CPU-APIC relationship, so I really want to get it right
> long-term.
Well, actually I did post it for inclusion in 2.3 since it affected only
KVM and it would be ugly to have 4.0 fail kvm-unit-tests with all
existing QEMU releases.
Paolo
next prev parent reply other threads:[~2015-04-07 13:54 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-01 23:58 [Qemu-devel] target-i386: clear bsp bit when designating bsp Nadav Amit
2015-04-02 12:34 ` Paolo Bonzini
2015-04-07 10:15 ` Andreas Färber
2015-04-07 10:34 ` Paolo Bonzini
2015-04-07 10:44 ` Andreas Färber
2015-04-07 10:54 ` Paolo Bonzini
2015-04-07 11:09 ` Andreas Färber
2015-04-07 11:57 ` Andreas Färber
2015-04-07 13:14 ` Igor Mammedov
2015-04-07 13:24 ` Andreas Färber
2015-04-07 13:29 ` Paolo Bonzini
2015-04-07 13:40 ` Andreas Färber
2015-04-07 13:54 ` Paolo Bonzini [this message]
2015-04-07 13:18 ` Paolo Bonzini
2015-04-07 13:26 ` Denis V. Lunev
2015-04-07 13:29 ` Paolo Bonzini
2015-04-07 13:44 ` Denis V. Lunev
2015-04-07 13:47 ` Andreas Färber
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=5523E183.9000805@redhat.com \
--to=pbonzini@redhat.com \
--cc=afaerber@suse.de \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=mst@redhat.com \
--cc=nadav.amit@gmail.com \
--cc=namit@cs.technion.ac.il \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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).