Commit Graph

99 Commits

Author SHA1 Message Date
David Anderson 3d9b1fa6ae - Vbox wrapper: deal with checkpointing.
Current: wrapper reports frequent checkpointing to client,
        but actually checkpoints only when the VM is stopped
    Problem: large amounts of work would be wasted if
        BOINC stops in an ungraceful way (e.g., power failure)
    Solution:
        Don't report frequent checkpointing.
        Every CPU scheduling period (typically once/hour)
        stop the VM (creating a checkpoint)
        and call boinc_temporary_exit(0).
        If the client wants to keep running this job,
        it will start us immediately.


svn path=/trunk/boinc/; revision=24068
2011-08-29 20:31:55 +00:00
David Anderson 1eed0db2ec - VirtualBox wrapper:
- change names of CPU and network-limiting functions
        to express their units (always do this).
    - wrapper monitors status.suspend_network
        and suspends/resumes network accordingly
    - wrapper sets CPU and network bandwidth limits on startup
        (Rom: should this be done before run() rather than after?)
Note: App versions using this wrapper should always have
    <dont_throttle/> in their version.xml,
    to tell the client that the app throttles itself.


svn path=/trunk/boinc/; revision=24054
2011-08-27 04:13:50 +00:00
Rom Walton 49b9c1bb64 - VboxWrapper: Add functions for enable/disable network and throttling
the CPU and network activity.

    samples/vboxwrapper/
        vbox.cpp, .h

svn path=/trunk/boinc/; revision=24051
2011-08-26 19:19:28 +00:00
David Anderson 8fda6c0497 - Vbox wrapper: add --trickle x option; sends a trickle-up message
reporting incremental runtime exery x seconds of runtime.
- client: more XML parsing cleanup
- credit trickle handler: do sanity checks on CPU speed


svn path=/trunk/boinc/; revision=24017
2011-08-21 11:18:08 +00:00
Daniel Lombraña González 6d104573c6 Fixed performance in Windows.
Additionally, the VM can be throttled by parsing in the wrapper the <max_vm_cpu_pct> specific project preference.

svn path=/trunk/boinc/; revision=23976
2011-08-10 12:48:29 +00:00
Rom Walton d91ddfae0f - vbox wrapper: initialize xml parser with the correct starting tag.
samples/vboxwrapper/
        vboxwrapper.cpp

svn path=/trunk/boinc/; revision=23934
2011-08-04 16:34:03 +00:00
Rom Walton 7c14104e20 Quick Updates
svn path=/trunk/boinc/; revision=23931
2011-08-04 01:06:58 +00:00
David Anderson 306f42e7bc - vbox wrapper: hardwire logical name of image file to "vm_image.vdi".
- vbox wrapper: on startup, rename image file to "vm_image_SLOT.vdi",
    where SLOT is the slot number.
    Vbox requires unique names for VM image files.


svn path=/trunk/boinc/; revision=23930
2011-08-04 00:24:42 +00:00
Rom Walton 4e2968f71f match spec
svn path=/trunk/boinc/; revision=23929
2011-08-03 23:12:36 +00:00
David Anderson 241e6eaf35 - vbox wrapper: fix parsing of job file
- vbox wrapper: fix code structure
    - merge vm and vbox
    - no global vars


svn path=/trunk/boinc/; revision=23928
2011-08-03 22:36:29 +00:00
Rom Walton 13930f65c3 Quick Updates
svn path=/trunk/boinc/; revision=23926
2011-08-03 21:02:58 +00:00
Daniel Lombraña González 5210798d61 VBoxManage unregistervm works with version 4.1.
The new VirtualBox 4.1 supports VBoxManage unregisterVM in all the platforms. There was a bug that didn't allow to run that
command to remove the VM, affecting only Windows 64 bits, but this new version has fixed it.

svn path=/trunk/boinc/; revision=23883
2011-07-27 08:39:58 +00:00
Daniel Lombraña González fcd9a94810 Suspend mode enabled again.
The removed suspend code has been added again.


svn path=/trunk/boinc/; revision=23741
2011-06-17 07:37:50 +00:00
Rom Walton c1e447560f make vboxwrapper.cpp compile again
svn path=/trunk/boinc/; revision=23730
2011-06-15 23:44:03 +00:00
David Anderson 94e8c48220 - client: change --detach_phase_two (??) to --detach_console
- eliminate compiler warnings (e.g. shadowed vars)
    in various places, mostly in client


