From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56003) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bUeBL-0008Db-79 for qemu-devel@nongnu.org; Tue, 02 Aug 2016 14:12:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bUeBG-00034i-UG for qemu-devel@nongnu.org; Tue, 02 Aug 2016 14:12:46 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:7998 helo=mx0a-001b2d01.pphosted.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bUeBG-00034e-Ni for qemu-devel@nongnu.org; Tue, 02 Aug 2016 14:12:42 -0400 Received: from pps.filterd (m0098420.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.11/8.16.0.11) with SMTP id u72I92P4117028 for ; Tue, 2 Aug 2016 14:12:42 -0400 Received: from e06smtp12.uk.ibm.com (e06smtp12.uk.ibm.com [195.75.94.108]) by mx0b-001b2d01.pphosted.com with ESMTP id 24k0br0m2p-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Tue, 02 Aug 2016 14:12:42 -0400 Received: from localhost by e06smtp12.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 2 Aug 2016 19:12:40 +0100 Received: from b06cxnps4074.portsmouth.uk.ibm.com (d06relay11.portsmouth.uk.ibm.com [9.149.109.196]) by d06dlp02.portsmouth.uk.ibm.com (Postfix) with ESMTP id 33873219005E for ; Tue, 2 Aug 2016 19:12:04 +0100 (BST) Received: from d06av11.portsmouth.uk.ibm.com (d06av11.portsmouth.uk.ibm.com [9.149.37.252]) by b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id u72ICcHl23724452 for ; Tue, 2 Aug 2016 18:12:38 GMT Received: from d06av11.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av11.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id u72ICbhA027784 for ; Tue, 2 Aug 2016 12:12:37 -0600 Date: Tue, 2 Aug 2016 20:12:34 +0200 From: David Hildenbrand In-Reply-To: <20160802172830.GL3337@thinpad.lan.raisama.net> References: <1470139155-53900-1-git-send-email-dahi@linux.vnet.ibm.com> <20160802172830.GL3337@thinpad.lan.raisama.net> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Message-Id: <20160802201234.2413a3ff@thinkpad-w530> Subject: Re: [Qemu-devel] [Patch v1 00/29] s390x CPU models: exposing features List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eduardo Habkost Cc: qemu-devel@nongnu.org, jdenemar@redhat.com, imammedo@redhat.com, cornelia.huck@de.ibm.com, borntraeger@de.ibm.com, fiuczy@linux.vnet.ibm.com, mimu@linux.vnet.ibm.com > On Tue, Aug 02, 2016 at 01:58:46PM +0200, David Hildenbrand wrote: > [...] > > So we have: > > a) "query-cpu-model-expansion" - tell us what the "host" or another CPU > > model looks like. Either falling back to a static model or > > completely exposing all properties. > > The query-cpu-model-expansion interface looks good to me. I just > had a few comments about the interface documentation. > > > b) "query-cpu-model-comparison" - tell us how two CPU models compare, > > indicating which properties were responsible for the decision. > > c) "query-cpu-model-baseline" - create a new model out of two models, > > taking a requested level of stability into account. > > I miss a clearer specifiction of what are the actual requirements > and use cases of query-cpu-model-baseline. Is it related to > runnability? If so, how exactly? cpu-baseline and cpu-compare are only needed to make - "virsh cpu-compare" - "virsh cpu-baseline" work (see libvirt usecases below) These commands are needed to find/test runnability of a CPU model for a cluster in bigger installations by tooling. As libvirt won't have details about s390x models, we have to provide an interface so it can carry out these tasks. > > Related to that (as mentioned in my reply to patch 25/29), I > would like a clearer definintion of what "superset" and "subset" > mean exactly, in query-cpu-model-comparison. Likewise, I would > like to understand the requirements and use cases that make > "superset" and "subset" useful. I took these definitions from libvirt directly. Example: core2duo against my sandybridge $ virsh cpu-compare test.xml Host CPU is a superset of CPU described in test.xml Usually, you do a "virsh cpu-compare" against your host cpu model. Chances that the result is identical are very low. So depending on which one is the first model, you get superset or subset. So if A is a subset of B, A will run where B runs if A is a superset of B, B will run where A runs That means, if "cpu-compare" (against your host!) returns "identical" or "superset", you're good to go. If they are "incompatible" or "subset", you will have to use cpu-baseline to create a compatible model. Does that answer your question? > > > > > --------------------------------Libvirt usecase---------------------------- > > > > Testing for runability: > > - Simply try to start QEMU with KVM, compat machine, CPU model > > - Could be done using query-cpu-model-comparison in the future. > > > > Identifying host model, e.g. "virsh capabilities" > > - query-cpu-model-expansion on "host" with "-M none --enable-kvm" > > > > : > > - simply copy the identified host model > > AFAICS, this will work out of the box only if > query-cpu-model-expansion {name: "host"} > return a static CPU model name in return.model.name. Yes, that was also my impression. Thanks again! David