From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: Userspace hypercalls? Date: Mon, 27 Aug 2007 12:32:22 -0500 Message-ID: <1188235942.6364.12.camel@squirrel> References: <1188228447.12698.8.camel@squirrel> <46D2F8FA.6050104@qumranet.com> <46D2FCE1.7020605@qumranet.com> <46D3001A.9070706@qumranet.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm-devel To: Avi Kivity Return-path: In-Reply-To: <46D3001A.9070706-atKUWr5tajBWk0Htik3J/w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org On Mon, 2007-08-27 at 19:47 +0300, Avi Kivity wrote: > Avi Kivity wrote: > > > > Thinking a little more about this, it isn't about handling hypercalls > > in userspace, but about handling a virtio sync() in userspace. > > > > So how about having a KVM_HC_WAKE_CHANNEL hypercall (similar to Xen's > > event channel, but assymetric) that has a channel parameter. The > > kernel handler for that hypercall dispatches calls to either a kernel > > handler or a userspace handler. That means we don't need a separate > > ETH_SEND, ETH_RECEIVE, or BLOCK_SEND hypercalls. > > And thinking a tiny little bit more about this, we can have the kernel > (optionally) fire an eventfd, so a separate userspace thread or process > can be woken up to service the device, without a heavyweight exit. Yes, I think this is much nicer. By "calls to ... a userspace handler" I presume you mean generating an exit to userspace with a new exit type similar to how hypercalls work today? Regards, Anthony Liguori ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/