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

Reply via email to