public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [patch 0/2] A few fixes for make and cpuid
@ 2013-05-28 11:49 Cyrill Gorcunov
  2013-05-28 11:49 ` [patch 1/2] tools: lkvm - Dont generate deps and verion file on clean target Cyrill Gorcunov
  2013-05-28 11:49 ` [patch 2/2] tools: lkvm - Filter out cpu vendor string Cyrill Gorcunov
  0 siblings, 2 replies; 11+ messages in thread
From: Cyrill Gorcunov @ 2013-05-28 11:49 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: mingo, sasha.levin, asias, kvm

Hi guys, here are a couple of fixes for "make clean" and cpuid filtering.
Please give them a shot.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [patch 1/2] tools: lkvm - Dont generate deps and verion file on clean target
  2013-05-28 11:49 [patch 0/2] A few fixes for make and cpuid Cyrill Gorcunov
@ 2013-05-28 11:49 ` Cyrill Gorcunov
  2013-05-28 11:49 ` [patch 2/2] tools: lkvm - Filter out cpu vendor string Cyrill Gorcunov
  1 sibling, 0 replies; 11+ messages in thread
From: Cyrill Gorcunov @ 2013-05-28 11:49 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: mingo, sasha.levin, asias, kvm, Cyrill Gorcunov

[-- Attachment #1: kvm-clean --]
[-- Type: text/plain, Size: 1279 bytes --]

This is redundant since we're to remove them right after
being generated.

CC: Ingo Molnar <mingo@kernel.org>
CC: Pekka Enberg <penberg@kernel.org>
CC: Sasha Levin <sasha.levin@oracle.com>
CC: Asias He <asias@redhat.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
---
 tools/kvm/Makefile |   13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

Index: linux-2.6.git/tools/kvm/Makefile
===================================================================
--- linux-2.6.git.orig/tools/kvm/Makefile
+++ linux-2.6.git/tools/kvm/Makefile
@@ -324,10 +324,6 @@ all: arch_support_check $(PROGRAM) $(PRO
 arch_support_check:
 	$(UNSUPP_ERR)
 
-KVMTOOLS-VERSION-FILE:
-	@$(SHELL_PATH) util/KVMTOOLS-VERSION-GEN $(OUTPUT)
--include $(OUTPUT)KVMTOOLS-VERSION-FILE
-
 # When building -static all objects are built with appropriate flags, which
 # may differ between static & dynamic .o.  The objects are separated into
 # .o and .static.o.  See the %.o: %.c rules below.
@@ -504,5 +500,12 @@ cscope:
 	$(Q) $(CSCOPE) -bkqu
 .PHONY: cscope
 
-# Deps
+#
+# Escape redundant work on cleaning up
+ifneq ($(MAKECMDGOALS),clean)
 -include $(DEPS)
+
+KVMTOOLS-VERSION-FILE:
+	@$(SHELL_PATH) util/KVMTOOLS-VERSION-GEN $(OUTPUT)
+-include $(OUTPUT)KVMTOOLS-VERSION-FILE
+endif


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [patch 2/2] tools: lkvm - Filter out cpu vendor string
  2013-05-28 11:49 [patch 0/2] A few fixes for make and cpuid Cyrill Gorcunov
  2013-05-28 11:49 ` [patch 1/2] tools: lkvm - Dont generate deps and verion file on clean target Cyrill Gorcunov
@ 2013-05-28 11:49 ` Cyrill Gorcunov
  2013-06-06 12:03   ` Pekka Enberg
  1 sibling, 1 reply; 11+ messages in thread
From: Cyrill Gorcunov @ 2013-05-28 11:49 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: mingo, sasha.levin, asias, kvm, Cyrill Gorcunov

[-- Attachment #1: kvm-cpuid --]
[-- Type: text/plain, Size: 1371 bytes --]

If cpuvendor string is not filetered in case of host
amd machine we get unhandled msr reads

| [1709265.368464] kvm: 25706: cpu6 unhandled rdmsr: 0xc0010048
| [1709265.397161] kvm: 25706: cpu7 unhandled rdmsr: 0xc0010048
| [1709265.425774] kvm: 25706: cpu8 unhandled rdmsr: 0xc0010048

thus provide own string and kernel will use generic cpu init.

Reported-by: Ingo Molnar <mingo@kernel.org>
CC: Pekka Enberg <penberg@kernel.org>
CC: Sasha Levin <sasha.levin@oracle.com>
CC: Asias He <asias@redhat.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
---
 tools/kvm/x86/cpuid.c |    8 ++++++++
 1 file changed, 8 insertions(+)

Index: linux-2.6.git/tools/kvm/x86/cpuid.c
===================================================================
--- linux-2.6.git.orig/tools/kvm/x86/cpuid.c
+++ linux-2.6.git/tools/kvm/x86/cpuid.c
@@ -12,6 +12,7 @@
 
 static void filter_cpuid(struct kvm_cpuid2 *kvm_cpuid)
 {
+	unsigned int signature[3];
 	unsigned int i;
 
 	/*
@@ -21,6 +22,13 @@ static void filter_cpuid(struct kvm_cpui
 		struct kvm_cpuid_entry2 *entry = &kvm_cpuid->entries[i];
 
 		switch (entry->function) {
+		case 0:
+			/* Vendor name */
+			memcpy(signature, "LKVMLKVMLKVM", 12);
+			entry->ebx = signature[0];
+			entry->ecx = signature[1];
+			entry->edx = signature[2];
+			break;
 		case 1:
 			/* Set X86_FEATURE_HYPERVISOR */
 			if (entry->index == 0)


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch 2/2] tools: lkvm - Filter out cpu vendor string
  2013-05-28 11:49 ` [patch 2/2] tools: lkvm - Filter out cpu vendor string Cyrill Gorcunov
@ 2013-06-06 12:03   ` Pekka Enberg
  2013-06-06 12:06     ` Cyrill Gorcunov
                       ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Pekka Enberg @ 2013-06-06 12:03 UTC (permalink / raw)
  To: Cyrill Gorcunov; +Cc: Ingo Molnar, Sasha Levin, Asias He, KVM General

On Tue, May 28, 2013 at 2:49 PM, Cyrill Gorcunov <gorcunov@openvz.org> wrote:
> If cpuvendor string is not filetered in case of host
> amd machine we get unhandled msr reads
>
> | [1709265.368464] kvm: 25706: cpu6 unhandled rdmsr: 0xc0010048
> | [1709265.397161] kvm: 25706: cpu7 unhandled rdmsr: 0xc0010048
> | [1709265.425774] kvm: 25706: cpu8 unhandled rdmsr: 0xc0010048
>
> thus provide own string and kernel will use generic cpu init.
>
> Reported-by: Ingo Molnar <mingo@kernel.org>
> CC: Pekka Enberg <penberg@kernel.org>
> CC: Sasha Levin <sasha.levin@oracle.com>
> CC: Asias He <asias@redhat.com>
> Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
> ---
>  tools/kvm/x86/cpuid.c |    8 ++++++++
>  1 file changed, 8 insertions(+)
>
> Index: linux-2.6.git/tools/kvm/x86/cpuid.c
> ===================================================================
> --- linux-2.6.git.orig/tools/kvm/x86/cpuid.c
> +++ linux-2.6.git/tools/kvm/x86/cpuid.c
> @@ -12,6 +12,7 @@
>
>  static void filter_cpuid(struct kvm_cpuid2 *kvm_cpuid)
>  {
> +       unsigned int signature[3];
>         unsigned int i;
>
>         /*
> @@ -21,6 +22,13 @@ static void filter_cpuid(struct kvm_cpui
>                 struct kvm_cpuid_entry2 *entry = &kvm_cpuid->entries[i];
>
>                 switch (entry->function) {
> +               case 0:
> +                       /* Vendor name */
> +                       memcpy(signature, "LKVMLKVMLKVM", 12);
> +                       entry->ebx = signature[0];
> +                       entry->ecx = signature[1];
> +                       entry->edx = signature[2];
> +                       break;
>                 case 1:
>                         /* Set X86_FEATURE_HYPERVISOR */
>                         if (entry->index == 0)

Ping! Is there someone out there who has a AMD box they could test this on?

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch 2/2] tools: lkvm - Filter out cpu vendor string
  2013-06-06 12:03   ` Pekka Enberg
@ 2013-06-06 12:06     ` Cyrill Gorcunov
  2013-06-06 13:39     ` Asias He
  2013-06-07  8:17     ` Asias He
  2 siblings, 0 replies; 11+ messages in thread
From: Cyrill Gorcunov @ 2013-06-06 12:06 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: Ingo Molnar, Sasha Levin, Asias He, KVM General

On Thu, Jun 06, 2013 at 03:03:03PM +0300, Pekka Enberg wrote:
> >                         /* Set X86_FEATURE_HYPERVISOR */
> >                         if (entry->index == 0)
> 
> Ping! Is there someone out there who has a AMD box they could test this on?

I don't have it, sorry :-(

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch 2/2] tools: lkvm - Filter out cpu vendor string
  2013-06-06 12:03   ` Pekka Enberg
  2013-06-06 12:06     ` Cyrill Gorcunov
@ 2013-06-06 13:39     ` Asias He
  2013-06-07  8:17     ` Asias He
  2 siblings, 0 replies; 11+ messages in thread
From: Asias He @ 2013-06-06 13:39 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: Cyrill Gorcunov, Ingo Molnar, Sasha Levin, Asias He, KVM General

On Thu, Jun 6, 2013 at 8:03 PM, Pekka Enberg <penberg@kernel.org> wrote:
> On Tue, May 28, 2013 at 2:49 PM, Cyrill Gorcunov <gorcunov@openvz.org> wrote:
>> If cpuvendor string is not filetered in case of host
>> amd machine we get unhandled msr reads
>>
>> | [1709265.368464] kvm: 25706: cpu6 unhandled rdmsr: 0xc0010048
>> | [1709265.397161] kvm: 25706: cpu7 unhandled rdmsr: 0xc0010048
>> | [1709265.425774] kvm: 25706: cpu8 unhandled rdmsr: 0xc0010048
>>
>> thus provide own string and kernel will use generic cpu init.
>>
>> Reported-by: Ingo Molnar <mingo@kernel.org>
>> CC: Pekka Enberg <penberg@kernel.org>
>> CC: Sasha Levin <sasha.levin@oracle.com>
>> CC: Asias He <asias@redhat.com>
>> Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
>> ---
>>  tools/kvm/x86/cpuid.c |    8 ++++++++
>>  1 file changed, 8 insertions(+)
>>
>> Index: linux-2.6.git/tools/kvm/x86/cpuid.c
>> ===================================================================
>> --- linux-2.6.git.orig/tools/kvm/x86/cpuid.c
>> +++ linux-2.6.git/tools/kvm/x86/cpuid.c
>> @@ -12,6 +12,7 @@
>>
>>  static void filter_cpuid(struct kvm_cpuid2 *kvm_cpuid)
>>  {
>> +       unsigned int signature[3];
>>         unsigned int i;
>>
>>         /*
>> @@ -21,6 +22,13 @@ static void filter_cpuid(struct kvm_cpui
>>                 struct kvm_cpuid_entry2 *entry = &kvm_cpuid->entries[i];
>>
>>                 switch (entry->function) {
>> +               case 0:
>> +                       /* Vendor name */
>> +                       memcpy(signature, "LKVMLKVMLKVM", 12);
>> +                       entry->ebx = signature[0];
>> +                       entry->ecx = signature[1];
>> +                       entry->edx = signature[2];
>> +                       break;
>>                 case 1:
>>                         /* Set X86_FEATURE_HYPERVISOR */
>>                         if (entry->index == 0)
>
> Ping! Is there someone out there who has a AMD box they could test this on?

I will try to find one.

--
Asias

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch 2/2] tools: lkvm - Filter out cpu vendor string
  2013-06-06 12:03   ` Pekka Enberg
  2013-06-06 12:06     ` Cyrill Gorcunov
  2013-06-06 13:39     ` Asias He
@ 2013-06-07  8:17     ` Asias He
  2013-06-07 11:06       ` Pekka Enberg
  2 siblings, 1 reply; 11+ messages in thread
From: Asias He @ 2013-06-07  8:17 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: Cyrill Gorcunov, Ingo Molnar, Sasha Levin, Asias He, KVM General

On Thu, Jun 6, 2013 at 8:03 PM, Pekka Enberg <penberg@kernel.org> wrote:
> On Tue, May 28, 2013 at 2:49 PM, Cyrill Gorcunov <gorcunov@openvz.org> wrote:
>> If cpuvendor string is not filetered in case of host
>> amd machine we get unhandled msr reads
>>
>> | [1709265.368464] kvm: 25706: cpu6 unhandled rdmsr: 0xc0010048
>> | [1709265.397161] kvm: 25706: cpu7 unhandled rdmsr: 0xc0010048
>> | [1709265.425774] kvm: 25706: cpu8 unhandled rdmsr: 0xc0010048
>>
>> thus provide own string and kernel will use generic cpu init.
>>
>> Reported-by: Ingo Molnar <mingo@kernel.org>
>> CC: Pekka Enberg <penberg@kernel.org>
>> CC: Sasha Levin <sasha.levin@oracle.com>
>> CC: Asias He <asias@redhat.com>
>> Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
>> ---
>>  tools/kvm/x86/cpuid.c |    8 ++++++++
>>  1 file changed, 8 insertions(+)
>>
>> Index: linux-2.6.git/tools/kvm/x86/cpuid.c
>> ===================================================================
>> --- linux-2.6.git.orig/tools/kvm/x86/cpuid.c
>> +++ linux-2.6.git/tools/kvm/x86/cpuid.c
>> @@ -12,6 +12,7 @@
>>
>>  static void filter_cpuid(struct kvm_cpuid2 *kvm_cpuid)
>>  {
>> +       unsigned int signature[3];
>>         unsigned int i;
>>
>>         /*
>> @@ -21,6 +22,13 @@ static void filter_cpuid(struct kvm_cpui
>>                 struct kvm_cpuid_entry2 *entry = &kvm_cpuid->entries[i];
>>
>>                 switch (entry->function) {
>> +               case 0:
>> +                       /* Vendor name */
>> +                       memcpy(signature, "LKVMLKVMLKVM", 12);
>> +                       entry->ebx = signature[0];
>> +                       entry->ecx = signature[1];
>> +                       entry->edx = signature[2];
>> +                       break;
>>                 case 1:
>>                         /* Set X86_FEATURE_HYPERVISOR */
>>                         if (entry->index == 0)
>
> Ping! Is there someone out there who has a AMD box they could test this on?

I tested it on AMD box.  Guest boots with this patch, guest does not
boot without it.  I am not seeing the msr warning in both cases.

> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



--
Asias

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch 2/2] tools: lkvm - Filter out cpu vendor string
  2013-06-07  8:17     ` Asias He
@ 2013-06-07 11:06       ` Pekka Enberg
  2013-06-07 12:20         ` Asias He
  0 siblings, 1 reply; 11+ messages in thread
From: Pekka Enberg @ 2013-06-07 11:06 UTC (permalink / raw)
  To: Asias He; +Cc: Cyrill Gorcunov, Ingo Molnar, Sasha Levin, Asias He, KVM General

On 06/07/2013 11:17 AM, Asias He wrote:
>> Ping! Is there someone out there who has a AMD box they could test this on?
>
> I tested it on AMD box.  Guest boots with this patch, guest does not
> boot without it.  I am not seeing the msr warning in both cases.

That's pretty interesting. Can you please provide your /proc/cpuinfo so 
I can include it in the changelog?

			Pekka


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch 2/2] tools: lkvm - Filter out cpu vendor string
  2013-06-07 11:06       ` Pekka Enberg
@ 2013-06-07 12:20         ` Asias He
  2013-06-07 13:39           ` Asias He
  0 siblings, 1 reply; 11+ messages in thread
From: Asias He @ 2013-06-07 12:20 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: Asias He, Cyrill Gorcunov, Ingo Molnar, Sasha Levin, KVM General

On Fri, Jun 07, 2013 at 02:06:40PM +0300, Pekka Enberg wrote:
> On 06/07/2013 11:17 AM, Asias He wrote:
> >>Ping! Is there someone out there who has a AMD box they could test this on?
> >
> >I tested it on AMD box.  Guest boots with this patch, guest does not
> >boot without it.  I am not seeing the msr warning in both cases.
> 
> That's pretty interesting. Can you please provide your /proc/cpuinfo
> so I can include it in the changelog?

Indeed. Here you go:

processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 21
model           : 1
model name      : AMD Opteron(TM) Processor 6274
stepping        : 2
microcode       : 0x6000626
cpu MHz         : 2200.034
cache size      : 2048 KB
physical id     : 0
siblings        : 16
core id         : 0
cpu cores       : 8
apicid          : 32
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext
fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc
extd_apicid amd_dcm aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1
sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy
abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4
nodeid_msr topoext perfctr_core perfctr_nb arat cpb hw_pstate npt lbrv
svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists
pausefilter pfthreshold
bogomips        : 4400.06
TLB size        : 1536 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb

-- 
Asias

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch 2/2] tools: lkvm - Filter out cpu vendor string
  2013-06-07 12:20         ` Asias He
