From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH v2 0/9] qemu-kvm: Clean up and enhance MSI irqchip support Date: Wed, 27 Apr 2011 12:14:34 +0300 Message-ID: <4DB7DE7A.4000608@redhat.com> References: <4DB7C56D.8040503@redhat.com> <4DB7DB24.8060403@siemens.com> <4DB7DC11.1010308@redhat.com> <4DB7DC8B.1030402@siemens.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Marcelo Tosatti , "kvm@vger.kernel.org" , "Michael S. Tsirkin" To: Jan Kiszka Return-path: Received: from mx1.redhat.com ([209.132.183.28]:2519 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755561Ab1D0JOj (ORCPT ); Wed, 27 Apr 2011 05:14:39 -0400 In-Reply-To: <4DB7DC8B.1030402@siemens.com> Sender: kvm-owner@vger.kernel.org List-ID: On 04/27/2011 12:06 PM, Jan Kiszka wrote: > > > > We can simply drop all route entries that are used exclusively in qemu > > (i.e. not bound to an irqfd) and let the cache rebuild itself. > > When should they be dropped? Whenever we need to allocate a new routing entry, but cannot because it is full. def kvm_send_msi_message(addr, val): gsi = route_cache.get((addr, val), None) if gsi is None: expire_volatile_route_cache_entries_if_full() gsi = alloc_gsi_cache_entry() route_cache[(addr, val)] = gsi update_route_cache() kvm_irq_line(gsi, 1) kvm_irq_line(gsi, 0) The code would have to be in kvm.c, where it can track whether an entry is volatile or persistent. -- error compiling committee.c: too many arguments to function