TinyVisorなしで起動すると次のようなメッセージがシリアルコンソールに出力される。
Trying to mount root from ufs:/dev/ada0p2 [rw]... Setting hostuuid: 03000200-0400-0500-0006-000700080009. Setting hostid: 0xfe4ac89c. Entropy harvesting:. Starting file system checks: /dev/ada0p2: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ada0p2: clean, 74448413 free (829 frags, 9305948 blocks, 0.0% fragmentation) Mounting local file systems:. Setting hostname: freebsd. re0: link state changed to DOWN re0: link state changed to UP Starting Network: lo0 re0. lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6> inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5 inet 127.0.0.1 netmask 0xff000000 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE> ether bc:5f:f4:97:58:96 inet 192.168.24.205 netmask 0xffffff00 broadcast 192.168.24.255 inet6 fe80::be5f:f4ff:fe97:5896%re0 prefixlen 64 scopeid 0x3 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect (100baseTX <full-duplex>) status: active Starting devd. Starting ums0 moused. Configuring keyboard: keymap. Starting ums1 moused. add net default: gateway 192.168.24.1 add net fe80::: gateway ::1 add net ff02::: gateway ::1 add net ::ffff:0.0.0.0: gateway ::1 add net ::0.0.0.0: gateway ::1 Creating and/or trimming log files. Starting syslogd. No core dumps found. ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib 32-bit compatibility ldconfig path: /usr/lib32 Clearing /tmp (X related). Updating motd:. Configuring syscons: keymap blanktime. Performing sanity check on sshd configuration. Starting sshd. Starting cron. Starting background file system checks in 60 seconds.
pstreeは次のようになる。
root@freebsd:/usr/home/yuichi # pstree -+= 00001 root /sbin/init -- |--= 00114 root adjkerntz -i |--= 00466 root /usr/sbin/moused -p /dev/ums0 -t auto -I /var/run/moused.ums0. |--= 00492 root /usr/sbin/moused -p /dev/ums1 -t auto -I /var/run/moused.ums1. |--= 00517 root /sbin/devd |--= 00630 root /usr/sbin/syslogd -s |-+= 00734 root /usr/sbin/sshd | \-+= 00796 root sshd: yuichi [priv] (sshd) | \-+- 00799 yuichi sshd: yuichi@pts/0 (sshd) | \-+= 00800 yuichi -sh (sh) | \-+= 00801 root su | \-+= 00802 root _su (csh) | \-+= 00804 root pstree | \--- 00805 root ps -axwwo user,pid,ppid,pgid,command |--= 00737 root sendmail: accepting connections (sendmail) |--= 00740 smmsp sendmail: Queue runner@00:30:00 for /var/spool/clientmqueue ( |--= 00744 root /usr/sbin/cron -s |-+- 00784 root sh /etc/rc autoboot | \--- 00786 root sleep 60 |--- 00785 root logger -p daemon.notice -t fsck |--= 00788 root /usr/libexec/getty Pc ttyv0 |--= 00789 root /usr/libexec/getty Pc ttyv1 |--= 00790 root /usr/libexec/getty Pc ttyv2 |--= 00791 root /usr/libexec/getty Pc ttyv3 |--= 00792 root /usr/libexec/getty Pc ttyv4 |--= 00793 root /usr/libexec/getty Pc ttyv5 |--= 00794 root /usr/libexec/getty Pc ttyv6 \--= 00795 root /usr/libexec/getty Pc ttyv7 root@freebsd:/usr/home/yuichi # pstree -+= 00001 root /sbin/init -- |--= 00114 root adjkerntz -i |--= 00466 root /usr/sbin/moused -p /dev/ums0 -t auto -I /var/run/moused.ums0. |--= 00492 root /usr/sbin/moused -p /dev/ums1 -t auto -I /var/run/moused.ums1. |--= 00517 root /sbin/devd |--= 00630 root /usr/sbin/syslogd -s |-+= 00734 root /usr/sbin/sshd | \-+= 00796 root sshd: yuichi [priv] (sshd) | \-+- 00799 yuichi sshd: yuichi@pts/0 (sshd) | \-+= 00800 yuichi -sh (sh) | \-+= 00801 root su | \-+= 00802 root _su (csh) | \-+= 00809 root pstree | \--- 00810 root ps -axwwo user,pid,ppid,pgid,command |--= 00737 root sendmail: accepting connections (sendmail) |--= 00740 smmsp sendmail: Queue runner@00:30:00 for /var/spool/clientmqueue ( |--= 00744 root /usr/sbin/cron -s |--= 00788 root /usr/libexec/getty Pc ttyv0 |--= 00789 root /usr/libexec/getty Pc ttyv1 |--= 00790 root /usr/libexec/getty Pc ttyv2 |--= 00791 root /usr/libexec/getty Pc ttyv3 |--= 00792 root /usr/libexec/getty Pc ttyv4 |--= 00793 root /usr/libexec/getty Pc ttyv5 |--= 00794 root /usr/libexec/getty Pc ttyv6 \--= 00795 root /usr/libexec/getty Pc ttyv7
シリアルコントローラエミュレータからの割り込みが発生しないように見える。
TinyVisorあり
シリアルコンソールへの出力
uart0: <8250 or 16450 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 uart0: console (115200,n,8,1)
割り込み発生数
# vmstat -i interrupt total rate irq16: ehci0 665 1 irq23: ehci1 1479 4 cpu0:timer 16996 49 irq256: xhci0 133 0 irq257: hdac0 95 0 irq258: re0 539 1 irq260: ahci1 1229 3 cpu1:timer 2137 6 cpu2:timer 2221 6 cpu3:timer 2162 6 Total 27656 80
TinyVisorなし
シリアルコンソールへの出力
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 uart0: console (115200,n,8,1)
割り込み発生数
# vmstat -i interrupt total rate irq4: uart0 258 5 irq16: ehci0 152 3 irq23: ehci1 192 3 cpu0:timer 3427 69 irq264: xhci0 126 2 irq265: hdac0 92 1 irq266: re0 215 4 irq268: ahci1 1145 23 cpu1:timer 548 11 cpu3:timer 582 11 cpu2:timer 633 12 Total 7370 150
yuichi_xy への返信
シリアルコントローラエミュレータからの割り込みが発生しないように見える。
make configでTTY_SERIALを無効にしてみたところ、ログインプロンプトが表示されました。
よく考えると、I/O APICエミュレータはVM0には対応していないため、シリアルコントローラエミュレータからI/O APICエミュレータを経由して 割り込みを発行することができませんでした。
yuichi_xy への返信
よく考えると、I/O APICエミュレータはVM0には対応していないため、シリアルコントローラエミュレータからI/O APICエミュレータを経由して 割り込みを発行することができませんでした。
ただし、次の条件が成立する場合のみ発行し、それ以外の場合は無視します。
VM0でLinuxを起動すると、論理ディスティネーションモードになるため、割り込みを発行できません。 シリアルコンソールへメッセージが出力されない事象は発生しますが、ログイン画面は表示されますので、論理ディスティネーションモードへの対応は見送ろうと思います。
FreeBSDをVM0で起動すると、ログインプロンプトが画面に表示されない
sshではログイン可能。 以下は、sshでログインしてpstreeコマンドを実行してみた結果。
障害発生リビジョン: r144