[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 2/2] vhost: Only align sections for vhost-user
From: |
Paolo Bonzini |
Subject: |
Re: [PATCH v3 2/2] vhost: Only align sections for vhost-user |
Date: |
Fri, 17 Jan 2020 13:52:44 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.1 |
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.
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 <address@hidden>
Paolo
[PATCH v3 1/2] vhost: Add names to section rounded warning, Dr. David Alan Gilbert (git), 2020/01/16
Re: [PATCH v3 0/2] Fix hyperv synic on vhost, no-reply, 2020/01/16