[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] update on os-bigarray branch
I've been porting the network stack to switch all data buffers to directly use data buffers as external reference counted pages, rather than wrapping them in OCaml string types. These buffers are exposed as 'bigarrays', and manipulated via the new 'cstruct' syntax extension which maps c structs to OCaml, and generates accessor functions for them. Everything works up until the Channel module (which will work very shortly), but I did some ICMP echo flood tests to check out the performance as a rough metric, and the results are pretty good. With 2000 byte packets and a million echo requests, going between two PV domains, all the tests have zero packet loss or reordering issues (good!). In descending order performance, we have the zero-copy Mirage cstruct stack, then PV Linux, and then the Mirage bitstring (which performs a data copy into an OCaml string). --- Mirage-cstruct 10.0.0.2 ping statistics --- 100000 packets transmitted, 100000 received, 0% packet loss, time 16885ms rtt min/avg/max/mdev = 0.089/0.114/0.704/0.026 ms, ipg/ewma 0.168/0.109 ms --- PV Linux 10.0.0.4 ping statistics --- 100000 packets transmitted, 100000 received, 0% packet loss, time 17044ms rtt min/avg/max/mdev = 0.106/0.123/0.201/0.007 ms, ipg/ewma 0.170/0.125 ms --- Mirage-bitstring 10.0.0.2 ping statistics --- 100000 packets transmitted, 100000 received, 0% packet loss, time 18062ms rtt min/avg/max/mdev = 0.095/0.132/0.498/0.030 ms, ipg/ewma 0.180/0.138 ms I've done some quick TCP write tests, and we seem to have fixed the very slow problem that the old Bitstring had (due to the multiple string creates). Next steps before merging this into trunk are: - Finish Channel for buffered TCP (will let HTTP and SSH work again) - Mort is porting lib/dns (while on vacation i believe!) - Haris will take a look at the Openflow switch, once I port the controller over to the new Channel stack. So we should get to a self-hosting website again very shortly, merge this to trunk, and then get on with the developer preview release by the end of June! -anil
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |