Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp367952rwb; Fri, 18 Nov 2022 02:38:17 -0800 (PST) X-Google-Smtp-Source: AA0mqf611HUNC11szISFHKGO748b6rrvAdA7yUOogumJ4zHkSgqaLHaXbWncouoybpt4RF2mUSQ9 X-Received: by 2002:a05:6a00:2396:b0:56c:318a:f808 with SMTP id f22-20020a056a00239600b0056c318af808mr7350954pfc.11.1668767897511; Fri, 18 Nov 2022 02:38:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668767897; cv=none; d=google.com; s=arc-20160816; b=tDvzrogU6GJqh76zIqCCpPokBFN7bgwAw9U7cxjuQbwffUEGV/k8ZT+s6wY1nIRmYD 4zXMxlPvcomQt4TkqUuRU7DP6/2iPazYXkwDne805oXiCCC/YVDklV9zcVD1eBcZUH8U +SkEhMe2j7K9rsNApb1g5jGwMdI6z9gfmdK//MCIW0W01q3Qv6aonSN/C6KCDyryvo+m G1ryl2G1qv2NuYK/ArdXI9STw+Ygj1R3NOzmkK0K5twobkiXbvheFxU5e4kbs8oln1GX a84+qUzdN5AmHegvtehrVJ2Jcdcp97VKSluuVg+cUTntB1e0WKcmwBE+Jn5IYIQDSEiE H6Tg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=wcl5icUsxpcfuMwhOzo/VTcRuTygEQLTW6vBKpa0/yk=; b=AT8RXdz3TifjTrItAWdYLdzpCKoZfb6W2DjhJ4zDaMxui5UjN/BnFCypadQH2NbAXb Ade1hmEFtQQ3h+WyTmmJlhevk/J2+CVB1I2qEKZS78gBPV+jxi/algSanvBZPKXY1U9D M8qdOmn/6XooE6RsEhLORiAlqQ3F4xgOdTOWWHrhDf+neBdG7G8koSm83tR7hFp2IGQ5 MokbmK9iXQotHvnxPdiCBOkIz8wFXh8uli9uWCFkFfK9M/BR/Ju+5UShh+2W7vFaqeQ9 W/VVRLFGJSbTup0Jf5tULcholWviXAZ580XtdUf5x8dljy6OXCWnwDOfpVuwGs0N2wqp 9HAw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=rRz11gRY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nv18-20020a17090b1b5200b0020900585fa2si7633090pjb.102.2022.11.18.02.38.04; Fri, 18 Nov 2022 02:38:17 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=rRz11gRY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240830AbiKRKMv (ORCPT + 91 others); Fri, 18 Nov 2022 05:12:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43366 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235073AbiKRKMu (ORCPT ); Fri, 18 Nov 2022 05:12:50 -0500 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 575BF71F31; Fri, 18 Nov 2022 02:12:49 -0800 (PST) Received: from pps.filterd (m0098409.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2AIA9uvt032749; Fri, 18 Nov 2022 10:12:46 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=date : from : to : cc : subject : message-id : references : mime-version : content-type : in-reply-to; s=pp1; bh=wcl5icUsxpcfuMwhOzo/VTcRuTygEQLTW6vBKpa0/yk=; b=rRz11gRYT3pGhPADwL+j3/z1i4J6b9ujSpJr72msDN8P4dYso7gIpvVxJbwa9+0e85bC tfI1L0brHDI5ul0NdAe1rmFGDjZxluknTt9abEYSizQVyoIrsN88ZbPSPk3gacVqAPmB naCKjE0Yvwyt9m98unhWYuDHZy6D0NLE68+91vgmdA5QCKd+Z58DZrEbXzAuglN0N5Sb RCygMi9ODTeM9lkTOeapW+f3htuAorI0mp3zAK3SaurnUhvM0QbiWqNqSyFbhOPeHxOm 4j2KkQpwyRIk4ts6QAa0j0H/k8tEh2D34TME1BM+KhC9DZ/Xc+uqA04gw0RLfEt5xKVn gQ== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3kx7bc9444-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 18 Nov 2022 10:12:45 +0000 Received: from m0098409.ppops.net (m0098409.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 2AIAAwul004894; Fri, 18 Nov 2022 10:12:45 GMT Received: from ppma06fra.de.ibm.com (48.49.7a9f.ip4.static.sl-reverse.com [159.122.73.72]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3kx7bc9431-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 18 Nov 2022 10:12:45 +0000 Received: from pps.filterd (ppma06fra.de.ibm.com [127.0.0.1]) by ppma06fra.de.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 2AIA9gg0002589; Fri, 18 Nov 2022 10:12:42 GMT Received: from b06cxnps4076.portsmouth.uk.ibm.com (d06relay13.portsmouth.uk.ibm.com [9.149.109.198]) by ppma06fra.de.ibm.com with ESMTP id 3kwte4gkaw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 18 Nov 2022 10:12:42 +0000 Received: from d06av21.portsmouth.uk.ibm.com (d06av21.portsmouth.uk.ibm.com [9.149.105.232]) by b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 2AIACdxk59310452 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 18 Nov 2022 10:12:39 GMT Received: from d06av21.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4D7415204F; Fri, 18 Nov 2022 10:12:39 +0000 (GMT) Received: from osiris (unknown [9.145.17.66]) by d06av21.portsmouth.uk.ibm.com (Postfix) with ESMTPS id B37A95204E; Fri, 18 Nov 2022 10:12:38 +0000 (GMT) Date: Fri, 18 Nov 2022 11:12:37 +0100 From: Heiko Carstens To: Janis Schoetterl-Glausch Cc: Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Vasily Gorbik , Alexander Gordeev , David Hildenbrand , Jonathan Corbet , kvm@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-s390@vger.kernel.org, Paolo Bonzini , Shuah Khan , Sven Schnelle Subject: Re: [PATCH v3 1/9] KVM: s390: Extend MEM_OP ioctl by storage key checked cmpxchg Message-ID: References: <20221117221758.66326-1-scgl@linux.ibm.com> <20221117221758.66326-2-scgl@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20221117221758.66326-2-scgl@linux.ibm.com> X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: _3Ebc4G1HOdvvyKR5KujmpmU-wwQgWgy X-Proofpoint-GUID: Pk_qYC5A5nG-ngx3HjismAMs3CDi5Ne- X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-17_06,2022-11-18_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 mlxlogscore=999 suspectscore=0 spamscore=0 lowpriorityscore=0 clxscore=1015 mlxscore=0 bulkscore=0 impostorscore=0 priorityscore=1501 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211180057 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Nov 17, 2022 at 11:17:50PM +0100, Janis Schoetterl-Glausch wrote: > User space can use the MEM_OP ioctl to make storage key checked reads > and writes to the guest, however, it has no way of performing atomic, > key checked, accesses to the guest. > Extend the MEM_OP ioctl in order to allow for this, by adding a cmpxchg > mode. For now, support this mode for absolute accesses only. > > This mode can be use, for example, to set the device-state-change > indicator and the adapter-local-summary indicator atomically. > > Signed-off-by: Janis Schoetterl-Glausch > --- > include/uapi/linux/kvm.h | 5 ++ > arch/s390/kvm/gaccess.h | 3 ++ > arch/s390/kvm/gaccess.c | 101 +++++++++++++++++++++++++++++++++++++++ > arch/s390/kvm/kvm-s390.c | 35 +++++++++++++- > 4 files changed, 142 insertions(+), 2 deletions(-) > > diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h > index 0d5d4419139a..1f36be5493e6 100644 > --- a/include/uapi/linux/kvm.h > +++ b/include/uapi/linux/kvm.h > @@ -588,6 +588,8 @@ struct kvm_s390_mem_op { > struct { > __u8 ar; /* the access register number */ > __u8 key; /* access key, ignored if flag unset */ > + __u8 pad1[6]; /* ignored */ > + __u64 old_p; /* ignored if flag unset */ Just one comment: the suffix "_p" for pointer is quite unusual within the kernel. This also would be the first of its kind within kvm.h. Usually there is either no suffix or "_addr". So for consistency reasons I would suggest to change this to one of the common variants. The code itself looks good from my point of view, even though for the sake of simplicity I would have put the complete sign/zero extended 128 bit old value into the structure, instead of having a pointer to the value. Imho that would simplify the interface. Also alignment, as pointed out previously, really doesn't matter for this use case. But you had already something like that previously and changed it, so no reason to go back and forth. Not really important.