summaryrefslogtreecommitdiff
path: root/open_issues/xen_lseek.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'open_issues/xen_lseek.mdwn')
-rw-r--r--open_issues/xen_lseek.mdwn57
1 files changed, 57 insertions, 0 deletions
diff --git a/open_issues/xen_lseek.mdwn b/open_issues/xen_lseek.mdwn
new file mode 100644
index 00000000..756abf5e
--- /dev/null
+++ b/open_issues/xen_lseek.mdwn
@@ -0,0 +1,57 @@
+[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_xen]]
+
+IRC, freenode, #hurd, 2011-09-01:
+
+ <youpi> hum, f951 does myriads of 71->io_seek_request (32768 0) = 0 32768
+ <youpi> no wonder it's slow
+ <youpi> unfortunately that's also what it does on linux, the system call is
+ just less costly
+ <youpi> apparently gfortran calls io_seek for, like, every token of the
+ sourced file
+ <youpi> (fgetpos actually, but that's the same)
+ <youpi> and it is indeed about 10 times slower under Xen for some reason
+
+IRC, freenode, #hurd, 2011-11-02:
+
+ <youpi> btw, we have a performance issue with xen
+ <youpi> an lseek() call costs a huge lot
+ <youpi> like 1ms
+ <youpi> while the same costs just a few dozens µs with kvm
+ <youpi> there's of course the cost of switching between ring3, ring0,
+ ring1, ring0, ring3, but still
+ <gianluca> oh, nice.
+ <youpi> lseek is supposed to perform only a back&forth
+ <youpi> and I don't observe disk activity, so it's not waiting for the disk
+ to complete whatever atime change & such :)
+ <youpi> it was mentioned that perhaps xen in hvm mode with pv drivers would
+ be faster
+ <youpi> thanks to the ring3/"1" switching being done by the processor
+ <youpi> (and assuming npt)
+ <gianluca> hm
+ <gianluca> i'll look into that, sounds fun.
+ <gianluca> :)
+ <tschwinge> Here is a testcase:
+ http://www.gnu.org/software/hurd/open_issues/performance/io_system/binutils_ld_64ksec.html
+
+[[performance/io_system/binutils_ld_64ksec]].
+
+Also see the simple testcases [[test-lseek.c]] and [[test-mach.c]].
+
+IRC, freenode, #hurd, 2011-11-05:
+
+ <youpi> [test-mach.c is] mostly as a reference for the trap overhead
+ <youpi> 0.56µs (xen) vs 0.48µs(kvm) on test-mach
+ <youpi> 455µs(xen) vs 16µs(kvm) on test-lseek
+ <youpi> that might simply be an issue in the RPC mechanism, which behaves
+ badly with the xen memory management
+ <youpi> yes, about 0.5ms for an lseek, that's quite high :)