mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: Tony Krowiak <akrowiak@linux.ibm.com>,
	pmorel@linux.ibm.com, Tony Krowiak <akrowiak@linux.vnet.ibm.com>,
	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
Subject: Re: [PATCH v9 21/22] KVM: s390: CPU model support for AP virtualization
Date: Thu, 23 Aug 2018 09:42:12 +0200	[thread overview]
Message-ID: <d921be51-42a0-b819-39b0-59f06fd587cb@redhat.com> (raw)
In-Reply-To: <abd85777-b7db-ee42-1c7b-7131d3475fe0@linux.ibm.com>

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

  reply	other threads:[~2018-08-23  7:42 UTC|newest]

Thread overview: 138+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-13 21:47 [PATCH v9 00/22] guest dedicated crypto adapters Tony Krowiak
2018-08-13 21:47 ` [PATCH v9 01/22] s390/zcrypt: Add ZAPQ inline function Tony Krowiak
2018-08-13 21:47 ` [PATCH v9 02/22] s390/zcrypt: Review inline assembler constraints Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 03/22] s390/zcrypt: Show load of cards and queues in sysfs Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 04/22] s390/zcrypt: Integrate ap_asm.h into include/asm/ap.h Tony Krowiak
2018-08-14  8:43   ` Cornelia Huck
2018-08-17 13:18     ` Tony Krowiak
2018-08-17 13:27       ` Cornelia Huck
2018-08-17 19:09         ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 05/22] KVM: s390: vsie: simulate VCPU SIE entry/exit Tony Krowiak
2018-08-14  8:50   ` Cornelia Huck
2018-08-14 12:46     ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 06/22] KVM: s390: introduce and use KVM_REQ_VSIE_RESTART Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 07/22] KVM: s390: refactor crypto initialization Tony Krowiak
2018-08-20 16:41   ` David Hildenbrand
2018-08-20 20:33     ` Tony Krowiak
2018-08-20 20:41       ` David Hildenbrand
2018-08-21 13:29         ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 08/22] s390: vfio-ap: base implementation of VFIO AP device driver Tony Krowiak
2018-08-14 10:42   ` Cornelia Huck
2018-08-14 23:30     ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 09/22] s390: vfio-ap: register matrix device with VFIO mdev framework Tony Krowiak
2018-08-14 11:19   ` Cornelia Huck
2018-08-15 16:51     ` Tony Krowiak
2018-08-16 16:24     ` Tony Krowiak
2018-08-17  8:43       ` Cornelia Huck
2018-08-17 19:02         ` Tony Krowiak
2018-09-06  8:49   ` Pierre Morel
2018-09-10 13:38     ` Tony Krowiak
2018-09-10 21:58       ` Halil Pasic
2018-08-13 21:48 ` [PATCH v9 10/22] s390: vfio-ap: sysfs interfaces to configure adapters Tony Krowiak
2018-08-15  9:52   ` Cornelia Huck
2018-08-15 16:59     ` Tony Krowiak
2018-08-16  7:30       ` Cornelia Huck
2018-08-17 13:23         ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 11/22] s390: vfio-ap: sysfs interfaces to configure domains Tony Krowiak
2018-08-15 12:05   ` Cornelia Huck
2018-08-15 17:00     ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 12/22] s390: vfio-ap: sysfs interfaces to configure control domains Tony Krowiak
2018-08-20 14:23   ` Cornelia Huck
2018-08-20 16:43     ` Halil Pasic
2018-08-20 17:41     ` Tony Krowiak
2018-08-21 15:25       ` Cornelia Huck
2018-08-21 17:07         ` Tony Krowiak
2018-08-21 23:18           ` Halil Pasic
2018-08-22  9:42             ` Cornelia Huck
2018-08-22 10:43               ` Halil Pasic
2018-08-22 11:03               ` Pierre Morel
2018-08-22 15:11                 ` Christian Borntraeger
2018-08-22 15:34                   ` Pierre Morel
2018-08-22 15:48                     ` Christian Borntraeger
2018-08-22 15:53                       ` Pierre Morel
2018-08-22 17:11                       ` Halil Pasic
2018-08-22 19:16                         ` Tony Krowiak
2018-08-23  9:26                           ` Halil Pasic
2018-08-23 10:41                             ` Pierre Morel
2018-08-23 10:25                           ` Cornelia Huck
2018-08-23 10:43                             ` Pierre Morel
2018-08-23 11:31                               ` Cornelia Huck
2018-08-23 11:44                                 ` Pierre Morel
2018-08-23 14:16                             ` Tony Krowiak
2018-08-27  8:33                               ` Cornelia Huck
2018-08-27 13:47                                 ` Tony Krowiak
2018-08-27 13:51                                   ` Cornelia Huck
2018-08-27 15:39                                     ` Halil Pasic
2018-09-10 13:27                                     ` Tony Krowiak
2018-08-22 15:18               ` Tony Krowiak
2018-08-22 14:31             ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 13/22] s390: vfio-ap: sysfs interface to view matrix mdev matrix Tony Krowiak
2018-08-20 14:08   ` Cornelia Huck
2018-09-12 17:01     ` Tony Krowiak
2018-09-13  9:12       ` Halil Pasic
2018-08-13 21:48 ` [PATCH v9 14/22] KVM: s390: interfaces to clear CRYCB masks Tony Krowiak
2018-08-15 13:10   ` Cornelia Huck
2018-08-15 17:55     ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 15/22] s390: vfio-ap: implement mediated device open callback Tony Krowiak
2018-08-15 16:08   ` Cornelia Huck
2018-08-15 18:21     ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 16/22] s390: vfio-ap: implement VFIO_DEVICE_GET_INFO ioctl Tony Krowiak
2018-08-20 14:24   ` Cornelia Huck
2018-08-13 21:48 ` [PATCH v9 17/22] s390: vfio-ap: zeroize the AP queues Tony Krowiak
2018-08-15 16:24   ` Cornelia Huck
2018-08-15 20:36     ` Tony Krowiak
2018-08-17  9:34       ` Cornelia Huck
2018-08-13 21:48 ` [PATCH v9 18/22] s390: vfio-ap: implement VFIO_DEVICE_RESET ioctl Tony Krowiak
2018-08-15 16:38   ` Cornelia Huck
2018-08-15 21:05     ` Tony Krowiak
2018-08-17  9:38       ` Cornelia Huck
2018-08-17 19:03         ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 19/22] KVM: s390: Clear Crypto Control Block when using vSIE Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 20/22] KVM: s390: Handling of Cypto control block in VSIE Tony Krowiak
2018-08-21  8:30   ` David Hildenbrand
2018-08-13 21:48 ` [PATCH v9 21/22] KVM: s390: CPU model support for AP virtualization Tony Krowiak
2018-08-20 14:26   ` Cornelia Huck
2018-08-21  8:03   ` David Hildenbrand
2018-08-22 11:19   ` David Hildenbrand
2018-08-22 11:24     ` David Hildenbrand
2018-08-22 20:16       ` Tony Krowiak
2018-08-23  7:44         ` David Hildenbrand
2018-08-23 10:00           ` Halil Pasic
2018-08-23 10:28             ` David Hildenbrand
2018-08-23 11:10               ` Pierre Morel
2018-08-23 11:12                 ` David Hildenbrand
2018-08-23 12:47                   ` Pierre Morel
2018-08-23 13:22                     ` Halil Pasic
2018-08-23 13:38                       ` David Hildenbrand
2018-08-23 14:59                         ` Pierre Morel
2018-08-23 17:35                           ` Tony Krowiak
2018-08-23 17:40                             ` David Hildenbrand
2018-08-24 10:28                               ` Halil Pasic
2018-08-22 14:33     ` Pierre Morel
2018-08-22 15:04       ` David Hildenbrand
2018-08-22 15:50         ` Pierre Morel
2018-08-22 16:57           ` David Hildenbrand
2018-08-22 21:05             ` Tony Krowiak
2018-08-23  7:42               ` David Hildenbrand [this message]
2018-08-22 20:54     ` Tony Krowiak
2018-08-23  7:48       ` David Hildenbrand
2018-08-23  8:24         ` Cornelia Huck
2018-09-12 17:42           ` Tony Krowiak
2018-09-17  7:57             ` David Hildenbrand
2018-08-23  8:26         ` Pierre Morel
2018-08-13 21:48 ` [PATCH v9 22/22] s390: doc: detailed specifications " Tony Krowiak
2018-08-20 16:03   ` Cornelia Huck
2018-08-20 20:16     ` Tony Krowiak
2018-08-21 16:13       ` Cornelia Huck
2018-08-21 19:21         ` Tony Krowiak
2018-08-21 18:54       ` Halil Pasic
2018-08-22  7:38         ` Cornelia Huck
2018-08-21  9:00     ` Harald Freudenberger
2018-08-21 15:53       ` Cornelia Huck
2018-08-22  7:04         ` Harald Freudenberger
2018-08-22 10:09           ` Cornelia Huck
2018-08-22 10:13         ` Harald Freudenberger
2018-08-22 10:45           ` Halil Pasic
2018-08-22 10:19 ` [PATCH v9 00/22] guest dedicated crypto adapters Cornelia Huck
2018-08-22 10:58   ` Pierre Morel
2018-08-22 18:59   ` Tony Krowiak

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=d921be51-42a0-b819-39b0-59f06fd587cb@redhat.com \
    --to=david@redhat.com \
    --cc=akrowiak@linux.ibm.com \
    --cc=akrowiak@linux.vnet.ibm.com \
    --cc=alex.williamson@redhat.com \
    --cc=alifm@linux.vnet.ibm.com \
    --cc=berrange@redhat.com \
    --cc=bjsdjshi@linux.vnet.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=buendgen@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=fiuczy@linux.vnet.ibm.com \
    --cc=frankja@linux.ibm.com \
    --cc=freude@de.ibm.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=jjherne@linux.vnet.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwankhede@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=mjrosato@linux.vnet.ibm.com \
    --cc=pasic@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=pmorel@linux.ibm.com \
    --cc=pmorel@linux.vnet.ibm.com \
    --cc=schwidefsky@de.ibm.com \
    --cc=thuth@redhat.com \
    /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

all inboxes | Powered by JetHome®