qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Tony Krowiak <akrowiak@linux.vnet.ibm.com>
To: Pierre Morel <pmorel@linux.vnet.ibm.com>,
	Cornelia Huck <cohuck@redhat.com>,
	David Hildenbrand <david@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: Fri, 2 Mar 2018 11:07:41 -0500	[thread overview]
Message-ID: <176de47c-cc57-79dc-17fe-19079a4e742b@linux.vnet.ibm.com> (raw)
In-Reply-To: <b60e70b9-f076-8cc9-7c29-2887954b1404@linux.vnet.ibm.com>

On 03/01/2018 09:12 AM, Pierre Morel wrote:
> On 28/02/2018 12:40, Cornelia Huck wrote:
>> On Wed, 28 Feb 2018 11:26:30 +0100
>> David Hildenbrand <david@redhat.com> wrote:
>>
>>> Then I request the following change in KVM:
>>>
>>> If KVM_S390_VM_CPU_FEAT_AP is enabled in KVM, ECA.28 is _always_ set
>>> (not just if an AP device is configured). This especially makes 
>>> things a
>>> lot easier when it comes to handling hotplugged CPUs and avoiding race
>>> conditions when enabling these bits as mentioned in the KVM series.
>>>
>>> KVM_S390_VM_CPU_FEAT_AP == AP instructions available for the guest
>>> (don't throw an operation exception).
>>>
>>> So this feature then really is guest ABI. The instructions are
>>> available. If there is no device configured, bad luck.
>> Sounds sensible from my POV.
>>
>
> I have a concern with this proposition and with the original code:
>
> 1) ap=on is a guest ABI feature saying to the guest you can use AP 
> instructions
>
> 2) How we provide AP instructions to the guest can be done in three 
> different ways:
>  - SIE Interpretation
>  - interception with VFIO
>  - interception with emulation
>
> 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.
>
> I think it let us more doors open, what is your opinion?
I've already implemented a proof of concept similar to what you suggest 
to verify whether it would.
I wasn't completely sure of the flow of control between the KVM 
notification to the device driver
and the vcpu setup. If the variable is set when the device driver is 
notified about KVM,
it has to happen before vcpu setup for this to work. I was able to 
verify that with my proof
of concept. This discussion really belongs in the KVM/kernel patches, so 
I am going to continue
the discussion of my proposal there.
>
> Regards,
>
> Pierre
>
>

  parent reply	other threads:[~2018-03-02 16:07 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
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 [this message]
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=176de47c-cc57-79dc-17fe-19079a4e742b@linux.vnet.ibm.com \
    --to=akrowiak@linux.vnet.ibm.com \
    --cc=agraf@suse.de \
    --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=david@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).