Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp299700pxb; Wed, 4 Nov 2020 23:38:43 -0800 (PST) X-Google-Smtp-Source: ABdhPJzExWWeyKM3bJggztjRdKWNeB7FzgYJH3jlR2g26ssD+0PYW6Uq2tdQNc9J+xL7efQHSnA9 X-Received: by 2002:a17:906:3614:: with SMTP id q20mr1000961ejb.297.1604561923216; Wed, 04 Nov 2020 23:38:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604561923; cv=none; d=google.com; s=arc-20160816; b=IWuoEqGHe9x5uonGEkNRXd2uYqzkvdIC5g+jN8cHf7kZJ0v2Lerp74q8T1vHnOr1HQ EOHg2f55JNVp5BsPz3wsxs64V/6mfEXqfE+8g0vwykumXzpqGKMZMC+ryxeIvRkFw5nS Okz50683coBxP1w4B5GLnhEN6zJO5Kpz0XKDcIilcstYVhLEWfJ4MTRxs9CKJGmFCCAv 1px129tzg5wWCSCrcT49R8CH397N13fwejmIQa9Bp634bX/bJ/E3st6vFHG1/zRllg0n x7PwWdczE5olZ64mz1z+MTPRbVsTgMnT/Rg4SO17jGrBrFUS3Sezcpe89NjRMGbz1YA5 YaeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :ironport-sdr:ironport-sdr; bh=EX4/E9H4c0GsEm+NGlrg7LXXpV05W6FqpDCggp6kUh4=; b=TuIqLOTvAK/8BaA/wa0FjebhKjF0e03oJeas7kCSp6Xp9VCy5Jeq1LrWR+a3tGqANI +ji+O6N+s4SnfbB6yVajurKLLHEEX/bCl7kgYEtxioufZTRL6J7asEVY0/+yyqOBobeT toz7+uIwFfV2MspsuO2juWS0HwcXGrfm+uDO1jPmBCjswQ+sqZVlHzXt40IlobyJayem Ce+YQ4+N/NCR7Kt1SIcQmoAXBGZhCFA20NTMG6cbLZA40IYZmOOC5RLzY2oeoOqllz6Y 7cnwTvCXL7MCcKbXh61Bur2t5j7FcBDVI0BB+WcU5NuKnBnBlRYyNVzNmRyU097tBPci 77Qw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dk17si544307edb.383.2020.11.04.23.38.19; Wed, 04 Nov 2020 23:38:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728508AbgKEHfw (ORCPT + 99 others); Thu, 5 Nov 2020 02:35:52 -0500 Received: from mga06.intel.com ([134.134.136.31]:8279 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725287AbgKEHfw (ORCPT ); Thu, 5 Nov 2020 02:35:52 -0500 IronPort-SDR: XVKRiZYV1FzzrSyLk6JebWJgZQa7QpLKRwjR7aMh9IZsBEy0H4RxyixfMrUAhd5qAIE9mIcgG4 SAFelEXlqoiA== X-IronPort-AV: E=McAfee;i="6000,8403,9795"; a="230968783" X-IronPort-AV: E=Sophos;i="5.77,453,1596524400"; d="scan'208";a="230968783" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Nov 2020 23:35:50 -0800 IronPort-SDR: pYepc2Da3JIP1u8Tj1XEp/Qu+ohzz8DSU4gFDjGJlH1bino9HFS6gZ8UsKuLDRzm50zrGU8npl mzpjWbnVTh4w== X-IronPort-AV: E=Sophos;i="5.77,453,1596524400"; d="scan'208";a="539268550" Received: from shuo-intel.sh.intel.com (HELO localhost) ([10.239.154.30]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Nov 2020 23:35:47 -0800 Date: Thu, 5 Nov 2020 15:35:45 +0800 From: Shuo A Liu To: Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, x86@kernel.org, "H . Peter Anvin" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Sean Christopherson , Yu Wang , Reinette Chatre , Zhi Wang , Zhenyu Wang Subject: Re: [PATCH v5 06/17] virt: acrn: Introduce VM management interfaces Message-ID: <20201105073545.GD17702@shuo-intel.sh.intel.com> References: <20201019061803.13298-1-shuo.a.liu@intel.com> <20201019061803.13298-7-shuo.a.liu@intel.com> <20201104190235.GA2855400@kroah.com> <20201105031029.GB17702@shuo-intel.sh.intel.com> <20201105062907.GA693781@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <20201105062907.GA693781@kroah.com> User-Agent: Mutt/1.8.3 (2017-05-23) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu 5.Nov'20 at 7:29:07 +0100, Greg Kroah-Hartman wrote: >On Thu, Nov 05, 2020 at 11:10:29AM +0800, Shuo A Liu wrote: >> On Wed 4.Nov'20 at 20:02:35 +0100, Greg Kroah-Hartman wrote: >> > On Mon, Oct 19, 2020 at 02:17:52PM +0800, shuo.a.liu@intel.com wrote: >> > > --- /dev/null >> > > +++ b/include/uapi/linux/acrn.h >> > > @@ -0,0 +1,56 @@ >> > > +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ >> > > +/* >> > > + * Userspace interface for /dev/acrn_hsm - ACRN Hypervisor Service Module >> > > + * >> > > + * This file can be used by applications that need to communicate with the HSM >> > > + * via the ioctl interface. >> > > + */ >> > > + >> > > +#ifndef _UAPI_ACRN_H >> > > +#define _UAPI_ACRN_H >> > > + >> > > +#include >> > > + >> > > +/** >> > > + * struct acrn_vm_creation - Info to create a User VM >> > > + * @vmid: User VM ID returned from the hypervisor >> > > + * @reserved0: Reserved >> > > + * @vcpu_num: Number of vCPU in the VM. Return from hypervisor. >> > > + * @reserved1: Reserved >> > > + * @uuid: UUID of the VM. Pass to hypervisor directly. >> > > + * @vm_flag: Flag of the VM creating. Pass to hypervisor directly. >> > > + * @ioreq_buf: Service VM GPA of I/O request buffer. Pass to >> > > + * hypervisor directly. >> > > + * @cpu_affinity: CPU affinity of the VM. Pass to hypervisor directly. >> > > + * @reserved2: Reserved >> > >> > Reserved and must be 0? >> >> Not a must. > >That's guaranteed to come back and bite you in the end. OK. I can fill them with zero before passing them to hypervisor. >You all have read the "how to write a good api" document, right? Is it Documentation/driver-api/ioctl.rst? Or i missed.. > >> > What are they reserved for? >> > >> > Same for all of the reserved fields, why? >> >> Some reserved fields are to map layout in the hypervisor side, others >> are for future use. > >ioctls should not have these, again, please read the documentation. If >you need something new in the future, just make a new ioctl. OK. I will remove some reserved fields for scalability. Though i can keep some reserved fields for alignment (and to keep same data structure layout with the hypervisor), right? Documentation/driver-api/ioctl.rst says that explicit reserved fields could be used. > >> > > + */ >> > > +struct acrn_vm_creation { >> > > + __u16 vmid; >> > > + __u16 reserved0; >> > > + __u16 vcpu_num; >> > > + __u16 reserved1; >> > > + __u8 uuid[16]; >> > >> > We have a userspace-visable uid structure in include/uapi/uuid.h, why >> > not use that? >> >> we just pass the uuid data from user space to hypervisor. So, we can >> remove a header dependeny with using raw data format. > >I do not understand this, please use the built-in kernel types we have. OK. I will use that. Thanks shuo