[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Interrupt levels



On Wed, Mar 09, 2005 at 01:48:25PM +1300, Nicholas Lee wrote:
> On Tue, Mar 08, 2005 at 12:50:58PM -0000, Ian Pratt wrote:
> > 
> > I doubt its anything to do with spinlocks, but this issue is going to be
> > much easier to figure out if it occurs on a freshly booted machine with
> > just a dom0, no xend (hence no bridge).
> 
> I'll build a minimal config kernal and test it this evening.

Default kernel with the attach difference from default.

Same problem.


nic@stateless:~$ w
 15:51:08 up 1 min,  1 user,  load average: 0.27, 0.11, 0.03
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
nic      pts/0    mdr11-port271.je 15:51    0.00s  0.00s  0.00s w
nic@stateless:~$ vmstat 3
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 0  0      0 215176    104  15304    0    0   484    39 148476   135  3  1 92  4
 0  0      0 215176    104  15304    0    0     0     0 190424     9  0  0 100  0
 0  0      0 215192    104  15304    0    0     0     3 186709    12  0  0 100  0
 0  0      0 215192    104  15304    0    0     0     0 190614     8  0  0 100  0
 0  0      0 215192    104  15304    0    0     0    10 187672    15  0  0 100  0
 0  0      0 215192    104  15304    0    0     0     0 188719     8  0  0 100  0

nic@stateless:~$ cat /proc/interrupts > interrupts.5 ; sleep 5 ; cat 
/proc/interrupts > interrupts.6
nic@stateless:~$ diff -u interrupts.5 interrupts.6
--- interrupts.5        2005-03-09 16:24:22.961649499 +1300
+++ interrupts.6        2005-03-09 16:24:27.971732310 +1300
@@ -1,24 +1,24 @@
            CPU0
   1:          8        Phys-irq  i8042
  15:         11        Phys-irq  ide1
- 22:      27836        Phys-irq  ioc0
- 24:      31155        Phys-irq  eth0
+ 22:      27846        Phys-irq  ioc0
+ 24:      31214        Phys-irq  eth0
 128:          1     Dynamic-irq  misdirect
 129:        207     Dynamic-irq  ctrl-if
-130:  232875313     Dynamic-irq  timer
+130:  233870383     Dynamic-irq  timer
 131:          0     Dynamic-irq  console
 132:          0     Dynamic-irq  net-be-dbg
 133:       1397     Dynamic-irq  blkif-backend
 134:        439     Dynamic-irq  vif6.0
 135:        145     Dynamic-irq  vif6.1
-136:      11591     Dynamic-irq  blkif-backend
+136:      11599     Dynamic-irq  blkif-backend
 137:      45161     Dynamic-irq  vif7.0
 138:          2     Dynamic-irq  vif7.1
-139:       2425     Dynamic-irq  blkif-backend
+139:       2427     Dynamic-irq  blkif-backend
 140:        133     Dynamic-irq  vif8.0
 141:      33852     Dynamic-irq  vif8.1
 142:       1732     Dynamic-irq  blkif-backend
-143:         81     Dynamic-irq  vif9.0
+143:         82     Dynamic-irq  vif9.0
 144:        295     Dynamic-irq  vif9.1
 145:       1827     Dynamic-irq  blkif-backend
 146:       1503     Dynamic-irq  vif10.0


Still 200,000 interrupts per sec.

List of default processes at run time:
ic@stateless:~$ ps awx
  PID TTY      STAT   TIME COMMAND
    1 ?        S      0:00 init [2]
    2 ?        SN     0:00 [ksoftirqd/0]
    3 ?        S<     0:00 [events/0]
    4 ?        S<     0:00 [khelper]
   15 ?        S<     0:00 [kblockd/0]
   92 ?        S      0:00 [pdflush]
   93 ?        S      0:00 [pdflush]
   95 ?        S<     0:00 [aio/0]
   94 ?        S      0:00 [kswapd0]
   96 ?        S<     0:00 [xfslogd/0]
   97 ?        S<     0:00 [xfsdatad/0]
   98 ?        S      0:00 [xfsbufd]
  681 ?        S      0:00 [kseriod]
  729 ?        S      0:00 [xenblkd]
  744 ?        S<     0:00 [ata/0]
  751 ?        S      0:00 [scsi_eh_0]
  769 ?        S<     0:00 [kmirrord/0]
  771 ?        S      0:00 [xfssyncd]
  990 ?        S      0:00 [kjournald]
  991 ?        S      0:00 [xfssyncd]
 1479 ?        Ss     0:00 /sbin/syslogd
 1482 ?        Ss     0:00 /sbin/klogd
 1512 ?        Ss     0:00 /usr/sbin/exim4 -bd -q30m
 1518 ?        Ss     0:00 /usr/sbin/inetd
 1539 ?        Ss     0:00 /usr/sbin/sshd
 1544 ?        SLs    0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid
 1547 ?        Ss     0:00 /usr/sbin/atd
 1552 ?        Ss     0:00 /usr/sbin/cron
 1560 tty1     Ss+    0:00 /sbin/getty 38400 tty1
 1562 tty2     Ss+    0:00 /sbin/getty 38400 tty2
 1563 tty3     Ss+    0:00 /sbin/getty 38400 tty3
 1564 tty4     Ss+    0:00 /sbin/getty 38400 tty4
 1566 tty5     Ss+    0:00 /sbin/getty 38400 tty5
 1567 tty6     Ss+    0:00 /sbin/getty 38400 tty6
 1568 ?        Ss     0:00 /bin/sh /command/svscanboot
 1580 ?        S      0:00 svscan /service
 1581 ?        S      0:00 readproctitle service errors: 
.............................................................
..............
 1582 ?        S      0:00 supervise tinydns
 1583 ?        S      0:00 supervise log
 1584 ?        S      0:00 supervise dnscache
 1585 ?        S      0:00 supervise log
 1586 ?        S      0:00 /usr/bin/dnscache
 1587 ?        S      0:00 multilog t ./main
 1589 ?        S      0:00 /usr/bin/tinydns
 1588 ?        S      0:00 multilog t ./main
 1590 ?        Ss     0:00 sshd: nic [priv]
 1592 ?        S      0:00 sshd: nic [priv]
 1594 ?        S      0:00 sshd: nic@pts/0
 1595 pts/0    Ss     0:00 -bash
 1600 pts/0    R+     0:00 ps awx

Modules:

nic@stateless:~$ lsmod
Module                  Size  Used by
ip_tables              17024  0
nic@stateless:~$ sudo rmmod ip_tables
Password:
nic@stateless:~$ vmstat 3
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 2  0      0 215056    104  15484    0    0   339    30 159736   100  2  1 94  3
 0  0      0 215056    104  15484    0    0     0     0 186941    11  0  0 100  0
 0  0      0 215056    104  15484    0    0     0     0 188010     8  0  0 100  0
 0  0      0 215064    104  15484    0    0     0     8 188835    11  0  0 100  0



The main differences are XFS and the MPT driver. Testing the kernel
without XFS would be difficult, as root is formated with XFS.

IP Tables is pretty much required for obvious reasons. (Console and XFRD
listening by default on *:.)

One other piece of hardware info. This machine is currently only UP. I
was intending to add a second processor at some later stage.


With Xen running and writting this message. (This is my mail host.)

nic@stateless:~/sys/iptables$ vmstat 3
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 2  0      0 159072    172  56692    0    0   219    44 18568    83  1  1 97  1
 0  0      0 159072    172  56692    0    0     0    22 200525    25  0  0 100  0
 0  0      0 159096    172  56692    0    0     0    18 198147    29  0  0 100  0
 0  0      0 159096    172  56692    0    0     0    40 194533    29  0  0 100  0
 0  0      0 159096    172  56692    0    0     0    78 202158    17  0  0 100  0
 0  0      0 159096    172  56692    0    0     0     0 198422    30  0  0 100  0
 0  0      0 159160    172  56692    0    0     0    13 197980    24  0  0 100  0
..

Same intr level, additional context switches as you'd expect with
multiple hosts/processes running.


However, it does seem like I've remove the "Badness in local_bh_enable"
problem. At least it hasn't flooded the logs at all.

Nicholas

Attachment: defconfig.diff
Description: Text document


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.