WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] ctx suddenly rises in HVM Xen Guest

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] ctx suddenly rises in HVM Xen Guest
From: Songtao Liu <songtao.liu@xxxxxxxx>
Date: Tue, 20 Nov 2007 10:58:47 +0100
Bcc:
Cc:
Delivery-date: Tue, 20 Nov 2007 02:00:01 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Hello,

I have tested HVM XEN GUEST performance with LMbench and found a problem with 
the context switch time in guest. Following results are with CREDIT scheduler, 
but SEDF scheduler has similar results.

The context switch time will rise suddenly when the PROCESS NUMBER (in context 
switch microbenchmark) arrives a 'threshold', just like a step-function. 
Normally the 'threshold' of PROCESS NUMBER varies in the range of 35-44 (in UP 
HVM XEN guest) and 52-62 (in SMP HVM XEN guest), which is relevant to UP/SMP 
and size of processes defined by LMbench. Before the 'threshold' context switch 
time keeps a relative stable value, after threshold it also keeps a relative 
stable value. The native Linux has no such problem.

***************************************
Comparison of Test Results
'size' denotes size of processes
ProcNum denotes number of processes
***************************************
(1)
'size=0k'    
HVM XEN UP-GUEST 
3.58(ProcNum=42)
65.36(ProcNum=43) /* 'threshold' 43 */

HVM XEN SMP-Guest
29.71(ProcNum=60)           
116.86(ProcNum=61)  /* 'threshold' 61 */

(2)
'size=32k'
HVM XEN UP-GUEST 
3.01(ProcNum=37)
101.81(ProcNum=38)  /* 'threshold' 38 */

HVM XEN SMP-Guest
31.53(ProcNum=53)           
158.46(ProcNum=54)  /* 'threshold' 54 */

I profiling the TLB misses  with following configuration to see whether it is 
relevant to TLB misses or not. 
1. Count TLB misses in Dom0 when DomU running modified context switch 
microbenchmark 40 times (with only ProcNum=32, which can gurantee it has not 
arrived 'threshold')
2. Count TLB misses in Dom0 when DomU running modified context switch 
microbenchmark 40 times (with only ProcNum=64, which can gurantee it has not 
arrived 'threshold')
3. Count TLB misses in Dom0 when no ctx microbenchmark running in DomU
So the only difference between the three configurations are ProcNum and 
Running/NotRunning ctx microbenchmark in DomU.
But results show that there is no obvious difference between ProcNum=32 and 
ProcNum=64.

****************************************
TLB misses Comparison
****************************************
DTLB-misses (/second)
4387800 (ProcNum=32)  /* before 'threshold' */
4326450 (ProcNum=64)  /* after 'threshold' */
2935300 (no ctx running)

ITLB-misses (/second)
230167 (ProcNum=32)  /* before 'threshold' */
235384 (ProcNum=64)  /* after 'threshold' */
85988 (no ctx running)

****************************************
version
****************************************
Xen:xen-3.0.3-8
Dom0: 2.6.19-1.2911.6.5.fc6xen 
DomU: 2.6.22.9-61.fc6 

Tools:
lmbench-3.0-a8
oprofile 0.9.2

****************************************
CPUINFO
****************************************
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 CPU         T7400  @ 2.16GHz
stepping        : 6
cpu MHz         : 2168.220
cache size      : 4096 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush 
dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl 
vmx est tm2 ssse3 cx16 xtpr lahf_lm
bogomips        : 5422.48

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 CPU         T7400  @ 2.16GHz
stepping        : 6
cpu MHz         : 2168.220
cache size      : 4096 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush 
dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc up pni monitor 
ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
bogomips        : 5422.48

Can anyone explain this problem for me? Any comments/advices will be 
appreciated.
Songtao
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>