All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Ehrhardt <ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
To: "Zhang, Xiantao" <xiantao.zhang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	carsteno-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org,
	hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org,
	avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org
Subject: [PATCH] [2/2] merged_move_kvm_vpu_cache_to_x86
Date: Thu, 29 Nov 2007 13:45:28 +0100	[thread overview]
Message-ID: <474EB468.2@linux.vnet.ibm.com> (raw)
In-Reply-To: <42DFA526FC41B1429CE7279EF83C6BDCA3951C-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 5983 bytes --]

Attached your patch 2/2 and my 3/2 merged.
As you said the renaming patch is not essential, but I prefer names as clear as possible which would be with renaming patch.
As 4/2 still applies after this merged one we can just let Avi apply whatever he likes from this series ;-)

Zhang, Xiantao wrote:
> Thanks, sure to move it out. Maybe you can update my second patch
> directly for Avi's easy maintenance. 
[...]

---

From: Zhang Xiantao <xiantao.zhang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
From: Christian Ehrhardt <ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
Date: Thu, 29 Nov 2007 10:54:00 +0100
Subject: [PATCH] [2/2] merged_move_kvm_vpu_cache_to_x86

Moving kvm_vcpu_cache to x86.c, since only x86 platform will use to 
align the memory area for fx_save. To prevent misuse of these x86 structure 
in generic code the definition moved from kvm.h to x86.h.

Signed-off-by: Christian Ehrhardt <ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
---

[diffstat]
 kvm.h      |    4 ++--
 kvm_main.c |   17 +----------------
 x86.c      |   19 ++++++++++++++++++-
 x86.h      |    1 +
 4 files changed, 22 insertions(+), 19 deletions(-)

I'm not yet sure if my mailer now at last keeps the format to apply it later so I additionally attach it as file this time.
[diff]
diff --git a/drivers/kvm/kvm.h b/drivers/kvm/kvm.h
index be18620..6ff189f 100644
--- a/drivers/kvm/kvm.h
+++ b/drivers/kvm/kvm.h
@@ -112,7 +112,6 @@ struct kvm_mmu_page {
 };
 
 struct kvm_vcpu;
-extern struct kmem_cache *kvm_vcpu_cache;
 
 /*
  * x86 supports 3 paging modes (4-level 64-bit, 3-level 64-bit, and 2-level
@@ -456,7 +455,8 @@ int kvm_arch_vcpu_ioctl_debug_guest(struct kvm_vcpu *vcpu,
 				    struct kvm_debug_guest *dbg);
 int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run);
 
-int kvm_arch_init(void *opaque);
+int kvm_arch_init(void *opaque, unsigned int vcpu_size,
+				struct module * module);
 void kvm_arch_exit(void);
 
 int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu);
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
index a6fbe6b..687ef98 100644
--- a/drivers/kvm/kvm_main.c
+++ b/drivers/kvm/kvm_main.c
@@ -56,9 +56,6 @@ LIST_HEAD(vm_list);
 
 static cpumask_t cpus_hardware_enabled;
 
-struct kmem_cache *kvm_vcpu_cache;
-EXPORT_SYMBOL_GPL(kvm_vcpu_cache);
-
 static __read_mostly struct preempt_ops kvm_preempt_ops;
 
 static struct dentry *debugfs_dir;
@@ -1338,7 +1335,7 @@ int kvm_init(void *opaque, unsigned int vcpu_size,
 
 	kvm_init_debug();
 
-	r = kvm_arch_init(opaque);
+	r = kvm_arch_init(opaque, vcpu_size, module);
 	if (r)
 		goto out_fail;
 
@@ -1375,15 +1372,6 @@ int kvm_init(void *opaque, unsigned int vcpu_size,
 	if (r)
 		goto out_free_4;
 
-	/* A kmem cache lets us meet the alignment requirements of fx_save. */
-	kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size,
-					   __alignof__(struct kvm_vcpu),
-					   0, NULL);
-	if (!kvm_vcpu_cache) {
-		r = -ENOMEM;
-		goto out_free_5;
-	}
-
 	kvm_chardev_ops.owner = module;
 
 	r = misc_register(&kvm_dev);
