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)))))