VKernel progress update - 10 Jan 2006

Sepherosa Ziehau sepherosa at gmail.com
Thu Jan 11 07:06:08 PST 2007


On 1/11/07, Matthew Dillon <dillon at apollo.backplane.com> wrote:
    Buildworld blows past the point where it failed before.  Hopefully
    it will be done when I wake up in a few hours :-).  I've definitely
    squashed the last major VM bug.
    Real (non virtual) kernels will be slightly nerfed until I am able to
    commit a followup later on thursday.  The virtual kernel support
    requires the real kernel to force a fault on (initial) page writes in
    order to be able to set the Modify bit in the virtual page table entries,
    but the fault is currently being forced on ALL user pages.  Needless
    to say, that is not entirely desireable.  I will fix this on thursday to
    make it apply only to virtual page tables.  Doing it right is somewhat
    non-trivial.
Multi network interface support for vkernel:
sephe-test1:VKERNEL# ./kernel.debug -I /dev/tap0 -I /dev/tap1 -m 128m
-r /opt/vkernel/rootimg.01
on another terminal:
sephe-test1:~# ifconfig tap1 up
sephe-test1:~# ifconfig tap0 up
sephe-test1:~# ifconfig bridge0 addm nfe0 addm tap1
sephe-test1:~# ifconfig bridge1 addm re0 addm tap0
sephe-test1:~# ifconfig bridge1 up
sephe-test1:~# ifconfig bridge0 up
in vkernel:
# ifconfig -a
vke0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
       ether 00:be:63:e0:15:00
vke1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
       ether 00:be:66:e0:15:01
lo0: flags=8008<LOOPBACK,MULTICAST> mtu 16384
ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552
faith0: flags=8002<BROADCAST,MULTICAST> mtu 1500
# dhclient vke0
# ifconfig -a
vke0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
       inet6 fe80::2be:63ff:fee0:1500%vke0 prefixlen 64 scopeid 0x1
       inet 192.168.3.122 netmask 0xffffff00 broadcast 192.168.3.255
       ether 00:be:63:e0:15:00
vke1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
       ether 00:be:66:e0:15:01
lo0: flags=8008<LOOPBACK,MULTICAST> mtu 16384
ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552
faith0: flags=8002<BROADCAST,MULTICAST> mtu 1500
# ifconfig vke1 inet 192.168.2.100
# ifconfig -a
vke0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
       inet6 fe80::2be:63ff:fee0:1500%vke0 prefixlen 64 scopeid 0x1
       inet 192.168.3.122 netmask 0xffffff00 broadcast 192.168.3.255
       ether 00:be:63:e0:15:00
vke1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
       inet 192.168.2.100 netmask 0xffffff00 broadcast 192.168.2.255
       inet6 fe80::2be:66ff:fee0:1501%vke1 prefixlen 64 scopeid 0x2
       ether 00:be:66:e0:15:01
lo0: flags=8008<LOOPBACK,MULTICAST> mtu 16384
ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552
faith0: flags=8002<BROADCAST,MULTICAST> mtu 1500
# ping 192.168.3.100
PING 192.168.3.100 (192.168.3.100): 56 data bytes
64 bytes from 192.168.3.100: icmp_seq=0 ttl=64 time=111.181 ms
64 bytes from 192.168.3.100: icmp_seq=1 ttl=64 time=99.948 ms
64 bytes from 192.168.3.100: icmp_seq=2 ttl=64 time=79.950 ms
^C
--- 192.168.3.100 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 79.950/97.026/111.181/12.916 ms
# ping 192.168.2.1
PING 192.168.2.1 (192.168.2.1): 56 data bytes
64 bytes from 192.168.2.1: icmp_seq=0 ttl=64 time=177.495 ms
64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=19.974 ms
64 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=19.976 ms
64 bytes from 192.168.2.1: icmp_seq=3 ttl=64 time=19.962 ms
^C
--- 192.168.2.1 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 19.962/59.352/177.495/68.210 ms
Now vke(4) will have same unit as the backend tap(4), i.e. if you
specify only -I /dev/tap1 then vke1 will appear, instead of vke0.
This can make bridge configuration in real kernel less confusion.
Patch is at:
http://leaf.dragonflybsd.org/~sephe/vke_multi.diff
If no objection comes, it will be committed tomorrow.

Best Regards,
sephe
--
Live Free or Die




More information about the Kernel mailing list