svn path=/trunk/boinc/; revision=23710
2011-06-12 20:58:43 +00:00
Daniel Lombraña González 4ea940aecf VM CPU throttling enabled.
VM CPU time is changed according to BOINC preferences.


svn path=/trunk/boinc/; revision=23683
2011-06-08 12:24:12 +00:00
Daniel Lombraña González 4d74982131 Flush ProgressFile updates added.
This new feature prevents from losing progress data from an unexpected reboot.


svn path=/trunk/boinc/; revision=23642
2011-06-06 10:55:01 +00:00
Daniel Lombraña González a2135d4cfb Empty error buffers in Windows pause the wrapper.
The empty buffers have been removed. This only happens on Windows machines.

svn path=/trunk/boinc/; revision=23534
2011-05-13 10:01:31 +00:00
Daniel Lombraña González 12559ef91e New measures to released virtual hard disks.
svn path=/trunk/boinc/; revision=23533
2011-05-13 08:39:33 +00:00
Daniel Lombraña González b67f9b6e4f Fixed the running CPU time report in Windows.
svn path=/trunk/boinc/; revision=23530
2011-05-12 12:52:15 +00:00
Rom Walton 2ea990b9a1 Quick Updates
svn path=/trunk/boinc/; revision=23521
2011-05-10 16:39:55 +00:00
David Anderson 318b40b368 - vbox wrapper: updates
svn path=/trunk/boinc/; revision=23520
2011-05-10 16:30:00 +00:00
Daniel Lombraña González b41590f9ef Fixed elapsed time and added critical sections.
svn path=/trunk/boinc/; revision=23518
2011-05-10 10:50:03 +00:00
Rom Walton 9958851129 - VBOX: Implement basic cpu time accounting and checkpointing
for VMs.

    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp
        vm.cpp, .h

svn path=/trunk/boinc/; revision=23517
2011-05-09 21:11:37 +00:00
Rom Walton 28c5b0a6d1 - VBOX: Switch to using CreateProcess and CreatePipe on Windows, otherwise we
get a bunch of flicking windows when we preform and operation against
        VirtualBox.
        
    samples/vboxwrapper/
        vbox.cpp,

svn path=/trunk/boinc/; revision=23501
2011-05-04 20:54:50 +00:00
Rom Walton 2db7322d3f Quick Updates
svn path=/trunk/boinc/; revision=23500
2011-05-04 17:17:43 +00:00
Rom Walton aa0dffdf05 - VBOX: Add function for a host being able to execute tasks within
guest VMs.
        
    samples/vboxwrapper/
        vbox.cpp, .h
        vm.cpp, .h

svn path=/trunk/boinc/; revision=23499
2011-05-04 16:00:12 +00:00
David Anderson f45681c48b - vbox wrapper: add Makefile
- notices: fix bug where the URL in "friend request" notices
    doesn't work if you're not already logged in.


svn path=/trunk/boinc/; revision=23498
2011-05-04 15:37:09 +00:00
Rom Walton a32054a434 - VBOX: Handle both abort scenarios
samples/vboxwrapper/
        vbox.cpp, .h
        vm.cpp, .h

svn path=/trunk/boinc/; revision=23493
2011-05-03 17:52:55 +00:00
Rom Walton 602f972292 - VBOX: Checkpoint, Re-implement the registering and un-registering of the
vm using the vboxmanage app.

    samples/vboxwrapper/
        vbox.cpp, .h
        vm.cpp, .h

svn path=/trunk/boinc/; revision=23485
2011-04-30 00:26:05 +00:00
Rom Walton f8c1049335 - VBOX: Checkpoint, Re-implement the start/stop/suspend/resume/is_running
and is_registered functions using the vboxmanage app.
    - VBOX: Simplify the virtualbox_vbm_popen function and remove a buffer
        copy operation.

    samples/vboxwrapper/
        vbox.cpp, .h

svn path=/trunk/boinc/; revision=23483
2011-04-29 17:15:34 +00:00
Rom Walton a285dfd44b - VBOX: Begin merging the two different vbox wrappers (COM vs. Daniel's from
CERN).  Where possible stick with the POSIX API set and remove Windows
        specific code. (Example vbm_popen).
        
      NOTE: Not usable at the moment.
      
    samples/vboxwrapper/cernvm
        cernvmwrapper.cpp
    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp
    samples/vboxwrapper/
        vm.cpp, .h
    win_build/
        vboxwrapper.vcproj

