All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: jasowang@redhat.com, vkuznets@redhat.com,
	"Dr. David Alan Gilbert \(git\)" <dgilbert@redhat.com>,
	qemu-devel@nongnu.org
Subject: Re: [PATCH v3 2/2] vhost: Only align sections for vhost-user
Date: Fri, 17 Jan 2020 08:40:54 -0500	[thread overview]
Message-ID: <20200117083232-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <4bf72509-3e60-0d78-c2ba-665a71a978e1@redhat.com>

On Fri, Jan 17, 2020 at 01:52:44PM +0100, Paolo Bonzini wrote:
> On 16/01/20 21:24, Dr. David Alan Gilbert (git) wrote:
> > +    if (dev->vhost_ops->backend_type == VHOST_BACKEND_TYPE_USER) {   
> > +        /* Round the section to it's page size */
> > +        /* First align the start down to a page boundary */
> > +        size_t mrs_page = qemu_ram_pagesize(mrs_rb);
> > +        uint64_t alignage = mrs_host & (mrs_page - 1);
> > +        if (alignage) {
> > +            mrs_host -= alignage;
> > +            mrs_size += alignage;
> > +            mrs_gpa  -= alignage;
> > +        }
> > +        /* Now align the size up to a page boundary */
> > +        alignage = mrs_size & (mrs_page - 1);
> > +        if (alignage) {
> > +            mrs_size += mrs_page - alignage;
> > +        }
> > +        trace_vhost_region_add_section_aligned(section->mr->name, mrs_gpa, mrs_size,
> > +                                               mrs_host);
> > +    }
> 
> Ok, now I understand!
> 
> So it seems to me that the vhost-user protocol is deficient, it should
> have had two different fields for the region size and the region
> alignment (so that mmap does not fail).  But I guess that's just yet
> another thing to remember for vhost-user v2.

We don't really need v2 just to add a field. Compatibility is maintained
using feature bits. Adding that is a subject for another patch.
But I'm not sure I understand why does remote need to know about alignment.
This patch seems to handle it locally ...

> I would add a comment to explain why the alignment is needed in the
> first place, but this fix is certainly much more pleasant.  Thanks very
> much.
> 
> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
> 
> Paolo



  reply	other threads:[~2020-01-17 13:42 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-16 20:24 [PATCH v3 0/2] Fix hyperv synic on vhost Dr. David Alan Gilbert (git)
2020-01-16 20:24 ` [PATCH v3 1/2] vhost: Add names to section rounded warning Dr. David Alan Gilbert (git)
2020-01-16 20:24 ` [PATCH v3 2/2] vhost: Only align sections for vhost-user Dr. David Alan Gilbert (git)
2020-01-17 12:52   ` Paolo Bonzini
2020-01-17 13:40     ` Michael S. Tsirkin [this message]
2020-01-17 13:58       ` Paolo Bonzini
2020-01-17 14:25         ` Michael S. Tsirkin
2020-01-17 15:06           ` Paolo Bonzini
2020-01-17 15:10         ` Dr. David Alan Gilbert
2020-01-17  0:24 ` [PATCH v3 0/2] Fix hyperv synic on vhost no-reply
2020-01-17 12:47   ` 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=20200117083232-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --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 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.