@ 2013-06-07 13:39           ` Asias He
  2013-06-08 11:48             ` Pekka Enberg
  0 siblings, 1 reply; 11+ messages in thread
From: Asias He @ 2013-06-07 13:39 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: Asias He, Cyrill Gorcunov, Ingo Molnar, Sasha Levin, KVM General

On Fri, Jun 07, 2013 at 08:20:33PM +0800, Asias He wrote:
> On Fri, Jun 07, 2013 at 02:06:40PM +0300, Pekka Enberg wrote:
> > On 06/07/2013 11:17 AM, Asias He wrote:
> > >>Ping! Is there someone out there who has a AMD box they could test this on?
> > >
> > >I tested it on AMD box.  Guest boots with this patch, guest does not
> > >boot without it.  I am not seeing the msr warning in both cases.
> > 
> > That's pretty interesting. Can you please provide your /proc/cpuinfo
> > so I can include it in the changelog?
> 
> Indeed. Here you go:
> 
> processor       : 0
> vendor_id       : AuthenticAMD
> cpu family      : 21
> model           : 1
> model name      : AMD Opteron(TM) Processor 6274
> stepping        : 2
> microcode       : 0x6000626
> cpu MHz         : 2200.034
> cache size      : 2048 KB
> physical id     : 0
> siblings        : 16
> core id         : 0
> cpu cores       : 8
> apicid          : 32
> initial apicid  : 0
> fpu             : yes
> fpu_exception   : yes
> cpuid level     : 13
> wp              : yes
> flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
> mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext
> fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc
> extd_apicid amd_dcm aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1
> sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy
> abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4
> nodeid_msr topoext perfctr_core perfctr_nb arat cpb hw_pstate npt lbrv
> svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists
> pausefilter pfthreshold
> bogomips        : 4400.06
> TLB size        : 1536 4K pages
> clflush size    : 64
> cache_alignment : 64
> address sizes   : 48 bits physical, 48 bits virtual
> power management: ts ttp tm 100mhzsteps hwpstate cpb

