Received: by 10.223.164.202 with SMTP id h10csp569180wrb; Fri, 17 Nov 2017 05:20:14 -0800 (PST) X-Google-Smtp-Source: AGs4zMbSg/omdwKscTOE0YV2lqlbeabpCzQspd/TUxLvB3d8IAYv43DjnC+ewowT9vhx2JRQpLE3 X-Received: by 10.84.131.6 with SMTP id 6mr5339107pld.100.1510924814326; Fri, 17 Nov 2017 05:20:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510924814; cv=none; d=google.com; s=arc-20160816; b=X3AyAh6rS2gTDghTK58qqohcTLxwceUCs0hB8LoAj5MLlDNrJllEUoy40bhvzJpIfU 0cCR43ylu2gxhvk5uMgWD6v+X9vARQ5GVuA0ZRdBXoXKqkASF3uV+W0f876MV8zJ3BHr NwS5rAhWAJ48Mxyl/KWFZMzoA8BSq4Jz2az8Iz0NCMa8DHZ7TzRAbQoFEyFw5BzR8eig DRQO62gZMBNyAYlGfugcbPifVjYziXXtyJz/m2dr/1PjwZtfkOe/ABXF3iAZOhmRohxq r1giLn8vubY06JtdLIMXNerdxAs7gdmrwLLsu92djm9f4llCrcPS/7p8DR1sZxAylb3Z XYHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date:from :references:cc:to:subject:arc-authentication-results; bh=ley4SlQST9YmZCTwE8M1jMWaOROzW05mdAyloyBmeqY=; b=IE7M30xfK0Q3m08wgrc4OKB/wYBcA+U2SbnCSpObXXPg1KeenFMNSw0jww7jtzips5 eQd+I+lzkrGSKyikp6I2hGiVm74kMrulUqmejR9roQKScs2CaFxoD1l9BTSFB9VrsHjN IPwIfsvw/+Qq8DRk5wv1O3+zYsauqmd2nPmZDptQAq+Vs/jbqS0Pjsy9qYdyV5joZO6w ROUfDaikYytzNfAhTRvoVwYRXQiOkVQzutaYxRUOnQidJ7pOtZ2UuRQHKCtcMjS0CwJI vg3ClroNQh9xXvP/Q7vFYmzwCfJseqkjMTuCgcAUPWN0s9DL6djacagEJ91bAdToUBZH IxTw== 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=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q9si2787156pll.349.2017.11.17.05.20.00; Fri, 17 Nov 2017 05:20:14 -0800 (PST) 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=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933987AbdKQHHb (ORCPT + 91 others); Fri, 17 Nov 2017 02:07:31 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:58224 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933950AbdKQHHX (ORCPT ); Fri, 17 Nov 2017 02:07:23 -0500 Received: from pps.filterd (m0098404.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id vAH74GRu140690 for ; Fri, 17 Nov 2017 02:07:23 -0500 Received: from e06smtp15.uk.ibm.com (e06smtp15.uk.ibm.com [195.75.94.111]) by mx0a-001b2d01.pphosted.com with ESMTP id 2e9qf20jgq-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Fri, 17 Nov 2017 02:07:23 -0500 Received: from localhost by e06smtp15.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 17 Nov 2017 07:07:20 -0000 Received: from b06cxnps4076.portsmouth.uk.ibm.com (9.149.109.198) by e06smtp15.uk.ibm.com (192.168.101.145) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Fri, 17 Nov 2017 07:07:16 -0000 Received: from d06av25.portsmouth.uk.ibm.com (d06av25.portsmouth.uk.ibm.com [9.149.105.61]) by b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id vAH77GJg38142198; Fri, 17 Nov 2017 07:07:16 GMT Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2CB5111C052; Fri, 17 Nov 2017 07:02:02 +0000 (GMT) Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7829F11C05B; Fri, 17 Nov 2017 07:02:01 +0000 (GMT) Received: from [9.145.43.22] (unknown [9.145.43.22]) by d06av25.portsmouth.uk.ibm.com (Postfix) with ESMTP; Fri, 17 Nov 2017 07:02:01 +0000 (GMT) Subject: Re: [RFC 00/19] KVM: s390/crypto/vfio: guest dedicated crypto adapters To: Tony Krowiak , Cornelia Huck Cc: linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, freude@de.ibm.com, schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com, borntraeger@de.ibm.com, kwankhede@nvidia.com, bjsdjshi@linux.vnet.ibm.com, pbonzini@redhat.com, alex.williamson@redhat.com, alifm@linux.vnet.ibm.com, mjrosato@linux.vnet.ibm.com, qemu-s390x@nongnu.org, jjherne@linux.vnet.ibm.com, thuth@redhat.com, pasic@linux.vnet.ibm.com References: <1507916344-3896-1-git-send-email-akrowiak@linux.vnet.ibm.com> <5baf5f90-6cac-3c09-7b66-1bc8b30b8093@linux.vnet.ibm.com> <20171114145722.4ab850a5.cohuck@redhat.com> <8a492b07-3d3b-f4cf-e139-7de345ea8188@linux.vnet.ibm.com> <20171116180308.289e5eed.cohuck@redhat.com> <1476b0a4-a2a3-2c48-107a-ab7b39b0e93e@linux.vnet.ibm.com> From: Pierre Morel Date: Fri, 17 Nov 2017 08:07:15 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <1476b0a4-a2a3-2c48-107a-ab7b39b0e93e@linux.vnet.ibm.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 x-cbid: 17111707-0020-0000-0000-000003CD6B9D X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17111707-0021-0000-0000-00004262A885 Message-Id: <0b40cee7-78d3-f96b-ab46-1f40b31251cb@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-11-17_02:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1709140000 definitions=main-1711170097 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 17/11/2017 00:35, Tony Krowiak wrote: > On 11/16/2017 03:25 PM, Pierre Morel wrote: >> On 16/11/2017 18:03, Cornelia Huck wrote: >>> On Thu, 16 Nov 2017 17:06:58 +0100 >>> Pierre Morel wrote: >>> >>>> On 16/11/2017 16:23, Tony Krowiak wrote: >>>>> On 11/14/2017 08:57 AM, Cornelia Huck wrote: >>>>>> On Tue, 31 Oct 2017 15:39:09 -0400 >>>>>> Tony Krowiak wrote: >>>>>>> On 10/13/2017 01:38 PM, Tony Krowiak wrote: >>>>>>> Ping >>>>>>>> Tony Krowiak (19): >>>>>>>>      KVM: s390: SIE considerations for AP Queue virtualization >>>>>>>>      KVM: s390: refactor crypto initialization >>>>>>>>      s390/zcrypt: new AP matrix bus >>>>>>>>      s390/zcrypt: create an AP matrix device on the AP matrix bus >>>>>>>>      s390/zcrypt: base implementation of AP matrix device driver >>>>>>>>      s390/zcrypt: register matrix device with VFIO mediated device >>>>>>>>        framework >>>>>>>>      KVM: s390: introduce AP matrix configuration interface >>>>>>>>      s390/zcrypt: support for assigning adapters to matrix mdev >>>>>>>>      s390/zcrypt: validate adapter assignment >>>>>>>>      s390/zcrypt: sysfs interfaces supporting AP domain assignment >>>>>>>>      s390/zcrypt: validate domain assignment >>>>>>>>      s390/zcrypt: sysfs support for control domain assignment >>>>>>>>      s390/zcrypt: validate control domain assignment >>>>>>>>      KVM: s390: Connect the AP mediated matrix device to KVM >>>>>>>>      s390/zcrypt: introduce ioctl access to VFIO AP Matrix driver >>>>>>>>      KVM: s390: interface to configure KVM guest's AP matrix >>>>>>>>      KVM: s390: validate input to AP matrix config interface >>>>>>>>      KVM: s390: New ioctl to configure KVM guest's AP matrix >>>>>>>>      s390/facilities: enable AP facilities needed by guest >>>>>> I think the approach is fine, and the code also looks fine for the >>>>>> most >>>>>> part. Some comments: >>>>>> >>>>>> - various patches can be squashed together to give a better >>>>>>     understanding at a glance >>>>> Which patches would you squash? >>>>>> - this needs documentation (as I already said) >>>>> My plan is to take the cover letter patch and incorporate that into >>>>> documentation, >>>>> then replace the cover letter patch with a more concise summary. >>>>>> - some of the driver/device modelling feels a bit awkward >>>>>> (commented in >>>>>>     patches) -- I'm not sure that my proposal is better, but I >>>>>> think we >>>>>>     should make sure the interdependencies are modeled correctly >>>>> I am responding to each patch review individually. >>>> >>>> I think that instead of responding to each patch individually we should >>>> have a discussion on the design because I think a lot could change and >>>> discussing about each patch as they may be completely redesigned for >>>> the >>>> next version may not be very useful. > How do you suggest this discussion should be structured? Aren't the patches > themselves an ultimate expression of the design? A lot could change, but > can't those issues can be dealt with and discussed as we move forward? > >>>> >>>> >>>> So I totally agree with Conny on that we should stabilize the >>>> bus/device/driver modeling. >>>> >>>> I think it would be here a good place to start the discussion on things >>>> like we started to discuss, Harald and I, off-line: >>>> - why a matrix bus, in which case we can avoid it >>> >>> I thought it had been agreed that we should be able to ditch it? >> >> I have not see any comment on the matrix bus. > As stated in a previous email responding to Connie, I decided to scrap the > AP matrix bus. There will only ever be one matrix device that serves two > purposes: To hold the APQNs of the queue devices bound to the VFIO AP > matrix > device driver; to serve as a parent of the mediated devices created for > guests requiring access to the APQNs reserved for their use. So, instead > of an AP matrix bus creating the matrix device, it will be created by the > VFIO AP matrix driver in /sys/devices/ap_matrix/ during driver > initialization. Sorry, I did not see the mail, this of course change a lot of things... >> >> >>> >>>> - which kind of devices we need >>> >>> What is still unclear? Which card generations to support? >> >> No, I mean the relation bus/device/driver/mdev... > I think that is pretty well spelled out in the cover letter > patch and in the descriptions of the patches themselves. What is it > you don't understand? If we have no matrix bus anymore I prefer to wait for the cover letter of V2 to discuss this. >> >> >>> >>>> - how to handle the repartition of queues on boot, reset and hotplug > What do you mean by repartition of queues on boot? >>> >>> That's something I'd like to see a writeup for. >> >> yes, and it may have an influence on the bus/device/driver/mdev design > I don't understand the need to avoid implementation details. If you recall, > the original design was modeled on AP queue devices. It was only after > implementing that design that the shortcomings were revealed which is > why we decided to base the model on the AP matrix. Keep in mind, this is > an RFC, not a final patch set. I would expect some change from the > implementation herein. In fact, I've already made many changes based on > Connie's and Christian's review comments, none of which resulted in an > overhaul of the design. >> >> >>> >>>> - interaction with the host drivers >>> >>> The driver model should already handle that, no? >> >> yes it should, but it is not clear for me. > What is it that is not clear? This cover letter seeks to describe the > patch set, so why not annotate those areas that are not clear? I'm don't > understand what it is you are expecting. I thought the purpose of > submitting these patches here was to generate discussion. >> >> >>> >>>> - validation of the matrix for guests and host views >>> >>> I saw validation code in the patches, although I have not reviewed it. > Patches 9, 11, and 13 validate the adapters, domains and control domains > configured for the mdev matrix device and patch 17 verifies that the > KVM guest's matrix does not define any APQNs in use by other guests. >>> >>> >>>> >>>> or even features we need to add like >>>> - interruptions >>> >>> My understanding is that interrupts are optional so they can be left >>> out in the first shot. With the gisa (that has not yet been posted), it >>> should not be too difficult, no? >> >> you are right I forgot that it is optional > If the facilities bit (STFLE.65) indicating interrupts are available is not > set for the guest, then the AP bus running on the guest will poll and > interrupts will not have to be handled. This patch set does not enable > interrupts, so it is not relevant at this time. We will not be able to > handle interrupts for the guest until the GISA for passthrough patches > are available. This will be addressed at that time. >> >> >>> >>>> - PAPQ/TAPQ-t and APQI interception >>> >>> I can't say anything about that, as this is not documented :( >> >> Right we can live without these too. > I have implemented interception of the PQAP(TAPQ) instruction and will > include it in the next set of patches. It was not documented here > because this patch set was submitted as an RFC for the purpose of > determining if we are on the right track with regard to the overall > AP matrix design. >> >> >>> >>>> - virtualization of the AP >>> >>> Is this really needed? It would complicate everything a lot. >> >> Concern has no sens without interception. > Virtualization of AP is not on the table right now. If we implement interception, we must speak about this, even to say how we do not implement virtualization. >> >>> >>>> - CPU model and KVM capabilities >>> >>> That already has been discussed with the individual patches. >> >> Well, if there are no interceptions the individual patches discussions >> are enough. > As I stated above, these patches were submitted as an RFC for the > purpose of > getting a stamp of approval for the general design. Additional functions > such as > hot plug and interception will be introduced in phases in the near > future. As > I stated above, I already have the implementation of PQAP(TAPQ) and will > include > it in the next submission. It does not change the general design one iota. >> >> >>> >>>> >>>> In my understanding these points must be cleared before we really start >>>> to discuss the details of the implementation. >>> >>> The general design already looks fine to me. Do you really expect that >>> a major redesign is needed? > I thought the point of submitting this RFC was to get a sanity check of the > design concepts. According to Christian, he discussed the design with > several maintainers at the KVM forum and they agreed this design was sane. >>> >> >> I am worry about the following: >> - Will the matrix bus be accepted > I am eliminating the matrix bus - based on comments made by Connie for an > individual patch - so no need to worry;-) >> >> - What happens on host reset and hot plug/unplug in host > TBD, but I don't anticipate a major overhaul of the design to accommodate > these eventualities, particularly hot plug which I considered while > creating this design. >> >> - What happens with the queues on guest start/halt/restart > TBD AFAIU These two points are crucials for device driver design. Pierre >> >> Regards, >> >> Pierre >> > -- Pierre Morel Linux/KVM/QEMU in Böblingen - Germany From 1584305058823564037@xxx Fri Nov 17 09:30:43 +0000 2017 X-GM-THRID: 1581165300547546289 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread