Received: by 10.223.185.116 with SMTP id b49csp1851529wrg; Thu, 22 Feb 2018 04:18:02 -0800 (PST) X-Google-Smtp-Source: AH8x224OpWsg7UP8dfZi/RdxJk4va/buy+t2MCK+v1rolDqaORbf5phQcdIOIfzz9BD3QbtNk8ce X-Received: by 10.99.190.15 with SMTP id l15mr5638326pgf.325.1519301882225; Thu, 22 Feb 2018 04:18:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519301882; cv=none; d=google.com; s=arc-20160816; b=FrvNiMkNAu1591A9ZBnWsWh+1zy6WxjP8ECfpli0iFXuMUF1/fTNVZPEqwPig2tmZn NgC6VGmCLUYWZpiVB3pjvkEgFUppVFXdyAv1X8Wj9u/1gzANuTd6OTgswhoOORGUNGGg BdiEgTPSiiiGH46pzxnohMG/kjg2UzyqYHbQV+GfWtbesnk2HV+ftjHPe7N/N3apL447 ymslqtREGgEIy8Z037kNQVkW94W48YMZHavdxgFsN7mAA/gDpa253t6rzc1URun+Ip4q bPRFbZEefYH1ITQrsyhyVt3jbFUmyovcPzRjd4L/XkNkbtXtHWiiSinQHQlHGMNhOLQw 3DLg== 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=vMmxQVJnpNWTra+onpuWC7HfBdnC1pBdjqQMdj7JogM=; b=JM4R7i7Q2hXrtvgHsViWxgFAEC1lH8C7yyIcVN/wSryLLA8QGRAJdZV5Q6wMs4y8i4 UIvM1IlCUTvU+FZryzHUfPxGqNrneVqifUZOSZCpcKJxowDRncg5TZXdUuRJc6vGBU9b gcqi/GaczVZD/WRYuez5XL3cWVY2nXyY6rwRYiX6LgUClegVDPmuiV1hj9RbhDZv38oT K8PTnZyHOZkZ/P/f33kh7hFgKtvUQOULV5z6dDqmdzvX1/bLnCR+AbAC0zlK2f1gCI5T HRWFnBHli0HnLntDFjOMHAWnFPjJQr8AgD0N8IMLWx7mNTVDE1UYbVKzgphobIGbMR8U VCfw== 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 e28si1103324pgn.311.2018.02.22.04.17.47; Thu, 22 Feb 2018 04:18:02 -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 S932307AbeBVMQR (ORCPT + 99 others); Thu, 22 Feb 2018 07:16:17 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:57866 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932159AbeBVMQP (ORCPT ); Thu, 22 Feb 2018 07:16:15 -0500 Received: from pps.filterd (m0098399.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w1MCBPGb139196 for ; Thu, 22 Feb 2018 07:16:14 -0500 Received: from e06smtp10.uk.ibm.com (e06smtp10.uk.ibm.com [195.75.94.106]) by mx0a-001b2d01.pphosted.com with ESMTP id 2g9tqtfr5m-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Thu, 22 Feb 2018 07:16:14 -0500 Received: from localhost by e06smtp10.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 22 Feb 2018 12:16:11 -0000 Received: from b06cxnps3074.portsmouth.uk.ibm.com (9.149.109.194) by e06smtp10.uk.ibm.com (192.168.101.140) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Thu, 22 Feb 2018 12:16:08 -0000 Received: from d06av23.portsmouth.uk.ibm.com (d06av23.portsmouth.uk.ibm.com [9.149.105.59]) by b06cxnps3074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w1MCG7iP60424238; Thu, 22 Feb 2018 12:16:07 GMT Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 350D6A4055; Thu, 22 Feb 2018 12:09:17 +0000 (GMT) Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 12E49A4040; Thu, 22 Feb 2018 12:09:16 +0000 (GMT) Received: from [9.101.4.34] (unknown [9.101.4.34]) by d06av23.portsmouth.uk.ibm.com (Postfix) with ESMTP; Thu, 22 Feb 2018 12:09:15 +0000 (GMT) Subject: Re: [PATCH v3 1/2] ocxl: Add get_metadata IOCTL to share OCXL information to userspace To: "Alastair D'Silva" , linuxppc-dev@ozlabs.org, linux-kernel@vger.kernel.org Cc: arnd@arndb.de, frederic.barrat@fr.ibm.com, gregkh@linuxfoundation.org, andrew.donnellan@au1.ibm.com, "Alastair D'Silva" References: <20180222030334.14060-1-alastair@au1.ibm.com> <20180222041739.27899-1-alastair@au1.ibm.com> <20180222041739.27899-2-alastair@au1.ibm.com> From: Frederic Barrat Date: Thu, 22 Feb 2018 13:16:06 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20180222041739.27899-2-alastair@au1.ibm.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: fr Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 x-cbid: 18022212-0040-0000-0000-000004157763 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18022212-0041-0000-0000-000026188CAC Message-Id: X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2018-02-22_05:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=2 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1709140000 definitions=main-1802220156 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le 22/02/2018 à 05:17, Alastair D'Silva a écrit : > From: Alastair D'Silva > > Some required information is not exposed to userspace currently (eg. the > PASID), pass this information back, along with other information which > is currently communicated via sysfs, which saves some parsing effort in > userspace. > > Signed-off-by: Alastair D'Silva > --- Thanks! Acked-by: Frederic Barrat > drivers/misc/ocxl/file.c | 27 +++++++++++++++++++++++++++ > include/uapi/misc/ocxl.h | 17 +++++++++++++++++ > 2 files changed, 44 insertions(+) > > diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c > index d9aa407db06a..90df1be5ef3f 100644 > --- a/drivers/misc/ocxl/file.c > +++ b/drivers/misc/ocxl/file.c > @@ -102,10 +102,32 @@ static long afu_ioctl_attach(struct ocxl_context *ctx, > return rc; > } > > +static long afu_ioctl_get_metadata(struct ocxl_context *ctx, > + struct ocxl_ioctl_metadata __user *uarg) > +{ > + struct ocxl_ioctl_metadata arg; > + > + memset(&arg, 0, sizeof(arg)); > + > + arg.version = 0; > + > + arg.afu_version_major = ctx->afu->config.version_major; > + arg.afu_version_minor = ctx->afu->config.version_minor; > + arg.pasid = ctx->pasid; > + arg.pp_mmio_size = ctx->afu->config.pp_mmio_stride; > + arg.global_mmio_size = ctx->afu->config.global_mmio_size; > + > + if (copy_to_user(uarg, &arg, sizeof(arg))) > + return -EFAULT; > + > + return 0; > +} > + > #define CMD_STR(x) (x == OCXL_IOCTL_ATTACH ? "ATTACH" : \ > x == OCXL_IOCTL_IRQ_ALLOC ? "IRQ_ALLOC" : \ > x == OCXL_IOCTL_IRQ_FREE ? "IRQ_FREE" : \ > x == OCXL_IOCTL_IRQ_SET_FD ? "IRQ_SET_FD" : \ > + x == OCXL_IOCTL_GET_METADATA ? "GET_METADATA" : \ > "UNKNOWN") > > static long afu_ioctl(struct file *file, unsigned int cmd, > @@ -157,6 +179,11 @@ static long afu_ioctl(struct file *file, unsigned int cmd, > irq_fd.eventfd); > break; > > + case OCXL_IOCTL_GET_METADATA: > + rc = afu_ioctl_get_metadata(ctx, > + (struct ocxl_ioctl_metadata __user *) args); > + break; > + > default: > rc = -EINVAL; > } > diff --git a/include/uapi/misc/ocxl.h b/include/uapi/misc/ocxl.h > index 4b0b0b756f3e..0af83d80fb3e 100644 > --- a/include/uapi/misc/ocxl.h > +++ b/include/uapi/misc/ocxl.h > @@ -32,6 +32,22 @@ struct ocxl_ioctl_attach { > __u64 reserved3; > }; > > +struct ocxl_ioctl_metadata { > + __u16 version; // struct version, always backwards compatible > + > + // Version 0 fields > + __u8 afu_version_major; > + __u8 afu_version_minor; > + __u32 pasid; // PASID assigned to the current context > + > + __u64 pp_mmio_size; // Per PASID MMIO size > + __u64 global_mmio_size; > + > + // End version 0 fields > + > + __u64 reserved[13]; // Total of 16*u64 > +}; > + > struct ocxl_ioctl_irq_fd { > __u64 irq_offset; > __s32 eventfd; > @@ -45,5 +61,6 @@ struct ocxl_ioctl_irq_fd { > #define OCXL_IOCTL_IRQ_ALLOC _IOR(OCXL_MAGIC, 0x11, __u64) > #define OCXL_IOCTL_IRQ_FREE _IOW(OCXL_MAGIC, 0x12, __u64) > #define OCXL_IOCTL_IRQ_SET_FD _IOW(OCXL_MAGIC, 0x13, struct ocxl_ioctl_irq_fd) > +#define OCXL_IOCTL_GET_METADATA _IOR(OCXL_MAGIC, 0x14, struct ocxl_ioctl_metadata) > > #endif /* _UAPI_MISC_OCXL_H */ >