And in guest:

# cat /proc/cpuinfo 
processor	: 0
vendor_id	: LKVMLKVMLKVM
cpu family	: 21
model		: 1
model name	: 15/01
stepping	: 2
cpu MHz		: 0.000
cache size	: 0 KB
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt
pdpe1gb lm nopl pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes
xsave avx hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a
misalignsse 3dnowprefetch osvw xop fma4 npt nrip_save tsc_adjust
bogomips	: 1340.41
clflush size	: 64
cache_alignment	: 64
address sizes	: 48 bits physical, 48 bits virtual
power management:


-- 
Asias

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch 2/2] tools: lkvm - Filter out cpu vendor string
  2013-06-07 13:39           ` Asias He
@ 2013-06-08 11:48             ` Pekka Enberg
  0 siblings, 0 replies; 11+ messages in thread
From: Pekka Enberg @ 2013-06-08 11:48 UTC (permalink / raw)
  To: Asias He; +Cc: Asias He, Cyrill Gorcunov, Ingo Molnar, Sasha Levin, KVM General

Applied, thanks a lot!

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2013-06-08 11:48 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-28 11:49 [patch 0/2] A few fixes for make and cpuid Cyrill Gorcunov
2013-05-28 11:49 ` [patch 1/2] tools: lkvm - Dont generate deps and verion file on clean target Cyrill Gorcunov
2013-05-28 11:49 ` [patch 2/2] tools: lkvm - Filter out cpu vendor string Cyrill Gorcunov
2013-06-06 12:03   ` Pekka Enberg
2013-06-06 12:06     ` Cyrill Gorcunov
2013-06-06 13:39     ` Asias He
2013-06-07  8:17     ` Asias He
2013-06-07 11:06       ` Pekka Enberg
2013-06-07 12:20         ` Asias He
2013-06-07 13:39           ` Asias He
2013-06-08 11:48             ` Pekka Enberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox