All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Krowiak <akrowiak@linux.vnet.ibm.com>
To: Cornelia Huck <cohuck@redhat.com>
Cc: Pierre Morel <pmorel@linux.vnet.ibm.com>,
	David Hildenbrand <david@redhat.com>,
	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 v3 6/7] s390x/kvm: handle AP instruction interception
Date: Thu, 5 Apr 2018 12:38:04 -0400	[thread overview]
Message-ID: <dd4fceac-818f-14a2-62b4-94ae73e21796@linux.vnet.ibm.com> (raw)
In-Reply-To: <20180403113619.54ff1e18.cohuck@redhat.com>

On 04/03/2018 05:36 AM, Cornelia Huck wrote:
> On Mon, 2 Apr 2018 12:36:27 -0400
> Tony Krowiak <akrowiak@linux.vnet.ibm.com> wrote:
>
>> On 03/26/2018 05:03 AM, Pierre Morel wrote:
>>> On 26/03/2018 10:32, David Hildenbrand wrote:
>>>> On 16.03.2018 00:24, Tony Krowiak wrote:
>>>>> +    /*
>>>>> +     * The Query Configuration Information (QCI) function (fc == 4)
>>>>> does not
>>>>> +     * set a response code in reg 1, so check for that along with the
>>>>> +     * AP feature.
>>>>> +     */
>>>>> +    if ((fc != 4) && s390_has_feat(S390_FEAT_AP)) {
>>>>> +        env->regs[1] = 0x10000;
>>>>> +
>>>>> +        return 0;
>>>>> +    }
>>>> This would imply an operation exception in case fc==4, which sounds very
>>>> wrong.
>>> It depends but I think that the S390_FEAT_AP_QUERY_CONFIG_INFO must be
>>> tested
>>> to know what to answer.
>>> If the feature is there, QCI must be answered correctly.
>> This is an interesting proposition which raises several issues that will
>> need to
>> be addressed. The only time the PQAP(QCI) instruction is intercepted is
>> when:
>> * A vfio-ap device is NOT defined for the guest because the vfio_ap
>> device driver
>>     will set ECA.28 and the PQAP(QCI) instruction will be interpreted
>> * STFLE.12 is set for the guest
>>
>> You say that the QCI must be answered correctly, but what is the correct
>> response?
>> If we return the matrix - i.e., APM, ADM and AQM - configured via the
>> mediated
>> matrix device's sysfs attributes files, then if any APQNs are defined in
>> the matrix,
>> we will have to handle *ALL* AP instructions by executing them on behalf
>> of the
>> guest. I suppose we could return an empty matrix in which case the AP
>> bus will come
>> up without any devices on the guest, but what is the expectation of an
>> admin who
>> deliberately configures the mediated matrix device? Should we forego
>> handling interception
>> of AP instructions and consider a guest configuration that turns on
>> S390_FEAT_AP but
>> does not define a vfio-ap device to be erroneous and terminate starting
>> of the guest?
>> Anybody have any thoughts?
> Hard to really give good advice without access to the documentation, but:
> - If we tell the guest that the feature is available, but it does not
>    get any cards to use, returning an empty matrix makes the most sense
>    to me.
> - I would not tie starting the guest to the presence of a vfio-ap
>    device. Having the feature available in theory but without any
>    devices actually being usable by the guest does not really sound
>    wrong (can we hotplug this later?)
For this phase of development, it is my opinion that introducing AP 
instruction
interception handlers is superfluous for the following reasons:

1. Interception handling was introduced solely to ensure an operation 
exception would
    not be injected into the guest when CPU model feature for AP (i.e., 
ap=on)
    is specified but a VFIO AP device (i.e., -device 
vfio-ap,sysfsdev=$path)
    is not.

2. The implementation of guest dedicated crypto adapters uses AP 
instruction
    interpretation to virtualize AP devices for a guest. As such, the NQAP,
    DQAP and most variants of the PQAP instructions will not be
    intercepted.

3. Hot plugging AP devices is not being supported for this phase of 
development.

