qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Roman Kagan <rkagan@virtuozzo.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	qemu-devel@nongnu.org, jasowang@redhat.com,
	"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [PATCH 2/2] hyperv/synic: Allocate as ram_device
Date: Thu, 9 Jan 2020 13:28:21 +0000	[thread overview]
Message-ID: <20200109132821.GG6795@work-vm> (raw)
In-Reply-To: <20200109132432.GD3147@rkaganb.sw.ru>

* Roman Kagan (rkagan@virtuozzo.com) wrote:
> On Thu, Jan 09, 2020 at 02:00:00PM +0100, Vitaly Kuznetsov wrote:
> > "Dr. David Alan Gilbert" <dgilbert@redhat.com> writes:
> > 
> > > And I think vhost-user will fail if you have too many sections - and
> > > the 16 sections from synic I think will blow the slots available.
> > >
> > 
> > SynIC is percpu, it will allocate two 4k pages for every vCPU the guest
> > has so we're potentially looking at hundreds of such regions.
> 
> Indeed.
> 
> I think my original idea to implement overlay pages word-for-word to the
> HyperV spec was a mistake, as it lead to fragmentation and memslot
> waste.
> 
> I'll look into reworking it without actually mapping extra pages over
> the existing RAM, but achieving overlay semantics by just shoving the
> *content* of the "overlaid" memory somewhere.
> 
> That said, I haven't yet fully understood how the reported issue came
> about, and thus whether the proposed approach would resolve it too.

The problem happens when we end up with:

 a)  0-512k  RAM
 b)  512k +  synic
 c)  570kish-640k  RAM

the page alignment code rounds
  (a) to 0-2MB   - aligning to the hugepage it's in
  (b) leaves as is
  (c) aligns to 0-2MB

  it then tries to coalesce (c) and (a) and notices (b) got in the way
and fails it.

Given the guest can put Synic anywhere I'm not sure that changing it's
implementatino would help here.
(And changing it's implementation would probably break migration
compatibility).

Dave

> Thanks,
> Roman.
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK



  reply	other threads:[~2020-01-09 13:31 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-08 13:53 [PATCH 0/2] exclude hyperv synic sections from vhost Dr. David Alan Gilbert (git)
2020-01-08 13:53 ` [PATCH 1/2] vhost: Don't pass ram device sections Dr. David Alan Gilbert (git)
2020-01-09 11:45   ` Michael S. Tsirkin
2020-01-09 11:56     ` Michael S. Tsirkin
2020-01-09 12:38   ` Roman Kagan
2020-01-09 12:42     ` Michael S. Tsirkin
2020-01-08 13:53 ` [PATCH 2/2] hyperv/synic: Allocate as ram_device Dr. David Alan Gilbert (git)
2020-01-09 11:48   ` Michael S. Tsirkin
2020-01-09 12:08     ` Dr. David Alan Gilbert
2020-01-09 12:18       ` Michael S. Tsirkin
2020-01-09 12:22         ` Dr. David Alan Gilbert
2020-01-09 13:00           ` Vitaly Kuznetsov
2020-01-09 13:24             ` Roman Kagan
2020-01-09 13:28               ` Dr. David Alan Gilbert [this message]
2020-01-09 16:12                 ` Roman Kagan
2020-01-09 16:27                   ` Dr. David Alan Gilbert
2020-01-09 17:13                     ` Roman Kagan
2020-01-09 13:06           ` Michael S. Tsirkin
2020-01-09 13:22             ` Dr. David Alan Gilbert
2020-01-09 13:27               ` Michael S. Tsirkin
2020-01-09 13:28                 ` Michael S. Tsirkin
2020-01-09 13:40                   ` Dr. David Alan Gilbert
2020-01-09 15:31               ` Paolo Bonzini
2020-01-09 15:38                 ` Dr. David Alan Gilbert
2020-01-09 15:40                 ` Vitaly Kuznetsov
2020-07-07 10:54                   ` Paolo Bonzini
2020-01-09 13:03   ` Roman Kagan
2020-01-09 13:08     ` Dr. David Alan Gilbert
2020-01-08 14:26 ` [PATCH 0/2] exclude hyperv synic sections from vhost Vitaly Kuznetsov
2020-01-09  3:00 ` Jason Wang
2020-01-09  9:07   ` Vitaly Kuznetsov
2020-01-09 12:02   ` Dr. David Alan Gilbert
2020-01-09 12:14     ` Michael S. Tsirkin
2020-01-09 11:53 ` Roman Kagan
2020-01-09 12:16   ` Dr. David Alan Gilbert

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=20200109132821.GG6795@work-vm \
    --to=dgilbert@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rkagan@virtuozzo.com \
    --cc=vkuznets@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).