@@ -1398,8 +1386,6 @@ int kvm_init(void *opaque, unsigned int vcpu_size,
 	return 0;
 
 out_free:
-	kmem_cache_destroy(kvm_vcpu_cache);
-out_free_5:
 	sysdev_unregister(&kvm_sysdev);
 out_free_4:
 	sysdev_class_unregister(&kvm_sysdev_class);
@@ -1423,7 +1409,6 @@ EXPORT_SYMBOL_GPL(kvm_init);
 void kvm_exit(void)
 {
 	misc_deregister(&kvm_dev);
-	kmem_cache_destroy(kvm_vcpu_cache);
 	sysdev_unregister(&kvm_sysdev);
 	sysdev_class_unregister(&kvm_sysdev_class);
 	unregister_reboot_notifier(&kvm_reboot_notifier);
diff --git a/drivers/kvm/x86.c b/drivers/kvm/x86.c
index c70ac33..b8a1b52 100644
--- a/drivers/kvm/x86.c
+++ b/drivers/kvm/x86.c
@@ -48,6 +48,10 @@
 
 struct kvm_x86_ops *kvm_x86_ops;
 
+struct kmem_cache *kvm_vcpu_cache;
+EXPORT_SYMBOL_GPL(kvm_vcpu_cache);
+
+
 struct kvm_stats_debugfs_item debugfs_entries[] = {
 	{ "pf_fixed", VCPU_STAT(pf_fixed) },
 	{ "pf_guest", VCPU_STAT(pf_guest) },
@@ -1997,7 +2001,8 @@ int kvm_emulate_pio_string(struct kvm_vcpu *vcpu, struct kvm_run *run, int in,
 }
 EXPORT_SYMBOL_GPL(kvm_emulate_pio_string);
 
-int kvm_arch_init(void *opaque)
+int kvm_arch_init(void *opaque, unsigned int vcpu_size,
+			struct module *module)
 {
 	int r;
 	struct kvm_x86_ops *ops = (struct kvm_x86_ops *)opaque;
@@ -2006,6 +2011,15 @@ int kvm_arch_init(void *opaque)
 	if (r)
 		goto out_fail;
 
+	/* A kmem cache lets us meet the alignment requirements of fx_save. */
+	kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size,
+					   __alignof__(struct kvm_vcpu),
+					   0, NULL);
+	if (!kvm_vcpu_cache) {
+		r = -ENOMEM;
+		goto out_free;
+	}
+
 	kvm_init_msr_list();
 
 	if (kvm_x86_ops) {
@@ -2030,6 +2044,8 @@ int kvm_arch_init(void *opaque)
 	return 0;
 
 out:
+	kmem_cache_destroy(kvm_vcpu_cache);
+out_free:
 	kvm_mmu_module_exit();
 out_fail:
 	return r;
@@ -2039,6 +2055,7 @@ void kvm_arch_exit(void)
 {
 	kvm_x86_ops = NULL;
 	kvm_mmu_module_exit();
+	kmem_cache_destroy(kvm_vcpu_cache);
 }
 
 int kvm_emulate_halt(struct kvm_vcpu *vcpu)
diff --git a/drivers/kvm/x86.h b/drivers/kvm/x86.h
index 78ab1e1..2080a65 100644
--- a/drivers/kvm/x86.h
+++ b/drivers/kvm/x86.h
@@ -224,6 +224,7 @@ struct kvm_x86_ops {
 };
 
 extern struct kvm_x86_ops *kvm_x86_ops;
+extern struct kmem_cache *kvm_vcpu_cache;
 
 int kvm_mmu_module_init(void);
 void kvm_mmu_module_exit(void);



-- 

Grüsse / regards, 
Christian Ehrhardt

IBM Linux Technology Center, Open Virtualization
+49 7031/16-3385
Ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org
Ehrhardt-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org

IBM Deutschland Entwicklung GmbH
Vorsitzender des Aufsichtsrats: Johann Weihen 
Geschäftsführung: Herbert Kircher 
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294

[-- Attachment #2: merged_move_kvm_vpu_cache_to_x86.diff --]
[-- Type: text/x-patch, Size: 4067 bytes --]

diff --git a/drivers/kvm/kvm.h b/drivers/kvm/kvm.h
index be18620..6ff189f 100644
--- a/drivers/kvm/kvm.h
+++ b/drivers/kvm/kvm.h
@@ -112,7 +112,6 @@ struct kvm_mmu_page {
 };
 
 struct kvm_vcpu;
-extern struct kmem_cache *kvm_vcpu_cache;
 
 /*
  * x86 supports 3 paging modes (4-level 64-bit, 3-level 64-bit, and 2-level
@@ -456,7 +455,8 @@ int kvm_arch_vcpu_ioctl_debug_guest(struct kvm_vcpu *vcpu,
 				    struct kvm_debug_guest *dbg);
 int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run);
 
-int kvm_arch_init(void *opaque);
+int kvm_arch_init(void *opaque, unsigned int vcpu_size,
+				struct module * module);
 void kvm_arch_exit(void);
 
 int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu);
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
index a6fbe6b..687ef98 100644
--- a/drivers/kvm/kvm_main.c
+++ b/drivers/kvm/kvm_main.c
@@ -56,9 +56,6 @@ LIST_HEAD(vm_list);
 
 static cpumask_t cpus_hardware_enabled;
 
-struct kmem_cache *kvm_vcpu_cache;
-EXPORT_SYMBOL_GPL(kvm_vcpu_cache);
-
 static __read_mostly struct preempt_ops kvm_preempt_ops;
 
 static struct dentry *debugfs_dir;
@@ -1338,7 +1335,7 @@ int kvm_init(void *opaque, unsigned int vcpu_size,
 
 	kvm_init_debug();
 
-	r = kvm_arch_init(opaque);
+	r = kvm_arch_init(opaque, vcpu_size, module);
 	if (r)
 		goto out_fail;
 
@@ -1375,15 +1372,6 @@ int kvm_init(void *opaque, unsigned int vcpu_size,
 	if (r)
 		goto out_free_4;
 
-	/* A kmem cache lets us meet the alignment requirements of fx_save. */
-	kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size,
-					   __alignof__(struct kvm_vcpu),
-					   0, NULL);
-	if (!kvm_vcpu_cache) {
-		r = -ENOMEM;
-		goto out_free_5;
-	}
-
 	kvm_chardev_ops.owner = module;
 
 	r = misc_register(&kvm_dev);
@@ -1398,8 +1386,6 @@ int kvm_init(void *opaque, unsigned int vcpu_size,
 	return 0;
 
 out_free:
-	kmem_cache_destroy(kvm_vcpu_cache);
-out_free_5:
 	sysdev_unregister(&kvm_sysdev);
 out_free_4:
 	sysdev_class_unregister(&kvm_sysdev_class);
@@ -1423,7 +1409,6 @@ EXPORT_SYMBOL_GPL(kvm_init);
 void kvm_exit(void)
 {
 	misc_deregister(&kvm_dev);
-	kmem_cache_destroy(kvm_vcpu_cache);
 	sysdev_unregister(&kvm_sysdev);
 	sysdev_class_unregister(&kvm_sysdev_class);
 	unregister_reboot_notifier(&kvm_reboot_notifier);
diff --git a/drivers/kvm/x86.c b/drivers/kvm/x86.c
index c70ac33..b8a1b52 100644
--- a/drivers/kvm/x86.c
+++ b/drivers/kvm/x86.c
@@ -48,6 +48,10 @@
 
 struct kvm_x86_ops *kvm_x86_ops;
 
+struct kmem_cache *kvm_vcpu_cache;
+EXPORT_SYMBOL_GPL(kvm_vcpu_cache);
+
+
 struct kvm_stats_debugfs_item debugfs_entries[] = {
 	{ "pf_fixed", VCPU_STAT(pf_fixed) },
 	{ "pf_guest", VCPU_STAT(pf_guest) },
@@ -1997,7 +2001,8 @@ int kvm_emulate_pio_string(struct kvm_vcpu *vcpu, struct kvm_run *run, int in,
 }
 EXPORT_SYMBOL_GPL(kvm_emulate_pio_string);
 
-int kvm_arch_init(void *opaque)
+int kvm_arch_init(void *opaque, unsigned int vcpu_size,
+			struct module *module)
 {
 	int r;
 	struct kvm_x86_ops *ops = (struct kvm_x86_ops *)opaque;
@@ -2006,6 +2011,15 @@ int kvm_arch_init(void *opaque)
 	if (r)
 		goto out_fail;
 
+	/* A kmem cache lets us meet the alignment requirements of fx_save. */
+	kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size,
+					   __alignof__(struct kvm_vcpu),
+					   0, NULL);
+	if (!kvm_vcpu_cache) {
+		r = -ENOMEM;
+		goto out_free;
+	}
+
 	kvm_init_msr_list();
 
 	if (kvm_x86_ops) {
@@ -2030,6 +2044,8 @@ int kvm_arch_init(void *opaque)
 	return 0;
 
 out:
+	kmem_cache_destroy(kvm_vcpu_cache);
+out_free:
 	kvm_mmu_module_exit();
 out_fail:
 	return r;
@@ -2039,6 +2055,7 @@ void kvm_arch_exit(void)
 {
 	kvm_x86_ops = NULL;
 	kvm_mmu_module_exit();
+	kmem_cache_destroy(kvm_vcpu_cache);
 }
 
 int kvm_emulate_halt(struct kvm_vcpu *vcpu)
diff --git a/drivers/kvm/x86.h b/drivers/kvm/x86.h
index 78ab1e1..2080a65 100644
--- a/drivers/kvm/x86.h
+++ b/drivers/kvm/x86.h
@@ -224,6 +224,7 @@ struct kvm_x86_ops {
 };
 
 extern struct kvm_x86_ops *kvm_x86_ops;
+extern struct kmem_cache *kvm_vcpu_cache;
 
 int kvm_mmu_module_init(void);
 void kvm_mmu_module_exit(void);

[-- Attachment #3: Type: text/plain, Size: 309 bytes --]

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4

[-- Attachment #4: Type: text/plain, Size: 186 bytes --]

_______________________________________________
kvm-devel mailing list
kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/kvm-devel

  parent reply	other threads:[~2007-11-29 12:45 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-29 10:00 [PATCH] [3/2] move_kvm_cpu_cache_to_x86_header Christian Ehrhardt
     [not found] ` <474E8DA2.600-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2007-11-29 10:31   ` Zhang, Xiantao
     [not found]     ` <42DFA526FC41B1429CE7279EF83C6BDCA3951C-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-11-29 12:45       ` Christian Ehrhardt [this message]
     [not found]         ` <474EB468.2-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2007-11-29 12:56           ` [PATCH] [2/2] merged_move_kvm_vpu_cache_to_x86 Carsten Otte
2007-11-29 12:22   ` [PATCH] [3/2] move_kvm_cpu_cache_to_x86_header Carsten Otte

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=474EB468.2@linux.vnet.ibm.com \
    --to=ehrhardt-23vcf4htsmix0ybbhkvfkdbpr1lh4cv8@public.gmane.org \
    --cc=avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org \
    --cc=carsteno-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org \
    --cc=hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=xiantao.zhang-ral2JQCrhuEAvxtiuMwx3w@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.