All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Alexey Kardashevskiy <aik@ozlabs.ru>, qemu-devel@nongnu.org
Cc: Alex Williamson <alex.williamson@redhat.com>,
	Alexander Graf <agraf@suse.de>
Subject: Re: [Qemu-devel] [PATCH qemu] kvm-all: Align to qemu_real_host_page_size in kvm_set_phys_mem
Date: Wed, 7 Oct 2015 12:52:16 +0200	[thread overview]
Message-ID: <5614F960.9080703@redhat.com> (raw)
In-Reply-To: <1444102257-17405-1-git-send-email-aik@ozlabs.ru>



On 06/10/2015 05:30, Alexey Kardashevskiy wrote:
> As the comment in kvm_set_phys_mem() says, KVM works in page size chunks.
> However it uses hardcoded TARGET_PAGE_SIZE which is 4K on most platforms
> while actual host may use different page size, for example, PPC64 hosts
> use 64K system pages.
> 
> This replaces static TARGET_PAGE_SIZE with run-time calculated
> qemu_real_host_page_size.
> 
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
> ---
> 
> This is the result of debugging VFIO quirks not working under PPC64 KVM.
> ---
>  kvm-all.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/kvm-all.c b/kvm-all.c
> index 0be4615..6f04fbb 100644
> --- a/kvm-all.c
> +++ b/kvm-all.c
> @@ -642,15 +642,15 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml,
>      /* kvm works in page size chunks, but the function may be called
>         with sub-page size and unaligned start address. Pad the start
>         address to next and truncate size to previous page boundary. */
> -    delta = (TARGET_PAGE_SIZE - (start_addr & ~TARGET_PAGE_MASK));
> -    delta &= ~TARGET_PAGE_MASK;
> +    delta = qemu_real_host_page_size - (start_addr & ~qemu_real_host_page_mask);
> +    delta &= ~qemu_real_host_page_mask;
>      if (delta > size) {
>          return;
>      }
>      start_addr += delta;
>      size -= delta;
> -    size &= TARGET_PAGE_MASK;
> -    if (!size || (start_addr & ~TARGET_PAGE_MASK)) {
> +    size &= qemu_real_host_page_mask;
> +    if (!size || (start_addr & ~qemu_real_host_page_mask)) {
>          return;
>      }
>  
> 

Queued, thanks.

Paolo

      reply	other threads:[~2015-10-07 10:52 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-06  3:30 [Qemu-devel] [PATCH qemu] kvm-all: Align to qemu_real_host_page_size in kvm_set_phys_mem Alexey Kardashevskiy
2015-10-07 10:52 ` Paolo Bonzini [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=5614F960.9080703@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=agraf@suse.de \
    --cc=aik@ozlabs.ru \
    --cc=alex.williamson@redhat.com \
    --cc=qemu-devel@nongnu.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.