Re: [vmw_vmci 00/11] VMCI for Linux
On Thu, Jul 26, 2012 at 9:46 PM, Greg KH wrote: > On Thu, Jul 26, 2012 at 09:06:25PM -0400, Josh Boyer wrote: >> On Thu, Jul 26, 2012 at 7:39 PM, Andrew Stiegmann (stieg) >> wrote: >> > drivers/misc/Kconfig |1 + >> > drivers/misc/Makefile |1 + >> > drivers/misc/vmw_vmci/Kconfig | 16 + >> >> Is there a reason this isn't going into staging first? The Hyper-V >> drivers went through staging and that actually seemed to work fairly >> well. > > Is there some reason you feel this should be in the staging tree now? > Why? Apologies for the delayed reply. Was on vacation. Mostly because this is only one of several drivers. One that the other drivers depend on, and I don't see those posted at all. I'm guessing we'll want changes that will cause those unposted drivers to break. It just seems to make sense to work on the API in staging rather than slam it into drivers/misc/. josh -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [vmw_vmci 00/11] VMCI for Linux
On Thu, Jul 26, 2012 at 9:46 PM, Greg KH gre...@linuxfoundation.org wrote: On Thu, Jul 26, 2012 at 09:06:25PM -0400, Josh Boyer wrote: On Thu, Jul 26, 2012 at 7:39 PM, Andrew Stiegmann (stieg) astiegm...@vmware.com wrote: drivers/misc/Kconfig |1 + drivers/misc/Makefile |1 + drivers/misc/vmw_vmci/Kconfig | 16 + Is there a reason this isn't going into staging first? The Hyper-V drivers went through staging and that actually seemed to work fairly well. Is there some reason you feel this should be in the staging tree now? Why? Apologies for the delayed reply. Was on vacation. Mostly because this is only one of several drivers. One that the other drivers depend on, and I don't see those posted at all. I'm guessing we'll want changes that will cause those unposted drivers to break. It just seems to make sense to work on the API in staging rather than slam it into drivers/misc/. josh -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [vmw_vmci 00/11] VMCI for Linux
On Thu, Jul 26, 2012 at 09:06:25PM -0400, Josh Boyer wrote: > On Thu, Jul 26, 2012 at 7:39 PM, Andrew Stiegmann (stieg) > wrote: > > drivers/misc/Kconfig |1 + > > drivers/misc/Makefile |1 + > > drivers/misc/vmw_vmci/Kconfig | 16 + > > Is there a reason this isn't going into staging first? The Hyper-V > drivers went through staging and that actually seemed to work fairly > well. Is there some reason you feel this should be in the staging tree now? Why? greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [vmw_vmci 00/11] VMCI for Linux
On Thu, Jul 26, 2012 at 7:39 PM, Andrew Stiegmann (stieg) wrote: > drivers/misc/Kconfig |1 + > drivers/misc/Makefile |1 + > drivers/misc/vmw_vmci/Kconfig | 16 + Is there a reason this isn't going into staging first? The Hyper-V drivers went through staging and that actually seemed to work fairly well. josh -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[vmw_vmci 00/11] VMCI for Linux
In an effort to improve the out-of-the-box experience with Linux kernels for VMware users, VMware is working on readying the Virtual Machine Communication Interface (vmw_vmci) and VMCI Sockets (vmw_vsock) kernel modules for inclusion in the Linux kernel. The purpose of this post is to acquire feedback on the vmw_vmci kernel module. The vmw_vsock kernel module will be presented in a later post. VMCI allows virtual machines to communicate with host kernel modules and the VMware hypervisors. User level applications both in a virtual machine and on the host can use vmw_vmci through VMCI Sockets, a socket address family designed to be compatible with UDP and TCP at the interface level. Today, VMCI and VMCI Sockets are used by the VMware shared folders (HGFS) and various VMware Tools components inside the guest for zero-config, network-less access to VMware host services. In addition to this, VMware's users are using VMCI Sockets for various applications, where network access of the virtual machine is restricted or non-existent. Examples of this are VMs communicating with device proxies for proprietary hardware running as host applications and automated testing of applications running within virtual machines. In a virtual machine, VMCI is exposed as a regular PCI device. The primary communication mechanisms supported are a point-to-point bidirectional transport based on a pair of memory-mapped queues, and asynchronous notifications in the form of datagrams and doorbells. These features are available to kernel level components such as HGFS and VMCI Sockets through the VMCI kernel API. In addition to this, the VMCI kernel API provides support for receiving events related to the state of the VMCI communication channels, and the virtual machine itself. Outside the virtual machine, the host side support of the VMCI kernel module makes the same VMCI kernel API available to VMCI endpoints on the host. In addition to this, the host side manages each VMCI device in a virtual machine through a context object. This context object serves to identify the virtual machine for communication, and to track the resource consumption of the given VMCI device. Both operations related to communication between the virtual machine and the host kernel, and those related to the management of the VMCI device state in the host kernel, are invoked by the user level component of the hypervisor through a set of ioctls on the VMCI device node. To provide seamless support for nested virtualization, where a virtual machine may use both a VMCI PCI device to talk to its hypervisor, and the VMCI host side support to run nested virtual machines, the VMCI host and virtual machine support are combined in a single kernel module. For additional information about the use of VMCI and in particular VMCI Sockets, please refer to the VMCI Socket Programming Guide available at https://www.vmware.com/support/developer/vmci-sdk/. Andrew Stiegmann (stieg) (11): Apply VMCI context code Apply VMCI datagram code Apply VMCI doorbell code Apply VMCI driver code Apply VMCI event code Apply dynamic array code Apply VMCI hash table Apply VMCI queue pairs Apply VMCI resource code Apply vmci routing code Apply the header code to make VMCI build drivers/misc/Kconfig |1 + drivers/misc/Makefile |1 + drivers/misc/vmw_vmci/Kconfig | 16 + drivers/misc/vmw_vmci/Makefile| 43 + drivers/misc/vmw_vmci/vmci_common_int.h | 58 + drivers/misc/vmw_vmci/vmci_context.c | 1269 +++ drivers/misc/vmw_vmci/vmci_context.h | 161 ++ drivers/misc/vmw_vmci/vmci_datagram.c | 586 + drivers/misc/vmw_vmci/vmci_datagram.h | 56 + drivers/misc/vmw_vmci/vmci_doorbell.c | 751 ++ drivers/misc/vmw_vmci/vmci_doorbell.h | 57 + drivers/misc/vmw_vmci/vmci_driver.c | 2298 +++ drivers/misc/vmw_vmci/vmci_driver.h | 52 + drivers/misc/vmw_vmci/vmci_event.c| 451 drivers/misc/vmw_vmci/vmci_event.h| 29 + drivers/misc/vmw_vmci/vmci_handle_array.c | 174 ++ drivers/misc/vmw_vmci/vmci_handle_array.h | 50 + drivers/misc/vmw_vmci/vmci_hash_table.c | 332 +++ drivers/misc/vmw_vmci/vmci_hash_table.h | 56 + drivers/misc/vmw_vmci/vmci_queue_pair.c | 3548 + drivers/misc/vmw_vmci/vmci_queue_pair.h | 182 ++ drivers/misc/vmw_vmci/vmci_resource.c | 194 ++ drivers/misc/vmw_vmci/vmci_resource.h | 62 + drivers/misc/vmw_vmci/vmci_route.c| 241 ++ drivers/misc/vmw_vmci/vmci_route.h| 34 + include/linux/vmw_vmci_api.h | 89 + include/linux/vmw_vmci_defs.h | 921 27 files changed, 11712 insertions(+), 0 deletions(-) create mode 100644 drivers/misc/vmw_vmci/Kconfig create mode 100644 drivers/misc/vmw_vmci/Makefile create mode 100644 drivers/misc/vmw_vmci/vmci_common_int.h create mode 100644
Re: [vmw_vmci 00/11] VMCI for Linux
On Thu, Jul 26, 2012 at 04:39:29PM -0700, Andrew Stiegmann (stieg) wrote: > In an effort to improve the out-of-the-box experience with Linux > kernels for VMware users, VMware is working on readying the Virtual > Machine Communication Interface (vmw_vmci) and VMCI Sockets > (vmw_vsock) kernel modules for inclusion in the Linux kernel. The > purpose of this post is to acquire feedback on the vmw_vmci kernel > module. The vmw_vsock kernel module will be presented in a later post. Ugh, you do realize this is the middle of the merge window when we are all busy doing other things than code review of new stuff, right? It's going to be a few weeks before I can look at this, sorry. good luck, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [vmw_vmci 00/11] VMCI for Linux
On Thu, Jul 26, 2012 at 04:39:29PM -0700, Andrew Stiegmann (stieg) wrote: In an effort to improve the out-of-the-box experience with Linux kernels for VMware users, VMware is working on readying the Virtual Machine Communication Interface (vmw_vmci) and VMCI Sockets (vmw_vsock) kernel modules for inclusion in the Linux kernel. The purpose of this post is to acquire feedback on the vmw_vmci kernel module. The vmw_vsock kernel module will be presented in a later post. Ugh, you do realize this is the middle of the merge window when we are all busy doing other things than code review of new stuff, right? It's going to be a few weeks before I can look at this, sorry. good luck, greg k-h -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[vmw_vmci 00/11] VMCI for Linux
In an effort to improve the out-of-the-box experience with Linux kernels for VMware users, VMware is working on readying the Virtual Machine Communication Interface (vmw_vmci) and VMCI Sockets (vmw_vsock) kernel modules for inclusion in the Linux kernel. The purpose of this post is to acquire feedback on the vmw_vmci kernel module. The vmw_vsock kernel module will be presented in a later post. VMCI allows virtual machines to communicate with host kernel modules and the VMware hypervisors. User level applications both in a virtual machine and on the host can use vmw_vmci through VMCI Sockets, a socket address family designed to be compatible with UDP and TCP at the interface level. Today, VMCI and VMCI Sockets are used by the VMware shared folders (HGFS) and various VMware Tools components inside the guest for zero-config, network-less access to VMware host services. In addition to this, VMware's users are using VMCI Sockets for various applications, where network access of the virtual machine is restricted or non-existent. Examples of this are VMs communicating with device proxies for proprietary hardware running as host applications and automated testing of applications running within virtual machines. In a virtual machine, VMCI is exposed as a regular PCI device. The primary communication mechanisms supported are a point-to-point bidirectional transport based on a pair of memory-mapped queues, and asynchronous notifications in the form of datagrams and doorbells. These features are available to kernel level components such as HGFS and VMCI Sockets through the VMCI kernel API. In addition to this, the VMCI kernel API provides support for receiving events related to the state of the VMCI communication channels, and the virtual machine itself. Outside the virtual machine, the host side support of the VMCI kernel module makes the same VMCI kernel API available to VMCI endpoints on the host. In addition to this, the host side manages each VMCI device in a virtual machine through a context object. This context object serves to identify the virtual machine for communication, and to track the resource consumption of the given VMCI device. Both operations related to communication between the virtual machine and the host kernel, and those related to the management of the VMCI device state in the host kernel, are invoked by the user level component of the hypervisor through a set of ioctls on the VMCI device node. To provide seamless support for nested virtualization, where a virtual machine may use both a VMCI PCI device to talk to its hypervisor, and the VMCI host side support to run nested virtual machines, the VMCI host and virtual machine support are combined in a single kernel module. For additional information about the use of VMCI and in particular VMCI Sockets, please refer to the VMCI Socket Programming Guide available at https://www.vmware.com/support/developer/vmci-sdk/. Andrew Stiegmann (stieg) (11): Apply VMCI context code Apply VMCI datagram code Apply VMCI doorbell code Apply VMCI driver code Apply VMCI event code Apply dynamic array code Apply VMCI hash table Apply VMCI queue pairs Apply VMCI resource code Apply vmci routing code Apply the header code to make VMCI build drivers/misc/Kconfig |1 + drivers/misc/Makefile |1 + drivers/misc/vmw_vmci/Kconfig | 16 + drivers/misc/vmw_vmci/Makefile| 43 + drivers/misc/vmw_vmci/vmci_common_int.h | 58 + drivers/misc/vmw_vmci/vmci_context.c | 1269 +++ drivers/misc/vmw_vmci/vmci_context.h | 161 ++ drivers/misc/vmw_vmci/vmci_datagram.c | 586 + drivers/misc/vmw_vmci/vmci_datagram.h | 56 + drivers/misc/vmw_vmci/vmci_doorbell.c | 751 ++ drivers/misc/vmw_vmci/vmci_doorbell.h | 57 + drivers/misc/vmw_vmci/vmci_driver.c | 2298 +++ drivers/misc/vmw_vmci/vmci_driver.h | 52 + drivers/misc/vmw_vmci/vmci_event.c| 451 drivers/misc/vmw_vmci/vmci_event.h| 29 + drivers/misc/vmw_vmci/vmci_handle_array.c | 174 ++ drivers/misc/vmw_vmci/vmci_handle_array.h | 50 + drivers/misc/vmw_vmci/vmci_hash_table.c | 332 +++ drivers/misc/vmw_vmci/vmci_hash_table.h | 56 + drivers/misc/vmw_vmci/vmci_queue_pair.c | 3548 + drivers/misc/vmw_vmci/vmci_queue_pair.h | 182 ++ drivers/misc/vmw_vmci/vmci_resource.c | 194 ++ drivers/misc/vmw_vmci/vmci_resource.h | 62 + drivers/misc/vmw_vmci/vmci_route.c| 241 ++ drivers/misc/vmw_vmci/vmci_route.h| 34 + include/linux/vmw_vmci_api.h | 89 + include/linux/vmw_vmci_defs.h | 921 27 files changed, 11712 insertions(+), 0 deletions(-) create mode 100644 drivers/misc/vmw_vmci/Kconfig create mode 100644 drivers/misc/vmw_vmci/Makefile create mode 100644 drivers/misc/vmw_vmci/vmci_common_int.h create mode 100644
Re: [vmw_vmci 00/11] VMCI for Linux
On Thu, Jul 26, 2012 at 7:39 PM, Andrew Stiegmann (stieg) astiegm...@vmware.com wrote: drivers/misc/Kconfig |1 + drivers/misc/Makefile |1 + drivers/misc/vmw_vmci/Kconfig | 16 + Is there a reason this isn't going into staging first? The Hyper-V drivers went through staging and that actually seemed to work fairly well. josh -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [vmw_vmci 00/11] VMCI for Linux
On Thu, Jul 26, 2012 at 09:06:25PM -0400, Josh Boyer wrote: On Thu, Jul 26, 2012 at 7:39 PM, Andrew Stiegmann (stieg) astiegm...@vmware.com wrote: drivers/misc/Kconfig |1 + drivers/misc/Makefile |1 + drivers/misc/vmw_vmci/Kconfig | 16 + Is there a reason this isn't going into staging first? The Hyper-V drivers went through staging and that actually seemed to work fairly well. Is there some reason you feel this should be in the staging tree now? Why? greg k-h -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/