All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Liu, Shuo A" <shuo.a.liu@intel.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
	"H . Peter Anvin" <hpa@zytor.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Sean Christopherson <sean.j.christopherson@intel.com>,
	Yu Wang <yu1.wang@intel.com>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Dave Hansen <dave.hansen@intel.com>,
	Zhi Wang <zhi.a.wang@intel.com>,
	Zhenyu Wang <zhenyuw@linux.intel.com>
Subject: Re: [PATCH v2 05/17] virt: acrn: Introduce ACRN HSM basic driver
Date: Fri, 4 Sep 2020 09:12:47 +0800	[thread overview]
Message-ID: <f2f33bee-8aef-f2e6-89a3-4e417dc6071d@intel.com> (raw)
In-Reply-To: <20200903125359.GA2778029@kroah.com>



On 9/3/2020 20:53, Greg Kroah-Hartman wrote:
> On Thu, Sep 03, 2020 at 08:41:49PM +0800, shuo.a.liu@intel.com wrote:
>> From: Shuo Liu <shuo.a.liu@intel.com>
>>
>> ACRN Hypervisor Service Module (HSM) is a kernel module in Service VM
>> which communicates with ACRN userspace through ioctls and talks to ACRN
>> Hypervisor through hypercalls.
>>
>> Add a basic HSM driver which allows Service VM userspace to communicate
>> with ACRN. The following patches will add more ioctls, guest VM memory
>> mapping caching, I/O request processing, ioeventfd and irqfd into this
>> module. HSM exports a char device interface (/dev/acrn_hsm) to userspace.
>>
>> Signed-off-by: Shuo Liu <shuo.a.liu@intel.com>
>> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
>> Cc: Dave Hansen <dave.hansen@intel.com>
>> Cc: Zhi Wang <zhi.a.wang@intel.com>
>> Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
>> Cc: Yu Wang <yu1.wang@intel.com>
>> Cc: Reinette Chatre <reinette.chatre@intel.com>
>> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>> ---
>>  .../userspace-api/ioctl/ioctl-number.rst      |  1 +
>>  MAINTAINERS                                   |  2 +
>>  drivers/virt/Kconfig                          |  2 +
>>  drivers/virt/Makefile                         |  1 +
>>  drivers/virt/acrn/Kconfig                     | 14 +++
>>  drivers/virt/acrn/Makefile                    |  3 +
>>  drivers/virt/acrn/acrn_drv.h                  | 19 ++++
>>  drivers/virt/acrn/hsm.c                       | 98 +++++++++++++++++++
>>  include/uapi/linux/acrn.h                     | 17 ++++
>>  9 files changed, 157 insertions(+)
>>  create mode 100644 drivers/virt/acrn/Kconfig
>>  create mode 100644 drivers/virt/acrn/Makefile
>>  create mode 100644 drivers/virt/acrn/acrn_drv.h
>>  create mode 100644 drivers/virt/acrn/hsm.c
>>  create mode 100644 include/uapi/linux/acrn.h
>>
>> diff --git a/Documentation/userspace-api/ioctl/ioctl-number.rst b/Documentation/userspace-api/ioctl/ioctl-number.rst
>> index 2a198838fca9..ac60efedb104 100644
>> --- a/Documentation/userspace-api/ioctl/ioctl-number.rst
>> +++ b/Documentation/userspace-api/ioctl/ioctl-number.rst
>> @@ -319,6 +319,7 @@ Code  Seq#    Include File                                           Comments
>>  0xA0  all    linux/sdp/sdp.h                                         Industrial Device Project
>>                                                                       <mailto:kenji@bitgate.com>
>>  0xA1  0      linux/vtpm_proxy.h                                      TPM Emulator Proxy Driver
>> +0xA2  all    uapi/linux/acrn.h                                       ACRN hypervisor
> 
> You don't have any ioctls in this patch, so why add this documentation
> here? 

This was left when i removed an api version ioctl from the v1 patch set.
Let me move it to a later patch.

>>  0xA3  80-8F                                                          Port ACL  in development:
>>                                                                       <mailto:tlewis@mindspring.com>
>>  0xA3  90-9F  linux/dtlk.h
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index e0fea5e464b4..d4c1ef303c2d 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -442,6 +442,8 @@ L:	acrn-dev@lists.projectacrn.org
>>  S:	Supported
>>  W:	https://projectacrn.org
>>  F:	Documentation/virt/acrn/
>> +F:	drivers/virt/acrn/
>> +F:	include/uapi/linux/acrn.h
> 
> This uapi file is not used in this patch, please add it in a later
> patch.

OK.

> 
>> +static long acrn_dev_ioctl(struct file *filp, unsigned int cmd,
>> +			   unsigned long ioctl_param)
>> +{
>> +	return 0;
>> +}
> 
> As your ioctl does nothing, no need to include it here, add it in a
> later patch.

OK.

