Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754367AbbHRT5t (ORCPT ); Tue, 18 Aug 2015 15:57:49 -0400 Received: from mail-pa0-f49.google.com ([209.85.220.49]:34386 "EHLO mail-pa0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754348AbbHRT5q (ORCPT ); Tue, 18 Aug 2015 15:57:46 -0400 Subject: Re: [PATCH v2 4/5] KVM: add KVM_USER_EXIT vcpu ioctl for userspace exit To: Avi Kivity , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , linux-kernel@vger.kernel.org References: <1438792381-19453-1-git-send-email-rkrcmar@redhat.com> <1438792381-19453-5-git-send-email-rkrcmar@redhat.com> <55D0F219.6020502@gmail.com> <55D1DE8F.4050806@redhat.com> <55D379C2.9020608@gmail.com> Cc: kvm@vger.kernel.org From: Paolo Bonzini X-Enigmail-Draft-Status: N1110 Message-ID: <55D38E37.5060709@redhat.com> Date: Tue, 18 Aug 2015 12:57:43 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <55D379C2.9020608@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1696 Lines: 40 On 18/08/2015 11:30, Avi Kivity wrote: >> KVM_USER_EXIT in practice should be so rare (at least with in-kernel >> LAPIC) that I don't think this matters. KVM_USER_EXIT is relatively >> uninteresting, it only exists to provide an alternative to signals that >> doesn't require expensive atomics on each and every KVM_RUN. :( > > Ah, so the idea is to remove the cost of changing the signal mask? Yes, it's explained in the cover letter. > Yes, although it looks like a thread-local operation, it takes a > process-wide lock. IIRC the lock was only task-wide and uncontended. Problem is, it's on the node that created the thread rather than the node that is running it, and inter-node atomics are really, really slow. For guests spanning >1 host NUMA nodes it's not really practical to ensure that the thread is created on the right node. Even for guests that fit into 1 host node, if you rely on AutoNUMA the VCPUs are created too early for AutoNUMA to have any effect. And newer machines have frighteningly small nodes (two nodes per socket, so it's something like 7 pCPUs if you don't have hyper-threading enabled). True, the NUMA penalty within the same socket is not huge, but it still costs a few thousand clock cycles on vmexit.flat and this feature sweeps it away completely. > I expect most user wakeups are via irqfd, so indeed the performance of > KVM_USER_EXIT is uninteresting. Yup, either irqfd or KVM_SET_SIGNAL_MSI. Paolo -- 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/