Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


11 years agoMerge branch 'devel' of ssh://newskysaw.cs.northwestern.edu/home/palacios/palacios...
Patrick G. Bridges [Wed, 6 Feb 2013 18:29:00 +0000]
Merge branch 'devel' of ssh://newskysaw.cs.northwestern.edu/home/palacios/palacios into devel

11 years agoCommented in scheduler call previously commented out.
Oscar Mondragon [Wed, 6 Feb 2013 18:28:30 +0000]
Commented in scheduler call previously commented out.

11 years agobugfix: memory region is now removed from hook table on v3_unhook_mem
Kyle Hale [Wed, 6 Feb 2013 17:05:27 +0000]
bugfix: memory region is now removed from hook table on v3_unhook_mem

11 years agoInitial commit of new scheduling infrastructure. The EDF scheduler does not
Oscar Mondragon [Wed, 6 Feb 2013 17:50:52 +0000]
Initial commit of new scheduling infrastructure. The EDF scheduler does not
yet work, Linux/Kitten hooks still need to be added for sleep/wakeup, and
we still need a mechanism to specify options to Palacios when it starts up.
it is booted.

11 years agoAdded missed extension include update
Patrick G. Bridges [Tue, 5 Feb 2013 20:29:20 +0000]
Added missed extension include update

11 years agoAdded global initialization hook for extensions to support upcoming scheduling extensions
Patrick G. Bridges [Tue, 5 Feb 2013 20:05:08 +0000]
Added global initialization hook for extensions to support upcoming scheduling extensions

11 years agoAdded proper updated quix86 libraries that had been omitted from
Alexander Kudryavtsev [Mon, 4 Feb 2013 23:47:33 +0000]
Added proper updated quix86 libraries that had been omitted from
previous patch.

11 years agoMerge branch 'devel' of ssh://newskysaw.cs.northwestern.edu/home/palacios/palacios...
Patrick G. Bridges [Sun, 27 Jan 2013 01:03:21 +0000]
Merge branch 'devel' of ssh://newskysaw.cs.northwestern.edu/home/palacios/palacios into devel

11 years agoUpdated quix86 patch from Alexander. With latest version of library,
Alexander Kudryavtsev [Fri, 25 Jan 2013 20:55:04 +0000]
Updated quix86 patch from Alexander. With latest version of library,
boots 64-bit guests on real hardware.

11 years agoUpdated quix86 patch from Alexander. With latest version of library,
Patrick G. Bridges [Fri, 25 Jan 2013 20:55:04 +0000]
Updated quix86 patch from Alexander. With latest version of library,
boots 64-bit guests on real hardware.

11 years agoCorrect banner titles in configuration screens
Peter Dinda [Sat, 5 Jan 2013 18:15:18 +0000]
Correct banner titles in configuration screens

11 years agoOptional starting address for v3_mem
Peter Dinda [Sat, 5 Jan 2013 01:45:22 +0000]
Optional starting address for v3_mem

The idea here is that on hosts that already have a lot of stuff
running, it may be very costly to offline memory blocks low in the
physical address space - the kernel may take a looong time to copy
their contents and set things up accordingly.  With this patch, you can say
things like:

v3_mem 1024 1024

which means that you are looking to allocate 1024 MB of space
starting at or above the address 1024*(1024*1024)

11 years agoAdditional error checking / output for failing memory region operations
Peter Dinda [Tue, 1 Jan 2013 00:11:16 +0000]
Additional error checking / output for failing memory region operations

11 years agoContext-based output infrastructure (V3_Print, etc) and modifications to use it
Peter Dinda [Sat, 29 Dec 2012 18:59:47 +0000]
Context-based output infrastructure (V3_Print, etc) and modifications to use it

This commit is huge, but the vast majority of it is basically trivial changes in
how V3_Print, PrintDebug, PrintError, V3_ASSERT, and Vnet_Print are invoked
throughout our codebase. All compiles, with all debug and features enabled.
Functionality testing doesn't show problems.

These functions now include a context: the VM and the vcore.  There are
Several cases:

