Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp1321697imm; Thu, 23 Aug 2018 00:43:44 -0700 (PDT) X-Google-Smtp-Source: ANB0Vda81MqxQ6oyeu1z/rf6HgnWi5IymGwVNZ16RMUWjLdXOrfJWg8aiW1w8JioRw9JEztmrftm X-Received: by 2002:a17:902:e109:: with SMTP id cc9-v6mr10210388plb.96.1535010224841; Thu, 23 Aug 2018 00:43:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1535010224; cv=none; d=google.com; s=arc-20160816; b=PWv1QPI2Mg8LqqOk/bVJCyRmoKVLJVI2SZLfWz9z7FhQTeutpUQ6QylgeBopDNsrTj xCmIGz1+xQfQFjccQkRUAPYuZMTvpvqyySWpo9X4uZ+pAwgfgP8YAPAiEMN0+MeLH9Js diaEY5oBtQP3v7RN7rYKr78MX9L4z7JEKoAVY19VPgwADmOxJnAC2XhQTdZss10FhIHD FgzYnl5xxhlKYwYm7i8aChowdV2hIGevVQGW5JXFt+m4FLRt/kf8w9390mOq1ieEM6w4 YU4ZTjrWm+xihAMgqc+FjDTnymeZUJI2WpLlK0PPzzf7+ZWlPx5E74YurN5GD4znV9Hp aW7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:autocrypt:openpgp:from:references:cc:to :subject:arc-authentication-results; bh=dZS1zXfBY+RWs3wJqPliqHuIm16q2gQCItNZ/DhH7TA=; b=XW+Psm8+QNFkH4TcBkO44lfuAMK8OxTd/Q6P2HswJ5+9bstqeOqhh2qMC3a9S9x1aE ixpRNSa3JTx+Ivx8ljdSZ6xgDVbvt8/t2bH5tC+6dUvPP3acV3g+aCNJvfpnZEgeYYXf sgyQ8QT5wKwHCMpIykHHc4sepiaHEg8wmXneWaDYhIYE1yD/XYeWLeOIEUDclf3fK0Za q1XDjaDnMQNsqPHY2rSbaKLOcVEF5y2eNevf1xIYox33A5xs7cC72UVYP1KCZuT0gzWK 2CZdhyChpGnxOs57WHpIa8MaJybXFeOAmWUdJtYDfCgsVCJEf+d4JCjekhqThUSYbqQV 9qFQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id bc6-v6si3557676plb.115.2018.08.23.00.43.30; Thu, 23 Aug 2018 00:43:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726995AbeHWLKk (ORCPT + 99 others); Thu, 23 Aug 2018 07:10:40 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:32886 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726573AbeHWLKk (ORCPT ); Thu, 23 Aug 2018 07:10:40 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B46007B2B1; Thu, 23 Aug 2018 07:42:19 +0000 (UTC) Received: from [10.36.117.65] (ovpn-117-65.ams2.redhat.com [10.36.117.65]) by smtp.corp.redhat.com (Postfix) with ESMTP id 400362026DE4; Thu, 23 Aug 2018 07:42:13 +0000 (UTC) Subject: Re: [PATCH v9 21/22] KVM: s390: CPU model support for AP virtualization To: Tony Krowiak , pmorel@linux.ibm.com, Tony Krowiak , linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: freude@de.ibm.com, schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com, borntraeger@de.ibm.com, cohuck@redhat.com, kwankhede@nvidia.com, bjsdjshi@linux.vnet.ibm.com, pbonzini@redhat.com, alex.williamson@redhat.com, pmorel@linux.vnet.ibm.com, alifm@linux.vnet.ibm.com, mjrosato@linux.vnet.ibm.com, jjherne@linux.vnet.ibm.com, thuth@redhat.com, pasic@linux.vnet.ibm.com, berrange@redhat.com, fiuczy@linux.vnet.ibm.com, buendgen@de.ibm.com, frankja@linux.ibm.com References: <1534196899-16987-1-git-send-email-akrowiak@linux.vnet.ibm.com> <1534196899-16987-22-git-send-email-akrowiak@linux.vnet.ibm.com> <2c2c4859-ed3e-a492-dd59-78529c7768b2@redhat.com> <9f512d55-ef10-e2ae-f34e-e003c929bc3f@linux.ibm.com> From: David Hildenbrand Openpgp: preference=signencrypt Autocrypt: addr=david@redhat.com; prefer-encrypt=mutual; keydata= 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 SE+xAvmumFBY Organization: Red Hat GmbH Message-ID: Date: Thu, 23 Aug 2018 09:42:12 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.1]); Thu, 23 Aug 2018 07:42:19 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.1]); Thu, 23 Aug 2018 07:42:19 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'david@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 22.08.2018 23:05, Tony Krowiak wrote: > On 08/22/2018 12:57 PM, David Hildenbrand wrote: >>>>> In this case we will have no problem with older guests not having idea >>>>> about APXA. >>>>> >>>>> Would it be a solution? >>>> Any feature the guest sees, should be part of the CPU model. The whole >>>> environment for cpu subfunctions is already in place both in KVM and >>>> QEMU. Only disabling subfunctions in KVM is not implemented yet. >>>> >>>> You can exclude any subfunctions/facilities that are only valid on LPAR >>>> level and cannot be used in some guest either way. (that makes life >>>> sometimes easier) >>>> >>>> >>>> I know that this might sound a little bit complicated, but it really >>>> isn't. Boils down to modifying kvm_s390_cpu_feat_init() and specifying >>>> some features+feature groups in QEMU. >>> OK, we definitively need another patch/patch-set, to handle this. >>> Do you think it can be done in another series since if we always support >>> APXA when we have AP instructions, we already have an indication that >>> APXA exist: the AP facility. >>> >> Please implement the subfunction stuff right away. This will allow to >> handle all future facilities transparently from a kernel POV. > > I find your use of the term 'subfunction' confusing here. In the > kvm_s390_cpu_feat_init(void) function, it looks like the > kvm_s390_available_subfunc structure is filled in with bits > returned from CPACF queries of various MSA facilities to indicate > which CPACF functions are supported. APXA is not a subfunction but > a facility that is indicated by a bit returned from the PQAP(QCI) > instruction. If we are to implement this, wouldn't it be done as > a CPU model feature as opposed to a subfunction? Am I > misunderstanding what you are asking for? Yes, "subfunction" is a confusing terminology. (I once called it subfeature/sufacility, but ended up using subfunction). From a high level perspective, these are just feature bits - "can I use feature X" / "is feature X available". What all of these "query" blocks (MSA, PLO, PQAP(QCI) ...) have in common is: - in contrast to STFL(E), they are as a default not modified by the hypervisor but silently passed through - dropping one of the bits (e.g. APXA) can break the guest - guest visible ABI - any newly added feature/facility in such a block (new HW generation) should be transparently handled by HW and not require modifications in the hypervisor - because they are right away presented to the guest. (unfortunately with minor exceptions - e.g. APXA might be such a candidate, but that was rather a design error back then) - there is a way we can overwrite which features are presented to the guest The nice thing about that "blob" exported to user space (in contrast to features) is that it does not have to be fixed up in KVM every time a new feature/facility is added. As they should be transparently handled. Only QEMU has to be thought about the new feature - which can be done right away when introducing the new CPU model. That's why the natural choice for PQAP(QCI) is also exposing it as subfunctions, and not as CPU model features (kvm interface). -- Thanks, David / dhildenb