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, Ingo Molnar <mingo@elte.hu>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Pekka Enberg <penberg@kernel.org>
Subject: Re: [PATCH] x86: Raise the hard VCPU count limit
Date: Thu, 14 Jul 2011 11:14:39 +0300	[thread overview]
Message-ID: <4E1EA56F.8070305@redhat.com> (raw)
In-Reply-To: <1310587247.28301.2.camel@lappy>

On 07/13/2011 11:00 PM, Sasha Levin wrote:
> On Wed, 2011-07-13 at 16:30 +0300, Avi Kivity wrote:
> >  On 07/09/2011 03:25 PM, Sasha Levin wrote:
> >  >  The patch raises the hard limit of VCPU count to 1024.
> >  >
> >  >  This will allow developers to easily work on scalability
> >  >  and will allow users to test high VCPU setups easily without
> >  >  patching the kernel.
> >  >
> >  >  To prevent possible issues with current setups, KVM_CAP_NR_VCPUS
> >  >  now returns the recommended VCPU limit (which is still 64) - this
> >  >  should be a safe value for everybody, while a new KVM_CAP_MAX_VCPUS
> >  >  returns the hard limit which is now 1024.
> >  >
> >
> >  Can 1024 vcpus even work without interrupt remapping?
> >
>
> I'm not sure. I've successfully tried it with 255 vcpus.
>

Even 255 is problematic.  One APIC ID is consumed by the IO-APIC, and ID 
255 is reserved for broadcast IIRC.  So at most 254 vcpus can be addressed.

> >  Looks like the patch will break coalesced mmio:
> >
> >  static int coalesced_mmio_in_range(struct kvm_coalesced_mmio_dev *dev,
> >                      gpa_t addr, int len)
> >  {
> >       struct kvm_coalesced_mmio_zone *zone;
> >       struct kvm_coalesced_mmio_ring *ring;
> >       unsigned avail;
> >       int i;
> >
> >       /* Are we able to batch it ? */
> >
> >       /* last is the first free entry
> >        * check if we don't meet the first used entry
> >        * there is always one unused entry in the buffer
> >        */
> >       ring = dev->kvm->coalesced_mmio_ring;
> >       avail = (ring->first - ring->last - 1) % KVM_COALESCED_MMIO_MAX;
> >       if (avail<  KVM_MAX_VCPUS) {
> >           /* full */
> >           return 0;
> >       }
> >
> >
>
> I don't quite understand what KVM_MAX_VCPUS has to do with that if ().
> Shouldn't it check whether theres more than one buffer between first and
> last? What role does KVM_MAX_VCPUS play there?

At most KVM_MAX_VCPUS can be writing simultaneously.  Since we're 
checking outside the spinlock, we have to consider the worst case.

-- 
error compiling committee.c: too many arguments to function


      reply	other threads:[~2011-07-14  8:14 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-09 12:25 [PATCH] x86: Raise the hard VCPU count limit Sasha Levin
2011-07-09 13:04 ` Pekka Enberg
2011-07-12 13:49 ` Sasha Levin
2011-07-13 13:30 ` Avi Kivity
2011-07-13 20:00   ` Sasha Levin
2011-07-14  8:14     ` Avi Kivity [this message]

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=4E1EA56F.8070305@redhat.com \
    --to=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=levinsasha928@gmail.com \
    --cc=mingo@elte.hu \
    --cc=mtosatti@redhat.com \
    --cc=penberg@kernel.org \
    /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.