> 
>> +
>> +static int acrn_dev_release(struct inode *inode, struct file *filp)
>> +{
>> +	struct acrn_vm *vm = filp->private_data;
>> +
>> +	kfree(vm);
>> +	return 0;
>> +}
>> +
>> +static const struct file_operations acrn_fops = {
>> +	.owner		= THIS_MODULE,
>> +	.open		= acrn_dev_open,
>> +	.release	= acrn_dev_release,
>> +	.unlocked_ioctl	= acrn_dev_ioctl,
>> +};
>> +
>> +static struct miscdevice acrn_dev = {
>> +	.minor	= MISC_DYNAMIC_MINOR,
>> +	.name	= "acrn_hsm",
>> +	.fops	= &acrn_fops,
>> +};
>> +
>> +static int __init hsm_init(void)
>> +{
>> +	int ret;
>> +
>> +	if (x86_hyper_type != X86_HYPER_ACRN)
>> +		return -ENODEV;
>> +
>> +	if (!acrn_is_privileged_vm())
>> +		return -EPERM;
>> +
>> +	ret = misc_register(&acrn_dev);
>> +	if (ret) {
>> +		pr_err("Create misc dev failed!\n");
>> +		return ret;
>> +	}
>> +
>> +	return 0;
> 
> Tiny tiny nit, these lines can be rewritten as:
> 	if (ret)
> 		pr_err("Create misc dev failed!\n");
> 
> 	return ret;
> 
> :)

OK. Thanks.

> 
>> +}
>> +
>> +static void __exit hsm_exit(void)
>> +{
>> +	misc_deregister(&acrn_dev);
>> +}
>> +module_init(hsm_init);
>> +module_exit(hsm_exit);
>> +
>> +MODULE_AUTHOR("Intel Corporation");
>> +MODULE_LICENSE("GPL");
>> +MODULE_DESCRIPTION("ACRN Hypervisor Service Module (HSM)");
>> diff --git a/include/uapi/linux/acrn.h b/include/uapi/linux/acrn.h
>> new file mode 100644
>> index 000000000000..4ae34f86e2be
>> --- /dev/null
>> +++ b/include/uapi/linux/acrn.h
>> @@ -0,0 +1,17 @@
>> +/* 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 <linux/types.h>
>> +
>> +/* The ioctl type, documented in ioctl-number.rst */
>> +#define ACRN_IOCTL_TYPE			0xA2
> 
> This isn't used in this patch, so save it for a later one please.

Sure. I will move to later one.

Thanks
shuo

  reply	other threads:[~2020-09-04  1:12 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-03 12:41 [PATCH v2 00/17] HSM driver for ACRN hypervisor shuo.a.liu
2020-09-03 12:41 ` [PATCH v2 01/17] docs: acrn: Introduce ACRN shuo.a.liu
2020-09-03 12:41 ` [PATCH v2 02/17] x86/acrn: Introduce acrn_{setup, remove}_intr_handler() shuo.a.liu
2020-09-03 12:41 ` [PATCH v2 03/17] x86/acrn: Introduce an API to check if a VM is privileged shuo.a.liu
2020-09-03 12:41 ` [PATCH v2 04/17] x86/acrn: Introduce hypercall interfaces shuo.a.liu
2020-09-03 12:41 ` [PATCH v2 05/17] virt: acrn: Introduce ACRN HSM basic driver shuo.a.liu
2020-09-03 12:53   ` Greg Kroah-Hartman
2020-09-04  1:12     ` Liu, Shuo A [this message]
2020-09-03 12:41 ` [PATCH v2 06/17] virt: acrn: Introduce VM management interfaces shuo.a.liu
2020-09-03 13:02   ` Greg Kroah-Hartman
2020-09-04  4:29     ` Liu, Shuo A
2020-09-03 12:41 ` [PATCH v2 07/17] virt: acrn: Introduce an ioctl to set vCPU registers state shuo.a.liu
2020-09-03 13:03   ` Greg Kroah-Hartman
2020-09-04  4:39     ` Liu, Shuo A
2020-09-03 12:41 ` [PATCH v2 08/17] virt: acrn: Introduce EPT mapping management shuo.a.liu
2020-09-03 12:41 ` [PATCH v2 09/17] virt: acrn: Introduce I/O request management shuo.a.liu
2020-09-03 12:41 ` [PATCH v2 10/17] virt: acrn: Introduce PCI configuration space PIO accesses combiner shuo.a.liu
2020-09-03 12:41 ` [PATCH v2 11/17] virt: acrn: Introduce interfaces for PCI device passthrough shuo.a.liu
2020-09-03 12:41 ` [PATCH v2 12/17] virt: acrn: Introduce interrupt injection interfaces shuo.a.liu
2020-09-03 12:41 ` [PATCH v2 13/17] virt: acrn: Introduce interfaces to query C-states and P-states allowed by hypervisor shuo.a.liu
2020-09-03 12:41 ` [PATCH v2 14/17] virt: acrn: Introduce I/O ranges operation interfaces shuo.a.liu
2020-09-03 12:41 ` [PATCH v2 15/17] virt: acrn: Introduce ioeventfd shuo.a.liu
2020-09-03 12:42 ` [PATCH v2 16/17] virt: acrn: Introduce irqfd shuo.a.liu
2020-09-03 12:42 ` [PATCH v2 17/17] virt: acrn: Introduce an interface for Service VM to control vCPU shuo.a.liu

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=f2f33bee-8aef-f2e6-89a3-4e417dc6071d@intel.com \
    --to=shuo.a.liu@intel.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=reinette.chatre@intel.com \
    --cc=sean.j.christopherson@intel.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=yu1.wang@intel.com \
    --cc=zhenyuw@linux.intel.com \
    --cc=zhi.a.wang@intel.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.