Subject: Re: Severe I/O overhead?
To: None <port-xen@NetBSD.org>
From: Jed Davis <jdev@panix.com>
List: port-xen
Date: 08/29/2005 20:47:22
jdev@panix.com (Jed Davis) writes:
> For ease of discussion, these are the numbers I showed Thor earlier:
>
> -- NetBSD/i386 (ring 0)
> (; tar xzf pkgsrc.tar.gz && sync; ) 2.32s user 10.47s system 16% cpu 1:17.98 total
> (; rm -rf pkgsrc && sync; ) 0.14s user 5.18s system 71% cpu 7.435 total
> -- NetBSD/Xen, dom0
> (; tar xzf pkgsrc.tar.gz && sync; ) 2.14s user 11.40s system 16% cpu 1:23.08 total
> (; rm -rf pkgsrc && sync; ) 0.15s user 2.08s system 7% cpu 31.778 total
And they're hugely misleading, because the dom0 of course had less RAM
than the whole machine -- enough so, in this case, to affect buffering.
On more even footing, the dom0 still got 12.7s or so for the rm; a
profiling kernel gives (among reams of less intersting gprof output):
% cumulative self self total
time seconds seconds calls ms/call ms/call name
86.87 27.07 27.07 28211 0.96 0.96 idle_block
5.10 28.66 1.59 hypervisor_force_callback
3.53 29.76 1.10 25606 0.04 0.04 bufq_disksort_put
0.32 29.86 0.10 syscall1
0.26 29.94 0.08 283227 0.00 0.00 __qdivrem
0.26 30.02 0.08 25606 0.00 0.00 wdccommand
--
(let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map
((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l)))))) (lambda
(f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l))
(C k))))))) '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline)))))