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.
Jack Lange [Fri, 7 Jun 2013 20:20:23 +0000]
added NUMA query support for Linux to allow Palacios to determine the NUMA layout of the host system
Jack Lange [Fri, 7 Jun 2013 20:16:59 +0000]
added modified buddy allocator derived from Kitten implementation
This version allows discontiguous memory pools, to enable NUMA support for Palacios VMs
Alexander Kudryavtsev [Fri, 7 Jun 2013 20:13:53 +0000]
add FW_CFG interface implementation for SEABIOS
Jack Lange [Fri, 7 Jun 2013 20:01:11 +0000]
imported SEABIOS source tree
Peter Dinda [Sun, 4 Aug 2013 22:16:02 +0000]
Polling changes in host devices and keyed stream
Peter Dinda [Fri, 2 Aug 2013 22:43:04 +0000]
v3_stream fix for escape character handling
Peter Dinda [Fri, 2 Aug 2013 22:27:32 +0000]
8259A PIC obeys master ICW3 masking of the slave
Peter Dinda [Fri, 2 Aug 2013 21:15:26 +0000]
Major rewrite of serial port device
- 16450 and 16550A behaviors
- internal interrupt register, plus interrupt priority encoding
- numerous other fixes
Peter Dinda [Fri, 2 Aug 2013 21:08:19 +0000]
Update to virtio console for new stream interface
Peter Dinda [Fri, 2 Aug 2013 21:07:31 +0000]
Update to char_stream device for new stream interface changes
Peter Dinda [Fri, 2 Aug 2013 21:06:28 +0000]
Changes to stream interface to allow for flow control and error signaling
Peter Dinda [Fri, 2 Aug 2013 20:45:44 +0000]
Copyrights for lock and memory checking
Patrick G. Bridges [Fri, 2 Aug 2013 20:42:14 +0000]
Additional cleanup of v3_stream interactive mode.
Patrick G. Bridges [Thu, 1 Aug 2013 23:14:06 +0000]
Added basic escape handling to v3_stream interactive mode
Peter Dinda [Fri, 2 Aug 2013 20:41:13 +0000]
Fixes to interrupt (IRQ and VIRQ) injection logic:
- eliminates potential race condition between intr being
pending when intially checked, and no vector available before
injection begins
- differentiates "do no have a vector" from "vector 0"
- detects VIRQ 0 correctly if it is raised
Peter Dinda [Fri, 2 Aug 2013 20:38:55 +0000]
Default yield policy is now friendly with a 10 ms timeout
Peter Dinda [Mon, 22 Jul 2013 22:34:37 +0000]
8259 PIC corrections and cleanup
- the weird priority-ordering between the slave and master chip are now implemented
- slave interrupt raises propgate correctly to master and are maskable by it
- better debugging and error output
- sanity checking / correction of "pending after EOI" bug, which
was a combination of not a bug, incorrect slave interaction, and
assumptions about concurrency
Peter Dinda [Mon, 22 Jul 2013 22:31:22 +0000]
Lock-checking enhancements - simple deadlock detection
The lockchecker will now detect when a lock is held for a long period of time.
When this occurs, it will dump out the state of all locks in the system,
tagging the ones that have been held longer than expected. Of course, this will
find deadlocks. But it will also find non-deadlocks that have this property.
By setting the time threshold, these can be filtered.
Peter Dinda [Mon, 15 Jul 2013 23:29:43 +0000]
Fallback to shadow paging if nested not supported or no paging mode specified
Kyle Hale [Tue, 18 Jun 2013 22:16:38 +0000]
Add interface for power monitoring and telemetry option for power-related statistics
I added telemetry output for Intel's RAPL power monitoring capability
(present since Sandy Bridge). This code is pretty heavily based on the
PMU codebase, so it might make sense to merge them together at some point, but
for now the semantics of PMU and RAPL seemed different enough to justify
having them separate.
The code is organized in a way such that if AMD adds similar support or
if Intel adds new RAPL counters, they should be fairly straightforward
to integrate.
Peter Dinda [Tue, 18 Jun 2013 19:00:58 +0000]
Lock checking enhancement to find frequently used (hot) locks
Peter Dinda [Fri, 14 Jun 2013 21:40:01 +0000]
Lock and memory checking enhancements
Kyle Hale [Mon, 17 Jun 2013 23:29:34 +0000]
cpuid bugfix for iface-pmu code
cpuid_string was not properly dereferencing a pointer, causing invalid
results to be returned by cpuid in eax
Peter Dinda [Tue, 28 May 2013 22:24:04 +0000]
Lock bugfixes - missing lock deinits This also adds deinit calls in the linux_module code so that these locks are correclty tracked
Peter Dinda [Tue, 28 May 2013 22:23:15 +0000]
Memory alloction bugfix for vmm_events
Peter Dinda [Tue, 28 May 2013 22:20:36 +0000]
Special-cased handling of zero-byte mallocs since Linux does this insanely Also includes part of lock checking enhancments (lock deinit for use in linux module)
Peter Dinda [Tue, 28 May 2013 22:20:20 +0000]
Memory checking enhancements
Peter Dinda [Tue, 28 May 2013 22:19:39 +0000]
Lock checking enhancements
Peter Dinda [Mon, 27 May 2013 22:46:22 +0000]
Minor bug fix
Peter Dinda [Mon, 27 May 2013 22:32:22 +0000]
Memory allocation checking framework
Peter Dinda [Sun, 26 May 2013 22:36:24 +0000]
Enhancements to lock checking and its configurability
Peter Dinda [Fri, 24 May 2013 22:42:35 +0000]
Lock checking framework and cleanup of linux module code to use palacios interfaces The idea here is to make it possible to track locks and memory across both the core VMM and the linux module code
Maciek Swiech [Fri, 24 May 2013 16:45:20 +0000]
Checkpointing fixes
vmm_checkpoint.c
- GUEST_CRO ==> GUEST_CR0
serial.c
- Added TX and RX buffer tags
- Fixed tag for COMX_IRQ_NUM
8254.c
- Added LATCH_VALUE to checkpointing
Oscar Mondragon [Mon, 6 May 2013 20:53:01 +0000]
Add missing CPU mapper files
Oscar Mondragon [Mon, 6 May 2013 20:51:47 +0000]
Add CPU mapper extension and fix to scheduler for time dilation
Peter Dinda [Thu, 25 Apr 2013 00:29:15 +0000]
Host PCI with selective privilege (can dynamically permit or disallow PCI passthrough access)
Also minor tweak to user space Makefile
Kyle Hale [Wed, 10 Apr 2013 21:07:37 +0000]
Add tools for transforming a kernel module into a guarded module
Kyle Hale [Wed, 10 Apr 2013 21:03:22 +0000]
Add guarded module infrastructure
This commit includes all of the changes for guarded modules that
do not touch the VMM core at all. This includes a host interface,
userspace utility, and Palacios extensions.
Brian Ambielli [Fri, 12 Apr 2013 23:34:32 +0000]
Mouse functionality and cleanup
Peter Dinda [Fri, 12 Apr 2013 23:06:48 +0000]
Updated vnc server to correspond to new mouse events
Peter Dinda [Fri, 12 Apr 2013 23:03:17 +0000]
Revised mouse-related host events, graphics console, and userland support; mouse packet generation
Peter Dinda [Fri, 22 Mar 2013 21:21:04 +0000]
Paravirtualized graphics device
Brian Ambielli [Fri, 22 Mar 2013 21:13:56 +0000]
Correct irq behavior for mouse
Peter Dinda [Fri, 22 Mar 2013 20:59:57 +0000]
PCI bugfix for passthrough bars
Peter Dinda [Fri, 22 Mar 2013 20:42:57 +0000]
VNC server interface to graphics console source code
Peter Dinda [Fri, 22 Mar 2013 20:41:21 +0000]
Graphics console user space interface library
Peter Dinda [Mon, 18 Mar 2013 19:05:08 +0000]
Checkpointing and migration now support options, the first of which are: skipping memory, skipping devices, skipping cores, and skipping the archtecture-dependent state
Peter Dinda [Mon, 18 Mar 2013 18:58:08 +0000]
General cleanup and help on v3_debug
Peter Dinda [Wed, 13 Mar 2013 15:51:29 +0000]
User space library and example tool for accessing guest physical memory from host user space
Peter Dinda [Wed, 13 Mar 2013 15:49:36 +0000]
Support for optional full /dev/mem access even if host kernel has strict devmem
This adds a new option:
insmod v3vee.ko allow_devmem=1
This will enable host user space programs to mmap any host physical memory using
/dev/mem even if the host kernel has strict /dev/mem limitations.
Peter Dinda [Fri, 1 Mar 2013 21:49:47 +0000]
AMD PMU - load/store counts now use data cache access counter, tlb miss count
counts on all levels
Peter Dinda [Fri, 1 Mar 2013 21:33:52 +0000]
Removal of debugging crud
Peter Dinda [Fri, 1 Mar 2013 20:58:26 +0000]
Corrected UCPI and UMPL estimation in PMU telemetry
Oscar [Mon, 25 Feb 2013 00:15:04 +0000]
null check in host_sched_yield
Peter Dinda [Sun, 24 Feb 2013 21:07:57 +0000]
Corrected PCI printdebug errors
Peter Dinda [Sun, 24 Feb 2013 19:01:03 +0000]
Correct scheduler startup when no option given
Peter Dinda [Thu, 21 Feb 2013 22:36:15 +0000]
Minor PMU bugfix
Peter Dinda [Wed, 20 Feb 2013 02:14:28 +0000]
PMU-based telemetry extension to monitor guest and host behavior
Chang Bae [Wed, 20 Feb 2013 02:08:39 +0000]
PMU Host Interface and initial implementation for Linux and AMD/Intel
Peter Dinda [Thu, 21 Feb 2013 22:29:52 +0000]
Range-based invalidation for nested and direct paging + use in memory region managment
Patrick G. Bridges [Thu, 21 Feb 2013 20:15:45 +0000]
Use passed in options to set scheduler
Patrick G. Bridges [Wed, 20 Feb 2013 23:56:50 +0000]
Fix for option processing
Patrick G. Bridges [Wed, 20 Feb 2013 17:55:16 +0000]
Added missed Makefile update for option handling
Patrick G. Bridges [Wed, 20 Feb 2013 17:54:50 +0000]
Split global option processing code into a separate file
Patrick G. Bridges [Wed, 20 Feb 2013 17:54:05 +0000]
Merge branch 'devel' of ssh://newskysaw.cs.northwestern.edu/home/palacios/palacios into devel
Chang Bae [Tue, 19 Feb 2013 23:55:53 +0000]
Fixed major palacios barrier implementation error with potentially serious implications on all multicore guests
Patrick G. Bridges [Tue, 19 Feb 2013 19:19:03 +0000]
Merge branch 'devel' of ssh://newskysaw.cs.northwestern.edu/home/palacios/palacios into devel
Patrick G. Bridges [Tue, 19 Feb 2013 16:04:12 +0000]
Added null check to option processing call.
Patrick G. Bridges [Thu, 14 Feb 2013 18:06:02 +0000]
Correction of scheduler registration check
Patrick G. Bridges [Mon, 11 Feb 2013 22:06:42 +0000]
Added first cut at options processing for the palacios module
Oscar Mondragon [Mon, 11 Feb 2013 22:04:53 +0000]
remove extraneous dos linefeeds from scheduling files
Oscar Mondragon [Mon, 11 Feb 2013 21:19:30 +0000]
Update of scheduling infrastructure and newest version of EDF scheduler
Patrick G. Bridges [Mon, 11 Feb 2013 18:08:29 +0000]
Copyright header corrections to scheduler interface
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
Oscar Mondragon [Wed, 6 Feb 2013 18:28:30 +0000]
Commented in scheduler call previously commented out.
Kyle Hale [Wed, 6 Feb 2013 17:05:27 +0000]
bugfix: memory region is now removed from hook table on v3_unhook_mem
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.
Patrick G. Bridges [Tue, 5 Feb 2013 20:29:20 +0000]
Added missed extension include update
Patrick G. Bridges [Tue, 5 Feb 2013 20:05:08 +0000]
Added global initialization hook for extensions to support upcoming scheduling extensions
Alexander Kudryavtsev [Mon, 4 Feb 2013 23:47:33 +0000]
Added proper updated quix86 libraries that had been omitted from
previous patch.
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
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.
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.
Peter Dinda [Sat, 5 Jan 2013 18:15:18 +0000]
Correct banner titles in configuration screens
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)
Peter Dinda [Tue, 1 Jan 2013 00:11:16 +0000]
Additional error checking / output for failing memory region operations
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.
Peter Dinda [Sat, 29 Dec 2012 00:47:39 +0000]
Use of information interface to enhance output of /proc/v3vee-/v3-guests in Linux
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
Madhav Suresh [Thu, 27 Dec 2012 02:11:54 +0000]
Explictly tags in saves for PIT, APIC, IOAPIC, SVM, and CORE
Peter Dinda [Thu, 27 Dec 2012 02:10:45 +0000]
Allow spaces in key names for textfile: saves
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.
Madhav Suresh [Wed, 26 Dec 2012 17:19:58 +0000]
Checkpointing of serial devices
Peter Dinda [Wed, 26 Dec 2012 17:18:21 +0000]
Devices updated for revised checkpoint interface
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
Peter Dinda [Wed, 26 Dec 2012 17:15:40 +0000]
Update svm and vmx checkpoint functionality to new interface
Peter Dinda [Wed, 26 Dec 2012 17:13:16 +0000]
Implementation of revised checkpoint/migrate interface model
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
Peter Dinda [Wed, 26 Dec 2012 17:07:44 +0000]
New keyed stream interface
Peter Dinda [Wed, 26 Dec 2012 17:03:27 +0000]
Minor changes to eliminate warnings, and second-try allocation for pages