svn path=/trunk/boinc/; revision=23458
2011-04-26 17:41:10 +00:00
Rom Walton c4e8e186c1 Quick Updates
svn path=/trunk/boinc/; revision=23454
2011-04-26 15:30:19 +00:00
Rom Walton 4b543f8d32 svn path=/trunk/boinc/; revision=23453 2011-04-26 15:28:48 +00:00
Rom Walton 4f7e4e90bd svn path=/trunk/boinc/; revision=23452 2011-04-26 15:28:21 +00:00
Rom Walton 6ce8facb09 svn path=/trunk/boinc/; revision=23451 2011-04-26 15:27:25 +00:00
Rom Walton c66c35e500 svn path=/trunk/boinc/; revision=23450 2011-04-26 15:27:01 +00:00
Rom Walton e33d410176 svn path=/trunk/boinc/; revision=23449 2011-04-26 15:26:35 +00:00
Rom Walton 45a8418b36 svn path=/trunk/boinc/; revision=23448 2011-04-26 15:26:10 +00:00
Rom Walton b4d0aff42a svn path=/trunk/boinc/; revision=23446 2011-04-26 15:25:17 +00:00
Rom Walton e9f144ae18 Quick Updates
svn path=/trunk/boinc/; revision=23444
2011-04-26 15:20:54 +00:00
Rom Walton d6749af703 Quick Updates
svn path=/trunk/boinc/; revision=23248
2011-03-23 03:02:09 +00:00
Rom Walton 57d7883c35 Quick Updates
svn path=/trunk/boinc/; revision=23247
2011-03-23 03:01:18 +00:00
Rom Walton 3622966641 - VBox: Checkpoint for Windows
* Creates/registers virtual machine
        * Starts/Stops virtual machine
        * Suspends/Resumes virtual machine
        * Deletes/deregisters virtual machine
      
      TODO:
        * Fraction done properly
        * Standard error streams from virtualized applications
        * Find a way to hide the VBoxHeadless application window (It can be minimized manually)

    samples/vboxwrapper/
        vbox.cpp, .h
        vbox_win.cpp
        vboxwrapper.cpp
        vm.cpp, .h

svn path=/trunk/boinc/; revision=23246
2011-03-23 02:43:28 +00:00
Rom Walton 0ea0fd6037 - VBOX: Implement stubs for starting/stopping/suspending/resuming VMs
TODO: create/delete.
        
    samples/vboxwrapper/
        vbox.cpp, .h
        vbox_win.cpp
        vboxwrapper.cpp
        vm.cpp, .h
    win_build/
        vboxwrapper.vcproj

svn path=/trunk/boinc/; revision=22833
2010-12-08 16:02:10 +00:00
Rom Walton 3fa1f8d94d Quick Updates
svn path=/trunk/boinc/; revision=22783
2010-12-01 16:06:31 +00:00
David Anderson 55eca25ed5 - Rappture stuff
svn path=/trunk/boinc/; revision=22777
2010-11-30 05:27:05 +00:00
Rom Walton 36c95249bf - vboxwrapper: Remove unneeded cruft. Vbox can report how long a
VM has been running since the last state change, we'll use that
        instead.
    - vboxwrapper: provide basic stub functions for starting/stopping/
        suspending/resuming a VM.  Leave wrapper functionality in
        vboxwrapper, and VM specific functionality in vbox_*.  Ideally
        only the stub functions would have to change for other VM
        implementations.
        
    samples/vboxwrapper/
        vbox.cpp, .h
        vbox_win.cpp
        vboxwrapper.cpp
    win_build/
        vboxwrapper.vcproj

svn path=/trunk/boinc/; revision=22753
2010-11-29 16:48:31 +00:00
Rom Walton 650ede61c5 - vbox: Create a new VirtualBox wrapper using the VirtualBox COM
API set.  Use the existing wrapper as the baseline.  Current
        wrapper just dumps the existing VMs defined on the machine.
        More to follow.
        
    samples/vboxwrapper/mscom/
        VirtualBox.h
        VirtualBox.tlb
        VirtualBox_i.c
    samples/vboxwrapper/
        vbox.h
        vbox_win.cpp
        vboxwrapper.cpp
    win_build/
        boinc.sln
        vboxwrapper.vcproj

svn path=/trunk/boinc/; revision=22745
2010-11-24 20:15:11 +00:00