From: David Hildenbrand <david@redhat.com>
To: Tony Krowiak <akrowiak@linux.vnet.ibm.com>,
Pierre Morel <pmorel@linux.vnet.ibm.com>,
Cornelia Huck <cohuck@redhat.com>
Cc: qemu-devel@nongnu.org, qemu-s390x@nongnu.org,
schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com,
borntraeger@de.ibm.com, bjsdjshi@linux.vnet.ibm.com,
alifm@linux.vnet.ibm.com, mjrosato@linux.vnet.ibm.com,
jjherne@linux.vnet.ibm.com, pasic@linux.vnet.ibm.com,
eskultet@redhat.com, berrange@redhat.com,
alex.williamson@redhat.com, eric.auger@redhat.com,
pbonzini@redhat.com, peter.maydell@linaro.org, agraf@suse.de,
rth@twiddle.net
Subject: Re: [Qemu-devel] [PATCH v2 5/5] s390x/cpumodel: Set up CPU model for AP device support
Date: Tue, 6 Mar 2018 18:15:47 +0100 [thread overview]
Message-ID: <05cd3b46-1fa6-6cf6-b414-5dfa2af13105@redhat.com> (raw)
In-Reply-To: <c0ff3874-e933-e30b-bc37-60abc4732a23@linux.vnet.ibm.com>
>>> 1) ap=on is a guest ABI feature saying to the guest you can use AP
>>> instructions
>> Indeed, that's what belongs into the CPU model.
>>
>>> 2) How we provide AP instructions to the guest can be done in three
>>> different ways:
>>> - SIE Interpretation
> AP instructions executed on the guest will be interpreted and passed
> directly
> through to a real AP device installed on the host according to the APQN
> specified in the instruction, so the AP instructions must be available
> on the
> host.
>>> - interception with VFIO
> AP instructions executed on the guest will be intercepted, and
> interpreted by
> QEMU then forwarded to a real AP device installed on the host according
> to how
> the AP devices are configured in userspace - i.e., whether there is
> remapping,
> multiplexing or sharing of adapters/domains etc. This also requires that AP
> instructions be available on the host.
See my other mail: I think this is a conflict with vSIE.
>>> - interception with emulation
> AP instructions executed on the guest will be intercepted, interpreted
> by QEMU
> and emulated. This will not require AP instructions be available on the
> host.
See my other mail: I think this is a conflict with vSIE.
>
> In all cases above, the need to set ECA_APIE is dependent upon the device
> type configured for the guest.
>>>
>> Due to bad AP design we can't handle this like zPCI - completely in
>> QEMU. That's what should control it.
>>
>>> 3) We implement this with a device in QEMU and a certain level kernel
>>> support.
>>>
>>> It seems possible to set or not ECA.28 , based on the type of kernel device:
>>> - SIE interpretation -> MATRIX KVM device -> ECA.28
>>> - Interception with VFIO and virtualization -> no ECA.28
>>> - interception with emulation -> no ECA.28
>>>
>>> I understand the concern with the vCPU but I think we can handle it with
>>> an indirect variable
>>> like:
>>>
>>> SIE interpretation Device + KVM_S390_VM_CPU_FEAT_AP -> set the variable
>>> ap_to_be_sie_interpreted=1
>>> Then in vCPU initialization set ECA.28 based on this variable.
>> That's exactly why we have the cpu feature interface. E.g. CMMA -> if
>> not enabled, not interpreted by HW (however also not intercepted to user
>> space - no sense in doing that right now).
> There are two factors at play here, the device type (i.e., -device
> vfio_ap) and
> the KVM_S390_VM_CPU_FEAT_AP feature. Setting ECA_APIE makes no sense if the
> vfio_ap device is not configured. For the passthrough implementation, this
> means that the AP bus will successfully load on the guest, but there will
> be no AP devices detected. If the expectation is that ap=on will allow
> access
> to AP devices on the guest, that would be a mistaken assumption.
>
> If down the road a new guest AP device is introduced that allows
> multiplexing,
> device remapping etc., then it will be necessary to intercept AP
> instructions
> executed on the guest. In this case, if ap=on results in setting ECA_APIE,
> then the instructions will be interpreted and passed through to a device
> that does not exist because it won't be defined in the guest's CRYCB.
Again, see my other mail, this discussion is superfluous if we can't get
vSIE to work with emulated devices. And it smells like this is the case.
But I don't have access to documentation.
>
> Based on these two scenarios, I think what we are really saying with ap=on
> is that the guest will require use of the AP instructions installed on the
> host. Whether those instructions are executed as a result of interpretation
> by the hardware or because they are executed by the device driver is a
> separate matter. So, I am inclined to agree with Pierre for that reason.
> ECA_APIE should be set only if ap=on (i.e., AP instructions are available
> on the host) and the user of those instructions (i.e., the driver) indicate
> an intent to use them.
ap=on -> set ECA_APIE is what I proposed.
>>
>>> I think it let us more doors open, what is your opinion?
>> In general, for now we don't care. The kernel is the only AP bus provider.
> True today, but not necessarily in the future.
I think so (vSIE).
>>
>> If KVM presents AP support -> AP feature can be enabled. And it should
>> always enable it.
> I disagree for the reasons stated above.
By always enable I of course mean "ap=on" (the point was: independent of
devices right now).
--
Thanks,
David / dhildenb
next prev parent reply other threads:[~2018-03-06 17:16 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-27 15:44 [Qemu-devel] [PATCH v2 0/5] s390x: vfio-ap: guest dedicated crypto adapters Tony Krowiak
2018-02-27 15:44 ` [Qemu-devel] [PATCH v2 1/5] s390: doc: detailed specifications for AP virtualization Tony Krowiak
2018-02-27 15:44 ` [Qemu-devel] [PATCH v2 2/5] s390x/ap: base Adjunct Processor (AP) object Tony Krowiak
2018-02-27 15:44 ` [Qemu-devel] [PATCH v2 3/5] s390x/vfio: ap: VFIO: linux header updates Tony Krowiak
2018-02-27 15:44 ` [Qemu-devel] [PATCH v2 4/5] s390x/vfio: ap: Introduce VFIO AP device Tony Krowiak
2018-02-27 17:04 ` Cornelia Huck
2018-02-27 19:59 ` Tony Krowiak
2018-02-27 15:44 ` [Qemu-devel] [PATCH v2 5/5] s390x/cpumodel: Set up CPU model for AP device support Tony Krowiak
2018-02-27 16:27 ` Cornelia Huck
2018-02-27 16:49 ` Halil Pasic
2018-02-27 17:56 ` David Hildenbrand
2018-02-27 18:19 ` Tony Krowiak
2018-02-27 18:14 ` Tony Krowiak
2018-02-27 17:52 ` David Hildenbrand
2018-02-27 18:14 ` Halil Pasic
2018-02-28 10:30 ` David Hildenbrand
2018-02-27 18:55 ` Tony Krowiak
2018-02-28 10:26 ` David Hildenbrand
2018-02-28 11:40 ` Cornelia Huck
2018-03-01 14:12 ` Pierre Morel
2018-03-01 14:36 ` David Hildenbrand
2018-03-01 15:49 ` Halil Pasic
2018-03-02 19:36 ` Tony Krowiak
2018-03-05 21:22 ` Tony Krowiak
2018-03-06 17:15 ` David Hildenbrand [this message]
2018-03-07 10:09 ` Pierre Morel
2018-03-07 14:41 ` Cornelia Huck
2018-03-07 16:40 ` Pierre Morel
2018-03-08 14:05 ` Tony Krowiak
2018-03-02 16:07 ` Tony Krowiak
2018-02-27 15:54 ` [Qemu-devel] [PATCH v2 0/5] s390x: vfio-ap: guest dedicated crypto adapters no-reply
2018-03-06 10:01 ` David Hildenbrand
2018-03-06 16:53 ` Pierre Morel
2018-03-06 17:10 ` David Hildenbrand
2018-03-07 10:22 ` Pierre Morel
2018-03-07 14:27 ` Christian Borntraeger
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=05cd3b46-1fa6-6cf6-b414-5dfa2af13105@redhat.com \
--to=david@redhat.com \
--cc=agraf@suse.de \
--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=cohuck@redhat.com \
--cc=eric.auger@redhat.com \
--cc=eskultet@redhat.com \
--cc=heiko.carstens@de.ibm.com \
--cc=jjherne@linux.vnet.ibm.com \
--cc=mjrosato@linux.vnet.ibm.com \
--cc=pasic@linux.vnet.ibm.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=pmorel@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=rth@twiddle.net \
--cc=schwidefsky@de.ibm.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;
as well as URLs for NNTP newsgroup(s).