V3_Print(vm, vcore, ...)           => VM-specific, and vcore-specific
V3_Print(vm, VCORE_NONE,...)       => VM-specific, but not core specific
V3_Print(VM_NONE, VCORE_NONE),...) => non-specific

PrintDebug now prefaces data with DEBUG:
PrintError now prefaces data with ERROR:
Telementry prefaces with telem.# (as before)

The print OS hook has been modified so that it is called with:

print(void *host_priv_data_from_create, // NULL = non-specific
      int vcore_number,                 // -1 = non-specific
      ...)

The linux implementation now uses this functionality to decorate its
output in an enhanced way:

palacios (pcore num): ...
palacios (pcore num vm name): ...
palacios (pcore num vm name vcore num):...

The new userspace tool v3_info filters and formats dmesg or /proc/kmsg
output in numerous ways so that you can, for example, focus on the
debugging output of a specfic core on a specific VM. Run without
arguments for help.

Other minor compilation fixes for ancient code.

11 years agoUse of information interface to enhance output of /proc/v3vee-/v3-guests in Linux
Peter Dinda [Sat, 29 Dec 2012 00:47:39 +0000]
Use of information interface to enhance output of /proc/v3vee-/v3-guests in Linux

11 years agoinformation request api for the host - gives a more detailed view of VM and vcore...
Peter Dinda [Sat, 29 Dec 2012 00:46:44 +0000]
information request api for the host - gives a more detailed view of VM and vcore state to the host

11 years agoExplictly tags in saves for PIT, APIC, IOAPIC, SVM, and CORE
Madhav Suresh [Thu, 27 Dec 2012 02:11:54 +0000]
Explictly tags in saves for PIT, APIC, IOAPIC, SVM, and CORE

11 years agoAllow spaces in key names for textfile: saves
Peter Dinda [Thu, 27 Dec 2012 02:10:45 +0000]
Allow spaces in key names for textfile: saves