It is my opinion that introducing these interception handlers at this 
time is
unnecessary and risks opening a can of worms that would be
better dealt with in a subsequent phase. For that reason and the reasons 
stated
above, I think the better option is to terminate starting the guest if the
CPU model feature for AP is enabled but an AP device is not defined for the
guest. This restriction, of course, will be removed when hot plug is 
implemented
in a subsequent development phase.
>

  parent reply	other threads:[~2018-04-05 16:38 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-15 23:24 [Qemu-devel] [PATCH v3 0/7] s390x: vfio-ap: guest dedicated crypto adapters Tony Krowiak
2018-03-15 23:24 ` [Qemu-devel] [PATCH v3 1/7] linux-headers: linux header updates for AP support Tony Krowiak
2018-03-15 23:24 ` [Qemu-devel] [PATCH v3 2/7] s390x/ap: base Adjunct Processor (AP) object Tony Krowiak
2018-03-16 10:27   ` Pierre Morel
2018-03-16 10:38   ` Pierre Morel
2018-03-16 14:18     ` Tony Krowiak
2018-03-15 23:24 ` [Qemu-devel] [PATCH v3 3/7] s390x/cpumodel: Set up CPU model for AP device support Tony Krowiak
2018-03-16  9:36   ` Pierre Morel
2018-03-16 14:23     ` Tony Krowiak
2018-04-06 14:51   ` Pierre Morel
2018-04-10 13:19     ` Tony Krowiak
2018-03-15 23:24 ` [Qemu-devel] [PATCH v3 4/7] s390x/kvm: interface to interpret AP instructions Tony Krowiak
2018-03-16 10:34   ` Pierre Morel
2018-03-16 10:36   ` Pierre Morel
2018-03-16 14:33     ` Tony Krowiak
2018-03-20 18:02   ` Tony Krowiak
2018-03-26  8:38   ` David Hildenbrand
2018-04-02 18:27     ` Tony Krowiak
2018-03-15 23:24 ` [Qemu-devel] [PATCH v3 5/7] s390x/vfio: ap: Introduce VFIO AP device Tony Krowiak
2018-03-16 10:42   ` Pierre Morel
2018-03-16 13:22     ` Halil Pasic
2018-03-16 15:29       ` Tony Krowiak
2018-03-16 15:36         ` Halil Pasic
2018-03-16 15:53           ` Tony Krowiak
2018-03-16 16:26             ` Halil Pasic
2018-03-27 12:02       ` Cornelia Huck
2018-04-02 17:05         ` Tony Krowiak
2018-04-03 18:53           ` Tony Krowiak
2018-03-16 15:00     ` Tony Krowiak
2018-03-15 23:24 ` [Qemu-devel] [PATCH v3 6/7] s390x/kvm: handle AP instruction interception Tony Krowiak
2018-03-16  8:03   ` Pierre Morel
2018-03-16 15:31     ` Tony Krowiak
2018-03-26  8:32   ` David Hildenbrand
2018-03-26  8:43     ` [Qemu-devel] [qemu-s390x] " David Hildenbrand
2018-03-26  9:03     ` [Qemu-devel] " Pierre Morel
2018-03-26 12:01       ` Halil Pasic
2018-04-02 16:39         ` Tony Krowiak
2018-04-02 16:36       ` Tony Krowiak
2018-04-03  9:36         ` Cornelia Huck
2018-04-04 11:06           ` Pierre Morel
2018-04-04 13:38           ` Tony Krowiak
2018-04-05 16:38           ` Tony Krowiak [this message]
2018-04-05 17:17             ` Halil Pasic
2018-04-06  8:40               ` Cornelia Huck
2018-04-06  9:11                 ` David Hildenbrand
2018-04-06 12:09                   ` Halil Pasic
2018-04-06 12:32                     ` Halil Pasic
2018-04-06 12:37                       ` Daniel P. Berrangé
2018-04-06 16:07             ` Halil Pasic
2018-04-09  9:32               ` Cornelia Huck
2018-04-09 10:37                 ` Halil Pasic
2018-04-09 10:51                   ` Cornelia Huck
2018-04-11 13:20                     ` Tony Krowiak
2018-04-11 13:50                       ` Halil Pasic
2018-04-12 15:24                         ` Tony Krowiak
2018-04-12 15:22                 ` Tony Krowiak
2018-04-04 11:09         ` Pierre Morel
2018-04-04 12:59           ` Tony Krowiak
2018-04-04 13:35             ` Pierre Morel
2018-04-04 13:33           ` Tony Krowiak
2018-04-04 13:43             ` Pierre Morel
2018-04-04 20:12               ` Tony Krowiak
2018-04-05 13:51                 ` Halil Pasic
2018-04-02 15:59     ` Tony Krowiak
2018-04-06 14:08   ` Pierre Morel
2018-04-06 14:42     ` Pierre Morel
2018-03-15 23:25 ` [Qemu-devel] [PATCH v3 7/7] s390: doc: detailed specifications for AP virtualization Tony Krowiak
2018-03-16  9:45   ` Pierre Morel
2018-03-16 10:03   ` Pierre Morel
2018-03-16 15:35     ` Tony Krowiak
2018-04-02 16:46     ` 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=dd4fceac-818f-14a2-62b4-94ae73e21796@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.