summary refs log tree commit diff
path: root/pkgs/build-support/vm
Commit message (Collapse)AuthorAge
* debian: 8.2 -> 8.3Eelco Dolstra2016-01-30
|
* nixos/vm-tests: Remove msize mount optionaszlig2015-12-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This seems to be the root cause of the random page allocation failures and @wizeman did a very good job on not only finding the root problem but also giving a detailed explanation of it in #10828. Here is an excerpt: The problem here is that the kernel is trying to allocate a contiguous section of 2^7=128 pages, which is 512 KB. This is way too much: kernel pages tend to get fragmented over time and kernel developers often go to great lengths to try allocating at most only 1 contiguous page at a time whenever they can. From the error message, it looks like the culprit is unionfs, but this is misleading: unionfs is the name of the userspace process that was running when the system ran out of memory, but it wasn't unionfs who was allocating the memory: it was the kernel; specifically it was the v9fs_dir_readdir_dotl() function, which is the code for handling the readdir() function in the 9p filesystem (the filesystem that is used to share a directory structure between a qemu host and its VM). If you look at the code, here's what it's doing at the moment it tries to allocate memory: buflen = fid->clnt->msize - P9_IOHDRSZ; rdir = v9fs_alloc_rdir_buf(file, buflen); If you look into v9fs_alloc_rdir_buf(), you will see that it will try to allocate a contiguous buffer of memory (using kzalloc(), which is a wrapper around kmalloc()) of size buflen + 8 bytes or so. So in reality, this code actually allocates a buffer of size proportional to fid->clnt->msize. What is this msize? If you follow the definition of the structures, you will see that it's the negotiated buffer transfer size between 9p client and 9p server. On the client side, it can be controlled with the msize mount option. What this all means is that, the reason for running out of memory is that the code (which we can't easily change) tries to allocate a contiguous buffer of size more or less equal to "negotiated 9p protocol buffer size", which seems to be way too big (in our NixOS tests, at least). After that initial finding, @lethalman tested the gnome3 gdm test without setting the msize parameter at all and it seems to have resolved the problem. The reason why I'm committing this without testing against all of the NixOS VM test is basically that I think we can only go better but not worse than the current state. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* Add Fedora 23Eelco Dolstra2015-11-25
|
* Add Ubuntu 15.10Eelco Dolstra2015-11-25
|
* vmTools.commonDebPackages: Add "mawk".aszlig2015-10-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | While debugging an issue with running NixOps tests, I found out that the output from debClosureGenerator is not deterministic. The reason behind this is the way how Provides and Replaces fields are handled. I haven't yet found out what's the exact issue, but so far packages "Provides" are more or less picked at random. So, running the NixOps Hetzner tests we get either mawk, original-awk or gawk altering on every invocation. While for the test it isn't poisionous whether wi have mawk or gawk, having original-awk certainly is, because live-build only works with mawk or gawk. The best solution would obviously be to make debClosureGenerator deterministic, but in the case of "Provides: awk", we can safely pick mawk by default, because the latter has a "Priority: required" in its package description. This also has the advantage that we can safely cherry-pick this to release-15.09 because it's very unlikely that we'll break the debClosureGenerator by adding a dependency to commonDebPackages. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* debian: Update to 7.9, 8.2Eelco Dolstra2015-10-08
|
* Give more memory for the disk image builderEelco Dolstra2015-10-06
| | | | http://hydra.nixos.org/build/26480662
* Debian: Update to 8.1Eelco Dolstra2015-06-12
|
* In VM builds, connect stdin to /dev/nullEelco Dolstra2015-06-04
| | | | This prevents programs from hanging while trying to read from stdin.
* Typo fix! s/wheezy/jessie/Benjamin Staffin2015-05-29
|
* Add Debian 8.0Benjamin Staffin2015-05-29
| | | | | Had to add file type logic in debClosureGenerator because Packages.bz2 is not available for Jessie - only Packages.xz is.
* Add Ubuntu 15.04Eelco Dolstra2015-05-22
|
* Make module loading work in VMsEelco Dolstra2015-05-13
| | | | Also, execute stage 2 as PID 1.
* Provide /run in VMsEelco Dolstra2015-05-13
|
* Mount /dev/shm in VMsEelco Dolstra2015-05-07
|
* fillDiskWithRPMs: Pass --extract-over-symlinks to cpioEelco Dolstra2015-02-27
| | | | http://hydra.nixos.org/build/20003320
* Fix conflict between fedora-release and generic-releaseEelco Dolstra2015-02-12
| | | | http://hydra.nixos.org/build/19594340
* Remove tabsEelco Dolstra2015-02-12
|
* Remove ancient RedHat 9 / SuSE 9 imagesEelco Dolstra2015-02-12
| | | | These are 12 years old and I don't think anybody is using them.
* fillDiskWithRPMs: Shut up some warningsEelco Dolstra2015-02-12
|
* Add Fedora 21Eelco Dolstra2015-02-10
|
* Update Debian to 7.8Eelco Dolstra2015-01-15
|
* Fix a warning in initrd generationEelco Dolstra2015-01-12
| | | | | ${pkgs.busybox}/bin and ${pkgs.busybox}/sbin are now the same directory, so don't copy both.
* Remove RHEL 7 RCEelco Dolstra2015-01-12
| | | | It no longer exists on the RedHat FTP site.
* Fix CentOS 6.5 URLsEelco Dolstra2015-01-12
|
* Ubuntu 14.10: Update hashesEelco Dolstra2014-12-05
|
* Update to Debian 7.7Eelco Dolstra2014-11-20
|
* Add Ubuntu 14.10Eelco Dolstra2014-11-20
|
* vmTools: Fix permissions on /tmp and /dev/*Eelco Dolstra2014-11-18
|
* Debain 7.6-amd64 tarball was updated in placeShea Levy2014-10-20
|
* debian packages tarball was updated in placeShea Levy2014-10-20
|
* Remove references to <nixpkgs>Eelco Dolstra2014-09-23
| | | | | | Nixpkgs should not use <nixpkgs> to refer to itself, because $NIX_PATH might not be set or not point to the same Nixpkgs. It's also unnecessary.
* VM builds: Use default kernelMathijs Kwik2014-09-23
| | | | | (this was set to 3.10 when 3.4 was our default) See commit d846e976564350b247600b87cd065b3e42440846.
* rpm-closure.pl: Reduce verbosityEelco Dolstra2014-09-05
|
* debian: Update to 6.0.10Eelco Dolstra2014-08-10
|
* Merge remote-tracking branch 'origin/master' into stagingEelco Dolstra2014-07-14
|\
| * debian: Update to 7.6Eelco Dolstra2014-07-14
| |
* | Another attempt to eradicate ensureDirEelco Dolstra2014-06-30
|/ | | | See c556a6ea46e71e1907d78b71fab36df30297b3ad.
* Update Ubuntu Packages.bz2 hashesEelco Dolstra2014-05-20
|
* vm/windows: Wait for migration to finish.aszlig2014-05-07
| | | | | | | | | This ensures that the intermediate machine is shut down only after the migration has finished writing the memory dump to disk, to ensure we don't end up with empty state files depending on how fast the migration finished before we actually shut down the VM. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* vm/windows: Exit if VM has dropped out.aszlig2014-05-07
| | | | | | | | | This ensures that the builder isn't waiting forever if the Windows VM drops dead while we're waiting for the controller VM to signal that a particular command has been executed on the Windows VM. It won't ever happen in such cases so it doesn't make sense to wait for the timeout. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* debian: Update to 7.5Eelco Dolstra2014-05-03
| | | | | | | [Note from Austin: I think @edolstra forgot to merge this to master.] (cherry picked from commit 02b056c5b180b4b8ba22ddc3061d78258e2ef98f on release-14.04)
* build-support/vm: add Ubuntu 14.04 Trusty TahirAustin Seipp2014-05-03
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Add RHEL7 to vm functions.Rob Vermaas2014-05-01
|
* debian: Update to 6.0.9Eelco Dolstra2014-04-25
|
* runInLinuxVM: Set the clock properlyEelco Dolstra2014-03-18
|
* vm/windows: Allow to specify a different arch.aszlig2014-03-04
| | | | | | | | | | | So far, we determined this based on stdenv.is64bit, but there are cases where you want to run/build a 32bit program on a 64 bit Windows. This is now possible, by passing windowsImage.arch = "i686" | "x86_64" to runInWindowsVM. Based an what was passed, the corresponding Cygwin packages and setup.exe are bootstrapped. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* vm/windows: Update SHAs for Cygwin setup.ini.aszlig2014-03-03
| | | | | | | | Another very annoying part. Unfortunately, the only option we might have here is to include it in nixpkgs or maybe make a fixed Hash on the result of the closure fetcher. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* vm/windows: Replace binary with cross cygwinSetup.aszlig2014-03-03
| | | | | | | | | | | | | | | | | As the official Cygwin setup binary download doesn't come in snapshots or even versioned, the fetchurl of setup.exe will frequently fail, which in turn will annoy us as hell (or at least me). One warning though: The fetchurl is currently broken and the cross-build might not work yet for example on mingw32 (mingw-w64 branch on its way), but the upstream URL has already changed and the new version contains a bug (not yet tracked down) which breaks our Windows bootstrap process. So to conclude: If it's already broken, make it at least "less broken". "Not broken" is coming soon with the merge of the mingw-w64 branch. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* vm/windows: Remove stray "import <nixpkgs>".aszlig2014-03-03
| | | | Signed-off-by: aszlig <aszlig@redmoonstudios.org>