/srv/irclogs.ubuntu.com/2014/05/06/#ubuntu-quality.txt

=== _salem is now known as salem_
=== salem_ is now known as _salem
=== chihchun_afk is now known as chihchun
=== maclin__ is now known as maclin
pittiGood morning05:17
jibelpitti, how do I connect to running autopkgtest VMs? there are defunct runcmd, but no evidence of what happened on the console and on the host.07:08
pittijibel: sorry, missed your ping07:22
pittijibel: ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022 ubuntu@localhost07:22
pittijibel: could also be 10023 or higher if multiple VMs are running; it says the port in the log, though07:23
jibelpitti, ah sorry, I didn't see the port at the end of the command line. Thanks07:26
jibelpitti, there are serious performance issues with 9p07:38
jibelpitti, I compared dd on the mountpoint and locally inside the VM http://paste.ubuntu.com/7403086/07:38
pittijibel: right; but it's still much faster than squeezing everything through a pipe and tar07:42
pittijibel: we run the tests and builds in /tmp/ in the testbed though, not in /autopkgtest07:43
pittijibel: the former is a workaround for the too old qemu in saucy/precise (that caused the "invalid numeric value" breakage)07:43
pittiwhich means we actually have to copy large packages, which is what causes these timeouts on libo & friends07:43
pittiI need to look into that07:43
pitti(aside from all the other fires that are burning)07:44
pittijibel: does that performance limitation hamper some test?07:44
pittijibel: the 142 MB/s is just writing to memory, right? whereas 9p actually goes to the disk in the hosts's /tmp/07:44
pittiI suppose that explains most of the difference07:44
jibelpitti, right, but but 2.9MB/s is really slow even for disks07:45
jibel-but07:45
jibelpitti, adt-virt-qemu copies data from /autopkgtest right?07:46
jibelI think that's what impacts performance and makes some test hang07:46
pittijibel: yes; /autopkgtest is used for everything that needs to copy up/down data07:47
pittijibel: originally I had all tests and source packages there, but as we can't make it owned by the user running the test I had to play some chmod tricks and move building and the tests tree out07:48
pittijibel: which test is hanging due to that?07:48
pittijibel: NB that libo etc. fail due to the copy timeout when copying the unpackaged source tree between host and testbed (that's the bit on my list)07:48
jibelpitti, 51200000 bytes (51 MB) copied, 0.228209 s, 224 MB/s07:48
jibelpitti, ^this is on disk07:49
jibelfaster than mem even :)07:49
pittijibel: are you sure? that's going to teh overlay in /dev/shm, isn't it?07:49
pittiback in 3 mins07:49
jibelpitti, I am sure, last test was in $HOME as auto-package-testing on alderamin07:50
jibeland the VM runs with -drive file=/run/shm/adt-utopic-amd64-cloud.img.overlay-1399316707.83,if=virtio,index=007:51
pittijibel: ah, you ran it on the host, not in the VM07:55
pittiso 221 MB/s on my workstation's disk07:56
* pitti boots VM07:56
pittijibel: right, I get 6.9 MB/s here07:58
jibelpitti, yes, 224 is on the host with a raid array, 2.9 is on 9p in the VM and 142 in the VM on disk (which is an overlay in shm)08:00
pittijibel: so at least chromium and libo don't have build-needed, for those I can radically optimize the copying and thus avoid the timeout08:07
pittiah crap, no, these might actually call stuff from the full tree08:08
pittijibel: as an immediate workaround I'd suggest I temporarily change the default copy timeout so that this doesn't keep blocking our tests?08:08
pitti-copy_timeout = int(os.getenv('ADT_VIRT_COPY_TIMEOUT', '300'))08:09
pitti+copy_timeout = int(os.getenv('ADT_VIRT_COPY_TIMEOUT', '3000'))08:09
pittiman, why is it so ridiculously hard to communicate with a QEMU VM08:10
pittiit seems pretty much the only thing that's fast is ssh, and that makes a lot of assumptions08:11
jibelpitti, 3000 sounds good for now, let see if it makes binutils more stable.08:21
pittijibel: the recent one succeeded; I retried chromium, libo, and friends with the 300008:22
jibelfor LO and linux, I am not confident. It took 40min to copy the built tree with previous version of autopkgtest08:23
* pitti wants a way to access a VM image without root privs. Now!08:26
=== qwebirc854243 is now known as slickymasterWork
jibelpitti, it seems to be related to the block size used by cp, if I dd with bs=1M I get x85 performance improvement on my machine09:42
=== vrruiz_ is now known as rvr
pittijibel: oh, wow! so maybe we could apply a similar trick in the copy{up,down}_shareddir bits09:58
davmor2Morning all09:59
pittijibel: https://lists.gnu.org/archive/html/coreutils/2011-07/msg00059.html seems related10:02
elfymorning davmor2 :)10:05
=== _salem is now known as salem_
jibelpitti, FYI, I didn't fin any way to really improve cp on 9p. I tried cpio too and specified a bloc size but it doesn't make a differentce. The best I could do is with rsync which is 2 times faster than cp13:22
pittijibel: ah, I'm also currently playing around with this; my hope was that cpio and/or tar would help as you can specify big block sizes13:29
pittidd bs=1M if=/dev/zero count=100 | cpio -o --file=out.cpio13:32
pittiheh, that only creates a sparse file13:32
jibelpitti, I tried find /autopkgtest/tmp -depth -print|cpio -pdm /tmp/adt/13:33
pittijibel: I'm getting 44 MB/s with tar, while I got 6 with 512 byte block (default) dd13:34
jibelpitti, I also tried the options msize and cache of 9p but visible improvement13:34
jibel*no visible13:34
pittijibel: same with reading, btw13:36
pittidd if=/autopkgtest/out.tar of=/dev/null -> 7.0 MB/s13:36
pittiwith bs=1M -> 63 MB/s13:36
pittijibel: so it seems funneling that through tar if both the host and testbed paths are *not* already in the shared dir will give some x10 improvement13:39
jibelpitti, right, the best I can get is by creating a tar file on the host then on the guest run: time dd if=/autopkgtest/shared.tar bs=1M|tar x -C /tmp/adt/13:48
jibelpitti, it takes 2s for a 100M tar file13:48
pittijibel: right, I found reading be much less sensitive to the block size13:50
jibelwhile cp -a takes 52s and kills the cpu13:52
pittijibel: I'm now testing with a more realistic scenario with lots of smaller files, not a single big one13:55
pittiwith an unpacked postgresql-9.3 tree (113 MB, 5680 files)13:55
pitti11 seconds with cp -r13:55
jibelpitti, pitti I tried with /usr/share/doc + libpng = 17806 files13:56
jibelpitti, I pushed fixes and new tests to https://code.launchpad.net/~jibel/britney/fix_missing_results15:22
jibelpitti, I verified that I could reproduce the bug with the current version of britney and the new tests15:22
pitti\o/15:22
pittijibel: you rock, thanks15:22
jibelpitti, do you think you'd have time tomorrow for a  pre-review, then I'll propose a merge against britney15:23
pittijibel: yes, absolutely; this is the #1 issue for wrecking utopic, I'll make time15:23
pittijibel: it seems this bug currently happesn more often than not; presumably because of the large amount of pacakge influx from syncs, etc.?15:23
jibelpitti, that'd be great, many thanks15:23
pittijibel: perhaps you can already propose, then we see the diff and have some comment thread for the discussion/review?15:25
pittijibel: set it as "WIP" for now15:25
jibelpitti, it's essentially because there are more packages with autopkgtest, and the last result is take into account.15:27
jibelpitti, okay, I'll do that15:27
=== roadmr is now known as roadmr_afk
jibelpitti, any reason the tests aren't merged in britney2-ubuntu?15:28
pittijibel: I don't know; I proposed it ages ago, but got no reaction to it yet; probably needs more poking15:29
=== roadmr_afk is now known as roadmr
pittijibel: OOI, why logging.warning -> print() ?15:58
=== chihchun is now known as chihchun_afk
jibelpitti, because that's the only call to logging in all the code, print() is used everywhere else. Probably a copy/paste at some point16:04
pittijibel: ah, thanks16:06
=== chihchun_afk is now known as chihchun
=== roadmr is now known as roadmr_afk
=== bfiller is now known as bfiller_afk
=== roadmr_afk is now known as roadmr
=== chihchun is now known as chihchun_afk
=== bfiller is now known as bfiller-afk
=== bfiller-afk is now known as bfiller
=== salem_ is now known as _salem

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!