From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH] MMIO: Make coalesced mmio use a device per zone Date: Tue, 19 Jul 2011 13:32:36 +0300 Message-ID: <4E255D44.8000107@redhat.com> References: <1311063011-4430-1-git-send-email-levinsasha928@gmail.com> <4E2544F3.9030203@redhat.com> <1311069182.9174.1.camel@lappy> <4E255584.1030003@redhat.com> <1311070673.9174.4.camel@lappy> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, Marcelo Tosatti To: Sasha Levin Return-path: Received: from mx1.redhat.com ([209.132.183.28]:32875 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750954Ab1GSKco (ORCPT ); Tue, 19 Jul 2011 06:32:44 -0400 In-Reply-To: <1311070673.9174.4.camel@lappy> Sender: kvm-owner@vger.kernel.org List-ID: On 07/19/2011 01:17 PM, Sasha Levin wrote: > On Tue, 2011-07-19 at 12:59 +0300, Avi Kivity wrote: > > On 07/19/2011 12:53 PM, Sasha Levin wrote: > > > > Make these per-guest instead of global. The lock may be contended, and > > > > the list shouldn't hold items from different guests (why is it needed, > > > > anyway?) > > > > > > > > > > We only need the list for removal, since we only have the range we want > > > to remove, and we want to find all devices which contain this range. > > > > > > > All devices in the same guest which contain this range. Your patch > > removes devices from all guests. > > > > Yup. I've messed up guest-locality. Will fix. > > Also, I found this comment when increasing NR_IOBUS_DEVS: > > /* > * It would be nice to use something smarter than a linear search, TBD... > * Thankfully we dont expect many devices to register (famous last words :), > * so until then it will suffice. At least its abstracted so we can change > * in one place. > */ > > Since so far we've registered 5-6 devices, and now it may increase > significantly (since we may want to do the same change to ioeventfds, > which work the same way) - how would you feel if we make devices > register range(s) and do a rbtree lookup instead of a linear search? > It makes sense. In fact your change is a good first step - so far it was impossible to to a clever search since the seaching code was not aware of the ranges (and could not be, since the single coalesced mmio device had multiple ranges). Rather than an rbtree, I suggest putting all ranges in an array and sorting it, then using binary search. -- error compiling committee.c: too many arguments to function