From owner-freebsd-virtualization@FreeBSD.ORG Thu Sep 26 08:23:26 2013 Return-Path: Delivered-To: virtualization@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9D20D55F; Thu, 26 Sep 2013 08:23:26 +0000 (UTC) (envelope-from grehan@freebsd.org) Received: from alto.onthenet.com.au (alto.OntheNet.com.au [203.13.68.12]) by mx1.freebsd.org (Postfix) with ESMTP id 5F8F0272B; Thu, 26 Sep 2013 08:23:26 +0000 (UTC) Received: from dommail.onthenet.com.au (dommail.OntheNet.com.au [203.13.70.57]) by alto.onthenet.com.au (Postfix) with ESMTPS id BD1E11238E; Thu, 26 Sep 2013 18:16:11 +1000 (EST) Received: from Peter-Grehans-MacBook-Pro-2.local ([78.133.116.242]) by dommail.onthenet.com.au (MOS 4.2.4-GA) with ESMTP id BOW25026 (AUTH peterg@ptree32.com.au); Thu, 26 Sep 2013 18:16:10 +1000 Message-ID: <5243ED47.8080001@freebsd.org> Date: Thu, 26 Sep 2013 10:16:07 +0200 From: Peter Grehan User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:17.0) Gecko/20130801 Thunderbird/17.0.8 MIME-Version: 1.0 To: Julian Elischer Subject: Re: Xen (and others Hypervisors) how do they handle IPIs? References: <5242F9B8.9090300@freebsd.org> In-Reply-To: <5242F9B8.9090300@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: virtualization@FreeBSD.org X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Sep 2013 08:23:26 -0000 Hi Julian, > If CPUs are mapped around, how are IPIs handled? I assume they must be > emulated? For bhyve, if the target vCPU of an IPI is running, a null IPI is sent on the host to force it to exit so the IPI can be injected (vmm.c:vm_interrupt_hostcpu()). If the target is asleep due to being idle, it is woken up. And, if the target is running but not in vCPU context, an interrupt is queued up so it will be injected on the next vmenter (subject to the emulated local APIC interrupt priority) > Does anyone know if BHyVe or HyperV also have this problem? Hmmm, hard to say. Would you be able to try your workload out on a bhyve system ? later, Peter.