From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49991) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VdrYM-0006Zc-UL for qemu-devel@nongnu.org; Tue, 05 Nov 2013 20:05:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VdrYG-0002aX-GN for qemu-devel@nongnu.org; Tue, 05 Nov 2013 20:05:02 -0500 Message-ID: <1383699866.25829.105.camel@snotra.buserror.net> From: Scott Wood Date: Tue, 5 Nov 2013 19:04:26 -0600 In-Reply-To: <44254A54-5000-49B7-ACFA-43EB048A5D98@suse.de> References: <1383527453-6489-1-git-send-email-aik@ozlabs.ru> <50BDF498-54CD-45C6-AB84-F7F1252FD8F6@suse.de> <1383594148.25829.6.camel@snotra.buserror.net> <5278494D.7050809@ozlabs.ru> <1383616086.25829.53.camel@snotra.buserror.net> <44254A54-5000-49B7-ACFA-43EB048A5D98@suse.de> Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v3] ppc: introduce CPUPPCState::cpu_dt_id List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Graf Cc: Alexey Kardashevskiy , QEMU Developers , Bharat Bhushan , Paolo Bonzini , Paul Mackerras , Badari Pulavarty , "list@suse.de:PReP" , David Gibson On Tue, 2013-11-05 at 07:00 +0100, Alexander Graf wrote: > > Am 05.11.2013 um 02:48 schrieb Scott Wood : > > > On Tue, 2013-11-05 at 12:26 +1100, Alexey Kardashevskiy wrote: > >> On 11/05/2013 06:42 AM, Scott Wood wrote: > >>> On Mon, 2013-11-04 at 10:41 +0100, Alexander Graf wrote: > >>>> What we really have are 3 semantically separate entities: > >>>> > >>>> * QEMU internal cpu id > >>>> * KVM internal cpu id > >>>> * DT exposed cpu id > >>>> > >>>> As you have noted, it's a good idea to keep the QEMU internal cpu id > >>>> linear, thus completely separate from the others. The DT exposed cpu id > >>>> should be 100% local to hw/ppc/spapr*.c. I don't think any code outside > >>>> of the DT generation and anything that accesses the "Virtual Processor > >>>> Number" in sPAPR needs to care about the DT cpu id. All that code is > >>>> 100% KVM agnostic. > >>> > >>> This patch isn't just for sPAPR... On e500 the DT cpu id is supposed to > >>> match the MPIC cpu id. > >> > >> > >> At least is my patch correct for e500? > > > > I think so. > > > >> I do not really know what is the difference between e500 and spapr in this part. > > > > e500 does not have sPAPR, and if the DT ID is "100% local to > > hw/ppc/spapr*.c" then the MPIC code will have a problem. > > > > Currently we don't support smt on e500 in QEMU, but e6500 (an > > e500-derivative) does have smt, so it could happen in the future. > > Sure, at that point we add logic that syncs the kvm and dt ids to whatever the kernel expects from the e500 machine file. > > The current logic that says "every Nth vcpu id is a core, the ones in > between are threads" is fairly implementation specific to the spapr hv > code, no? It's the same on e6500, though I agree that in theory it should not be generic code specifying the scheme. My point relates to the consumer of this information -- "device tree CPU ID" is a concept that makes sense outside of sPAPR. Note that the connection between the interrupt controller and the CPU reg is an ePAPR requirement, not just a coincidence, or something we only do on MPIC. PIR is also supposed to match the device tree CPU ID -- especially under KVM, where PIR is not modifiable by the guest, in the absence of a device tree binding specifically for PIR which we do not have. -Scott