From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47455) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bFyKD-0004u3-W1 for qemu-devel@nongnu.org; Thu, 23 Jun 2016 02:41:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bFyK8-0006gp-VJ for qemu-devel@nongnu.org; Thu, 23 Jun 2016 02:41:16 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:38256) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bFyK8-0006gk-N2 for qemu-devel@nongnu.org; Thu, 23 Jun 2016 02:41:12 -0400 Received: from pps.filterd (m0098409.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.11/8.16.0.11) with SMTP id u5N6cmk4010861 for ; Thu, 23 Jun 2016 02:41:11 -0400 Received: from e06smtp11.uk.ibm.com (e06smtp11.uk.ibm.com [195.75.94.107]) by mx0a-001b2d01.pphosted.com with ESMTP id 23q6ymw0m5-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Thu, 23 Jun 2016 02:41:11 -0400 Received: from localhost by e06smtp11.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 23 Jun 2016 07:41:09 +0100 Received: from b06cxnps4074.portsmouth.uk.ibm.com (d06relay11.portsmouth.uk.ibm.com [9.149.109.196]) by d06dlp01.portsmouth.uk.ibm.com (Postfix) with ESMTP id D707417D8042 for ; Thu, 23 Jun 2016 07:42:24 +0100 (BST) Received: from d06av04.portsmouth.uk.ibm.com (d06av04.portsmouth.uk.ibm.com [9.149.37.216]) by b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id u5N6f7dr61669614 for ; Thu, 23 Jun 2016 06:41:07 GMT Received: from d06av04.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av04.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id u5N6f6Wm015318 for ; Thu, 23 Jun 2016 00:41:07 -0600 Date: Thu, 23 Jun 2016 08:41:05 +0200 From: David Hildenbrand In-Reply-To: <20160622080552.GJ2450045@orkuz.home> References: <1466514153-85777-1-git-send-email-dahi@linux.vnet.ibm.com> <20160621164431.GI2048@thinpad.lan.raisama.net> <20160621190144.174c93cd@thinkpad-w530> <20160621203309.GK2048@thinpad.lan.raisama.net> <20160621210949.GH4783@orkuz.home> <20160622085140.06984206@thinkpad-w530> <20160622072621.GH2450045@orkuz.home> <20160622093449.6084d7d8@thinkpad-w530> <20160622075327.GI2450045@orkuz.home> <20160622095451.11a00cac@thinkpad-w530> <20160622080552.GJ2450045@orkuz.home> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Message-Id: <20160623084105.378bf055@thinkpad-w530> Subject: Re: [Qemu-devel] [RFC 00/28] s390x CPU models: exposing features List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jiri Denemark Cc: Eduardo Habkost , qemu-devel@nongnu.org, imammedo@redhat.com, cornelia.huck@de.ibm.com, borntraeger@de.ibm.com, fiuczy@linux.vnet.ibm.com, mimu@linux.vnet.ibm.com, libvir-list@redhat.com > On Wed, Jun 22, 2016 at 09:54:51 +0200, David Hildenbrand wrote: > > > On Wed, Jun 22, 2016 at 09:34:49 +0200, David Hildenbrand wrote: > > > > I think the coffee didn't do its work already :) . I wanted to write that we can > > > > _with_ this additional query. Meaning the involved overhead would be ok - in my > > > > opinion for s390x. > > > > > > > > What we could do to avoid one compare operation would be: > > > > > > > > a) Expand the host model > > > > b) Expand the target model (because on s390x we could have migration unsafe > > > > model) > > > > c) Work with the runnability information returned via query-cpu-definitions > > > > > > > > But as we have to do b) either way on s390x, we can directly do a compare > > > > operation. (which makes implementation a lot simpler, because libvirt then > > > > doesn't have to deal with any feature/model names). > > > > > > But why do you even need to do any comparison? Isn't it possible to let > > > QEMU do it when a domain starts? The thing is we should avoid doing > > > completely different things on each architecture. > > > > > > > Sure, QEMU will of course double check when starting the guest! So trying to > > start and failing is of course an option! So no check is needed if that is > > acceptable. > > Yeah, I think it's the safest and easiest option now. > > Jirka > Alright then, this RFC already handles that properly, so that seems to be solved. The question now is if you guys see a fundamental problem in the way we want to handle CPU models. Especially a) Having flexible, not migration safe CPU models that can be expanded to migration safe models (using the expansion interface). b) Letting QEMU carry out the task of comparing and baselining to be used for e.g. for "virsh cpu-baseline" or "virsh cpu-compare". c) Indicating the host model as the expansion of "-cpu host", e.g. for "virsh capabilities" (which says "host" for now for us). Also, it will be good to know if the "expansion" interface with parameters "full" or "migratable" is really helpful to you or if I should drop that and you will come up with an own "query-host-cpu". We are also planning to implement the "query-cpu-definitions" runnability information in the future, because as you said, it might be a good way to quickly indicate runnable CPU models. But we are most likely not going to use it for e.g. comparing or baselining or detection of runnability of a more complex cpu model (having a lot of feature changes). Thanks! David