All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marcelo Tosatti <marcelo-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org>
To: Anthony Liguori <aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
Cc: kvm-devel <kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
Subject: [PATCH] KVM: add KVM_SYNC_SHADOW_WITH_USER ioctl (v2)
Date: Wed, 9 Jan 2008 16:17:43 -0200	[thread overview]
Message-ID: <20080109181743.GB303@dmt> (raw)


Export nukeing of shadow MMU pages through an ioctl, required for
consistency on balloon inflate.

Changes:
- Move to x86-specific kvm_arch_vm_ioctl() 
- Grab mmap_sem

Index: kvm.quilt/arch/x86/kvm/x86.c
===================================================================
--- kvm.quilt.orig/arch/x86/kvm/x86.c
+++ kvm.quilt/arch/x86/kvm/x86.c
@@ -680,6 +680,7 @@ int kvm_dev_ioctl_check_extension(long e
 	case KVM_CAP_USER_MEMORY:
 	case KVM_CAP_SET_TSS_ADDR:
 	case KVM_CAP_EXT_CPUID:
+	case KVM_CAP_SYNC_SHADOW_WITH_USER:
 		r = 1;
 		break;
 	case KVM_CAP_VAPIC:
@@ -1505,6 +1506,13 @@ long kvm_arch_vm_ioctl(struct file *filp
 		r = 0;
 		break;
 	}
+	case KVM_SYNC_SHADOW_WITH_USER: {
+		r = 0;
+		down_read(&current->mm->mmap_sem);
+		kvm_mmu_zap_all(kvm);
+		up_read(&current->mm->mmap_sem);
+		break;
+	}
 	default:
 		;
 	}
Index: kvm.quilt/include/linux/kvm.h
===================================================================
--- kvm.quilt.orig/include/linux/kvm.h
+++ kvm.quilt/include/linux/kvm.h
@@ -249,6 +249,7 @@ struct kvm_vapic_addr {
 #define KVM_CAP_SET_TSS_ADDR 4
 #define KVM_CAP_EXT_CPUID 5
 #define KVM_CAP_VAPIC 6
+#define KVM_CAP_SYNC_SHADOW_WITH_USER 7
 
 /*
  * ioctls for VM fds
@@ -267,6 +268,7 @@ struct kvm_vapic_addr {
 #define KVM_GET_DIRTY_LOG         _IOW(KVMIO, 0x42, struct kvm_dirty_log)
 #define KVM_SET_MEMORY_ALIAS      _IOW(KVMIO, 0x43, struct kvm_memory_alias)
 #define KVM_GET_SUPPORTED_CPUID   _IOWR(KVMIO, 0x48, struct kvm_cpuid2)
+#define KVM_SYNC_SHADOW_WITH_USER _IO(KVMIO, 0x49)
 /* Device model IOC */
 #define KVM_CREATE_IRQCHIP	  _IO(KVMIO,  0x60)
 #define KVM_IRQ_LINE		  _IOW(KVMIO, 0x61, struct kvm_irq_level)

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

             reply	other threads:[~2008-01-09 18:17 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-09 18:17 Marcelo Tosatti [this message]
2008-01-12 19:59 ` [PATCH] KVM: add KVM_SYNC_SHADOW_WITH_USER ioctl (v2) Avi Kivity
     [not found]   ` <47891C10.8060803-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-01-12 20:28     ` Anthony Liguori
     [not found]       ` <47892303.6030602-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-01-12 20:57         ` Avi Kivity

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=20080109181743.GB303@dmt \
    --to=marcelo-bw31mazkks3ytjvyw6ydsg@public.gmane.org \
    --cc=aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.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.