Greetings,
I've been running some experiments for a term project and have noticed some odd
behavior that I'm hoping might be due to my setup.
Setup:
Dell R710 (2 x Intel E5630 with HyperThreading and Turbo disabled)
I have 6 non-global zones (z1…z6) running, each zone has the following
configuration:
create -b
set zonepath=ZONEPATH
set brand=ipkg
set autoboot=false
set ip-type=shared
add net
set address=IPV4_ADDR
set physical=bnx0
set defrouter=IPV4_DEF_ROUTE
end
add dedicated-cpu
set ncpus=1
end
I have svc:/system/pools:default and svc:/system/pools/dynamic:default running.
I booted the zones in order and using pooladm(1M), I can see the pools and
psets being created and see that z1 => CPU 0, z2 => CPU 1, and so on leaving
CPU 6 and CPU 7 to the global zone.
With the zones idle, I am noticing a high cross-call,interrupts,thread
interrupts, and context switches for CPU 0 (z1) using mpstat(1M). Using
`prstat -Z 1`, I do not see any processes on CPU 0. Using `mpstat -p 1`, I get
the following:
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl set
0 10 0 20 313 107 41 0 2 4 0 67 0 0 0 100 1
1 35 0 3 35 6 39 2 2 2 0 70 20 0 0 80
2
2 11 0 4 27 3 45 0 2 2 0 66 0 0 0 100
3
3 16 0 3 32 4 28 2 1 2 0 55 22 0 0 78
4
4 11 0 4 23 8 33 0 1 2 0 59 0 0 0 100
5
5 18 0 3 26 4 32 1 1 2 0 57 12 0 0 88
6
6 10 0 1 165 28 175 0 11 6 0 45 0 0 0 100 0
7 13 0 28 88 27 83 0 11 6 0 50 0 0 0 100 0
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl set
0 0 0 17 321 117 0 0 0 2 0 0 0 0 0 100 1
1 0 0 0 2 1 0 0 0 0 0 0 0 0 0
100 2
2 0 0 0 7 4 164 0 0 0 0 331 0 0 0 100
3
3 0 0 0 2 1 0 0 0 0 0 0 0 0 0
100 4
4 0 0 0 5 2 0 0 0 0 0 0 0 0 0
100 5
5 0 0 0 1 0 0 0 0 0 0 0 0 0 0
100 6
6 0 0 0 210 18 221 2 15 3 0 290 1 0 0 99 0
7 6 0 6 153 58 171 0 17 8 0 55 0 1 0 99 0
Turning to DTrace, I came up the following script using the sysinfo provider:
dtrace:::BEGIN
{
printf("Tracing... Hit Ctrl-C to end.\n");
}
profile:::tick-10s
{
exit(0);
}
sysinfo:::
/cpu==$1/
{
@[probefunc,probename,execname]=count();
}
which outputs (./cpu_sysinfo.d 0 for CPU 0):
swtch pswitch nscd 1
swtch pswitch svc.configd 1
swtch pswitch svc.startd 1
idle_enter idlethread sched 2
swtch pswitch sched 2
mutex_vector_enter mutex_adenters sched 25
xc_common xcalls sched 142
Running this script against the other CPUs, does not yield the same magnitude
of calls (except for the global zone, CPU 6 and CPU7).
My first question, is the scheduler responsible for the high
cross-call,interrupts,thread interrupts, and context switches for CPU 0? If
so, why?
Thanks in advance.
--
Carlos Cardenas
-------------------------------------------
illumos-discuss
Archives: https://www.listbox.com/member/archive/182180/=now
RSS Feed: https://www.listbox.com/member/archive/rss/182180/21175430-2e6923be
Modify Your Subscription:
https://www.listbox.com/member/?member_id=21175430&id_secret=21175430-6a77cda4
Powered by Listbox: http://www.listbox.com