Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752201Ab2BXFYs (ORCPT ); Fri, 24 Feb 2012 00:24:48 -0500 Received: from mail-wi0-f174.google.com ([209.85.212.174]:54213 "EHLO mail-wi0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751087Ab2BXFYr convert rfc822-to-8bit (ORCPT ); Fri, 24 Feb 2012 00:24:47 -0500 Authentication-Results: mr.google.com; spf=pass (google.com: domain of jidong.xiao@gmail.com designates 10.180.85.105 as permitted sender) smtp.mail=jidong.xiao@gmail.com; dkim=pass header.i=jidong.xiao@gmail.com MIME-Version: 1.0 Date: Fri, 24 Feb 2012 00:24:45 -0500 Message-ID: Subject: Re: [PATCH 00/14] RFC: VMCI for Linux From: Jidong Xiao To: "Andrew Stiegmann (stieg)" Cc: Kernel development list , vm-crosstalk@vmware.com, dtor@vmware.com, cschamp@vmware.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3740 Lines: 65 On Tue, 14 Feb 2012 17:05:41, "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 (VMCI) and VMCI Sockets (vsock) kernel > modules for inclusion in the Linux kernel. The purpose of this initial > post is to both show how much we love Linux on Valentine's day and > request early feedback on the VMCI kernel module with the > intent of addressing any major issues early in the process. The VMCI > Socket 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 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/. Hi, Andrew, Are your patches used for communication between a Linux guest OS and VMware host? What if I want a Guest OS running on top of Linux/KVM to communicate with the Linux/KVM hypervisor? Or two guest OSes running on top of Linux/KVM. Regards Jidong -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/