11 years agoLibrary and tools for manipulating text and binary file ("KEYED STREAM file: / textfi...
Peter Dinda [Wed, 26 Dec 2012 17:22:29 +0000]
Library and tools for manipulating text and binary file ("KEYED STREAM file: / textfile:") checkpoints at user level.

11 years agoCheckpointing of serial devices
Madhav Suresh [Wed, 26 Dec 2012 17:19:58 +0000]
Checkpointing of serial devices

11 years agoDevices updated for revised checkpoint interface
Peter Dinda [Wed, 26 Dec 2012 17:18:21 +0000]
Devices updated for revised checkpoint interface

11 years agoDevice manager updated with extended save/load model to facilitate devices that need...
Peter Dinda [Wed, 26 Dec 2012 17:16:26 +0000]
Device manager updated with extended save/load model to facilitate devices that need to manage their own contexts

11 years agoUpdate svm and vmx checkpoint functionality to new interface
Peter Dinda [Wed, 26 Dec 2012 17:15:40 +0000]
Update svm and vmx checkpoint functionality to new interface

11 years agoImplementation of revised checkpoint/migrate interface model
Peter Dinda [Wed, 26 Dec 2012 17:13:16 +0000]
Implementation of revised checkpoint/migrate interface model

11 years agoImplemntation of newer keyed stream interface on linux, includes new "textfile" ...
Peter Dinda [Wed, 26 Dec 2012 17:10:36 +0000]
Implemntation of newer keyed stream interface on linux, includes new "textfile" (ini file) output capability

11 years agoNew keyed stream interface
Peter Dinda [Wed, 26 Dec 2012 17:07:44 +0000]
New keyed stream interface

11 years agoMinor changes to eliminate warnings, and second-try allocation for pages
Peter Dinda [Wed, 26 Dec 2012 17:03:27 +0000]
Minor changes to eliminate warnings, and second-try allocation for pages

11 years agoFriendlier user-space build/run for graphical components (gui, vnc)
Peter Dinda [Fri, 21 Dec 2012 20:28:02 +0000]
Friendlier user-space build/run for graphical components (gui, vnc)

11 years agoPalacios GUI Added
Abhinav Kannan [Fri, 21 Dec 2012 19:26:04 +0000]
Palacios GUI Added

12 years agoV3_Yield_Timed(usec) was renamed V3_Sleep(usec)
Kevin Pedretti [Fri, 26 Oct 2012 16:36:27 +0000]
V3_Yield_Timed(usec) was renamed V3_Sleep(usec)

12 years agoCleanup of curses dependency in v3_cons/cons_sc build
Thomas Naughton [Thu, 18 Oct 2012 15:47:25 +0000]
Cleanup of curses dependency in v3_cons/cons_sc build

12 years agoRebuild v3_create by default
Peter Dinda [Mon, 1 Oct 2012 14:13:04 +0000]
Rebuild v3_create by default

12 years agocheck for out-of-bounds index when freeing a VM
Kyle Hale [Thu, 23 Aug 2012 08:59:11 +0000]
check for out-of-bounds index when freeing a VM

12 years agosmall updates to GEARS utilities (for use with v3_ctrl lib)
Kyle Hale [Wed, 22 Aug 2012 06:53:11 +0000]
small updates to GEARS utilities (for use with v3_ctrl lib)

12 years agoadd correct caching behavior to VMX EPT environments
Jack Lange [Mon, 24 Sep 2012 20:21:59 +0000]
add correct caching behavior to VMX EPT environments

12 years agoupdate CPUID to disable unsupported features (MTRRS, ARET, APIC2) and globalize the...
Jack Lange [Mon, 24 Sep 2012 20:21:19 +0000]
update CPUID to disable unsupported features (MTRRS, ARET, APIC2) and globalize the hypervisor flag

12 years agocorrectly handle NMI exits on VMX architectures
Jack Lange [Mon, 24 Sep 2012 20:21:00 +0000]
correctly handle NMI exits on VMX architectures

12 years agoAdded updated sleep/wakeup functionality
Patrick G. Bridges [Fri, 21 Sep 2012 16:36:52 +0000]
Added updated sleep/wakeup functionality

12 years agoAdded functionality for MONITOR and MWAIT instructions on SVM and VMX:
Peter Dinda [Mon, 10 Sep 2012 20:16:21 +0000]
Added functionality for MONITOR and MWAIT instructions on SVM and VMX:

  - CPUID now reports that MONITOR/MWAIT is not available
  - MONITOR and MWAIT are hooked on both VMX and SVM (previously only SVM)
  - If monitor or mwait are executed, they cause a #UD

12 years agoAdd v3_cons_sc sanity check for Terminal size
Thomas Naughton [Fri, 24 Aug 2012 15:38:26 +0000]
Add v3_cons_sc sanity check for Terminal size

12 years agoCleanup in thread name handling
Peter Dinda [Fri, 17 Aug 2012 22:12:04 +0000]
Cleanup in thread name handling

12 years agoCleaner handling of tx kick threads in vnet core
Peter Dinda [Fri, 17 Aug 2012 21:50:05 +0000]
Cleaner handling of tx kick threads in vnet core

12 years agoAvoid corruption when freeing a guest fails
Peter Dinda [Fri, 17 Aug 2012 21:01:47 +0000]
Avoid corruption when freeing a guest fails

12 years agobetter UI for v3_free
Peter Dinda [Fri, 17 Aug 2012 20:55:29 +0000]
better UI for v3_free

12 years agoDisallow startup with shadow paging + memory region outside 4GB boundary
Peter Dinda [Fri, 17 Aug 2012 20:40:17 +0000]
Disallow startup with shadow paging + memory region outside 4GB boundary

12 years agofiledisk XML configuration language tweak
Peter Dinda [Fri, 17 Aug 2012 16:21:43 +0000]
filedisk XML configuration language tweak

12 years agoVirtio NIC's guest-driven, vmm-driven, or adaptive modes can now
Peter Dinda [Thu, 9 Aug 2012 18:52:52 +0000]
Virtio NIC's guest-driven, vmm-driven, or adaptive modes can now
be set from a configuration block:

<device ... >
   <model mode="guest-driven|vmm-driven|adaptive"
          upper="pkts_per_sec"
          lower="pkts_per_sec"
          period="usec"  />

...

12 years agoConfigurable yielding strategies in VNET bridge thread and tx kick threads
Peter Dinda [Thu, 9 Aug 2012 18:50:02 +0000]
Configurable yielding strategies in VNET bridge thread and tx kick threads

12 years agoHalt handling uses global performance parameters to decide yield strategy
Peter Dinda [Thu, 9 Aug 2012 18:48:49 +0000]
Halt handling uses global performance parameters to decide yield strategy

12 years agoConfiguration of global performance parameters
Peter Dinda [Thu, 9 Aug 2012 18:44:03 +0000]
Configuration of global performance parameters
Integration of yielding parameters into this framework

12 years agoEnhancements to VNET and to halting:
Peter Dinda [Sun, 5 Aug 2012 23:14:14 +0000]
Enhancements to VNET and to halting:

- VNET sends UDP packets without checksumming
- VNET threads (bridge and transmit kick thread)
  adaptively choose yielding strategy
- halt handler adaptive chooses yielding strategy

12 years agoSupport for new Palacios image file format (Version 1)
Kyle Hale [Sat, 28 Jul 2012 22:40:26 +0000]
Support for new Palacios image file format (Version 1)

The VMM configuration side and the utilities side have been updated to now support
two file formats:

Version 0 : The previous version "legacy"
Version 1 : The new version "file integrity checking"

build_vm now has an option [-v] to select versions, version 1 is the default
v3_create now creates version 1 images when dynamic construction of an image file is done

Version 1 has these changes:

add integrity checking for files included in guest configs

This patch adds a hash field to the file headers built from guest
configurations. Both methods of guest creation (in-memory with XML and
file building with build_vm) have been modified to support this. The hash
is passed along with the file when it's added to Palacios, so integrity checks
can theoretically happen at any point, but currently
this is only being done at configuration time.

12 years agorepurpose v3_ctrl.c as a utility library for palacios userspace progs
Kyle Hale [Sat, 28 Jul 2012 20:46:05 +0000]
repurpose v3_ctrl.c as a utility library for palacios userspace progs

I've taken some common idioms used in a lot of the userspace utilities
and put them in a (for now, static) library that all programs can utilize.
One example: when running an ioctl, it's no longer necessary to open the vm device,
close it, etc. This is taken care of by v3_vm_ioctl.
This should give us some more code sharing and make the userspace utilities quicker to write and a bit smaller.
For now, I've modified v3_free, v3_launch, v3_stop, and v3_create to use this library,
so you can look to those for examples.

12 years agoTypo fix
Peter Dinda [Fri, 3 Aug 2012 18:04:17 +0000]
Typo fix

12 years agoupdate palacios mempool status when onlining memory in userspace
Kyle Hale [Fri, 27 Jul 2012 03:55:36 +0000]
update palacios mempool status when onlining memory in userspace

/proc/v3vee/v3-mem will now report correctly after memory has been onlined

12 years agoAPIC and CR8 changes for vector priorization vs TPR
Peter Dinda [Fri, 3 Aug 2012 16:47:30 +0000]
APIC and CR8 changes for vector priorization vs TPR

This patch does the following:

- It moves the TPR into the guest core structure, replacing CR8
- It intercepts CR8 reads/writes to update the TPR accordingly
- It moves prioritization into the APIC, away from the architecture-specific
  SVM or VMX handling
- It computes APIC PPR and APR dynamically in the APIC
- It does vector to PPR priority comparison (this was not done before at all)
- It does vector to APR comparison for IPI delivery
- It updates checkpointing, etc, to reflect these changes

12 years agotypo fix
Jack Lange [Sat, 28 Jul 2012 20:23:57 +0000]
typo fix

12 years agoMerge branch 'devel' of palacios@newskysaw.cs.northwestern.edu:/home/palacios/palacio...
Peter Dinda [Fri, 27 Jul 2012 23:18:07 +0000]
Merge branch 'devel' of palacios@newskysaw.cs.northwestern.edu:/home/palacios/palacios into devel

12 years agoFurther cleanup of vnet /proc interface
Peter Dinda [Fri, 27 Jul 2012 23:17:17 +0000]
Further cleanup of vnet /proc interface

12 years agoCleaned up /proc parsing for vnet
Peter Dinda [Fri, 27 Jul 2012 22:03:19 +0000]
Cleaned up /proc parsing for vnet

12 years agoadded 64bit bar support to passthrough PCI
Jack Lange [Wed, 25 Apr 2012 14:33:58 +0000]
added 64bit bar support to passthrough PCI

12 years agoadded vmware paravirtual extension
Jack Lange [Fri, 27 Jul 2012 19:07:08 +0000]
added vmware paravirtual extension

12 years agoadded error check to 8259
Jack Lange [Fri, 27 Jul 2012 19:06:45 +0000]
added error check to 8259

12 years agomemory leak fixes
Jack Lange [Wed, 4 Jul 2012 23:06:01 +0000]
memory leak fixes

12 years agomake bitmap operations atomic, fixes potential barrier race condition
Jack Lange [Wed, 4 Jul 2012 22:03:15 +0000]
make bitmap operations atomic, fixes potential barrier race condition

12 years agoreworked v3_create to allow loading XML files directly and runtime configuration...
Jack Lange [Wed, 27 Jun 2012 00:15:17 +0000]
reworked v3_create to allow loading XML files directly and runtime configuration options

12 years agoadded host_pci passthrough PCI support
Jack Lange [Tue, 17 Apr 2012 22:19:30 +0000]
added host_pci passthrough PCI support

12 years agoadded state checks for VM control commands
Jack Lange [Fri, 27 Jul 2012 19:04:38 +0000]
added state checks for VM control commands

12 years agoincorporate changes to intelligent barriers
Jack Lange [Fri, 27 Jul 2012 18:55:59 +0000]
incorporate changes to intelligent barriers

12 years agoenabled VMX exit hooks
Jack Lange [Fri, 27 Jul 2012 18:42:35 +0000]
enabled VMX exit hooks

12 years agorevert to earlier rdtsc intercepts
Jack Lange [Fri, 27 Jul 2012 18:39:17 +0000]
revert to earlier rdtsc intercepts

12 years agoexit handler tweaks
Jack Lange [Fri, 27 Jul 2012 18:34:56 +0000]
exit handler tweaks

12 years agoevent tweaks
Jack Lange [Fri, 27 Jul 2012 18:34:40 +0000]
event tweaks

12 years agoadded event hooking framework
Jack Lange [Thu, 26 Jul 2012 20:36:25 +0000]
added event hooking framework

12 years agoadded runstate checks in barrier to allow locking operations to proceed when VM is...
Jack Lange [Thu, 26 Jul 2012 20:34:40 +0000]
added runstate checks in barrier to allow locking operations to proceed when VM is not running

12 years agoinitial implementation of hookable exits
Jack Lange [Thu, 26 Jul 2012 18:36:44 +0000]
initial implementation of hookable exits

12 years agofix for 1GB pages
Jack Lange [Mon, 4 Jun 2012 18:39:17 +0000]
fix for 1GB pages

12 years agoCorrected vnet locking with irqsave/restore
Peter Dinda [Fri, 27 Jul 2012 18:05:58 +0000]
Corrected vnet locking with irqsave/restore

12 years agoAPIC checks enabled register on irr scan
Peter Dinda [Fri, 27 Jul 2012 17:16:20 +0000]
APIC checks enabled register on irr scan

12 years agoMissing file
Peter Dinda [Fri, 27 Jul 2012 17:14:52 +0000]
Missing file

12 years agoadd cleanup for Palacios extensions, add per-core data to extensions
Kyle Hale [Fri, 20 Jul 2012 00:20:42 +0000]
add cleanup for Palacios extensions, add per-core data to extensions

extensions can now have their own per-core extension state without
adding cruft to the guest_info structure

12 years agosmall fixes to swint code, add proper cleanup
Kyle Hale [Thu, 19 Jul 2012 23:58:07 +0000]
small fixes to swint code, add proper cleanup

12 years agostop and free all VMs on Linux module exit
Kyle Hale [Thu, 19 Jul 2012 23:56:37 +0000]
stop and free all VMs on Linux module exit

12 years agoadd cleanup to graphics console code
Kyle Hale [Thu, 19 Jul 2012 23:50:57 +0000]
add cleanup to graphics console code

12 years agoLinux userspace tools for live migration
Diana Palsetia, Steve Rangel, and Mark Cartwright [Thu, 19 Jul 2012 23:24:51 +0000]
Linux userspace tools for live migration

12 years agoLinux-side availability of live migration functionality
Diana Palsetia, Steve Rangel, and Mark Cartwright [Thu, 19 Jul 2012 21:36:43 +0000]
Linux-side availability of live migration functionality

12 years agoLive Migration Functionality
Mark Cartwright, Diana Palsetia, and Steve Rangel [Thu, 19 Jul 2012 23:22:49 +0000]
Live Migration Functionality

12 years agoAdditional features for vmm_bitmap
Mark Cartwright [Thu, 19 Jul 2012 21:24:19 +0000]
Additional features for vmm_bitmap

12 years agoShadow-paging event callbacks
Peter Dinda [Thu, 19 Jul 2012 21:23:00 +0000]
Shadow-paging event callbacks

These changes allow VMM code to get a callback before and after various shadow paging events
including page fault, invlpg, page table activation, page table flush, etc.

12 years agoParallelize build of linux module
Peter Dinda [Thu, 19 Jul 2012 00:01:54 +0000]
Parallelize build of linux module

12 years agoVNET Hypercall interface, implemented as a new stub device
Peter Dinda [Wed, 18 Jul 2012 17:13:01 +0000]
VNET Hypercall interface, implemented as a new stub device

12 years agompi accelerator hcall fix
Peter Dinda [Wed, 18 Jul 2012 17:12:26 +0000]
mpi accelerator hcall fix

12 years agoAdded ability to hook memory by access (no instruction emulation)
Peter Dinda [Fri, 13 Jul 2012 20:17:26 +0000]
Added ability to hook memory by access (no instruction emulation)

12 years agopatch for v3_dump_mem print output
Peter Dinda [Fri, 13 Jul 2012 19:18:25 +0000]
patch for v3_dump_mem print output

12 years agoproper cleanup in iface-file and iface-host-dev
Kyle Hale [Tue, 10 Jul 2012 23:36:31 +0000]
proper cleanup in iface-file and iface-host-dev

12 years agocompilation fix in vmm_debug.c
Kyle Hale [Sun, 8 Jul 2012 17:45:12 +0000]
compilation fix in vmm_debug.c

12 years agoRevised check for already-launched VM
Kyle Hale [Sat, 7 Jul 2012 23:39:09 +0000]
Revised check for already-launched VM

12 years agoExpose kmalloc flags within linux_module + add further debugging features for heap...
Peter Dinda [Sat, 7 Jul 2012 23:33:46 +0000]
Expose kmalloc flags within linux_module + add further debugging features for heap alloc

12 years agoChange to internal v3_yield/yield_cond semantics:
Peter Dinda [Sat, 7 Jul 2012 23:23:23 +0000]
Change to internal v3_yield/yield_cond semantics:

v3_yield(guest, time (usec) )

time <   0 => direct call to host yield os hook
time >=0 0 => direct call to host yield_timed os hook
              (this usually implies interruptible, even if time=0)

time is in usec

12 years agoSmall fixes in v3_free.c
Kyle Hale [Thu, 5 Jul 2012 19:38:51 +0000]
Small fixes in v3_free.c

Use strtol instead of atoi for more flexible index numbers. Also, fail
on error returned from ioctl.