All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Sasha Levin <levinsasha928@gmail.com>
Cc: kvm@vger.kernel.org, Marcelo Tosatti <mtosatti@redhat.com>
Subject: Re: [PATCH] MMIO: Make coalesced mmio use a device per zone
Date: Tue, 19 Jul 2011 13:32:36 +0300	[thread overview]
Message-ID: <4E255D44.8000107@redhat.com> (raw)
In-Reply-To: <1311070673.9174.4.camel@lappy>

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


  reply	other threads:[~2011-07-19 10:32 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-19  8:10 [PATCH] MMIO: Make coalesced mmio use a device per zone Sasha Levin
2011-07-19  8:48 ` Avi Kivity
2011-07-19  9:53   ` Sasha Levin
2011-07-19  9:59     ` Avi Kivity
2011-07-19 10:17       ` Sasha Levin
2011-07-19 10:32         ` Avi Kivity [this message]
2011-07-19 11:22           ` Sasha Levin
2011-07-19 11:45             ` Sasha Levin
2011-07-19 17:14           ` Jan Kiszka
2011-07-19 17:17             ` Avi Kivity
2011-07-19 17:23               ` Jan Kiszka
2011-07-19 19:28                 ` Sasha Levin
2011-07-19 20:00                   ` Jan Kiszka
2011-07-20  8:24                 ` Avi Kivity
2011-07-20  8:43                   ` Jan Kiszka
2011-07-20  8:52                     ` Avi Kivity
2011-07-20  8:55                       ` Jan Kiszka
2011-07-20  8:58                         ` Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E255D44.8000107@redhat.com \
    --to=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=levinsasha928@gmail.com \
    --cc=mtosatti@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.