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.
Peter Dinda [Fri, 4 Oct 2013 22:12:23 +0000]
Handle oddball NUMA alloc/dealloc cases when kernel provides memory on undesired node
Peter Dinda [Fri, 4 Oct 2013 18:22:49 +0000]
Clean up hashtable frees to fix rmmod crash on redhat
Peter Dinda [Fri, 4 Oct 2013 15:18:03 +0000]
VNET memory interface and deinit cleanup
Peter Dinda [Fri, 4 Oct 2013 15:16:24 +0000]
Restructure device configuration menus to make things clearer -
we have too many devices to just have a giant list
Peter Dinda [Fri, 4 Oct 2013 15:11:52 +0000]
Added guest configurator and renamed v3vee configurator
Peter Dinda [Fri, 4 Oct 2013 15:10:05 +0000]
v3_config emits memory allocations balanced across numa nodes
Patrick G. Bridges [Tue, 1 Oct 2013 18:59:17 +0000]
EDF scheduler bugfixes from Oscar
Peter Dinda [Fri, 20 Sep 2013 22:08:23 +0000]
Graceful teardown of seabios fw config and fix of memory leak
Peter Dinda [Fri, 20 Sep 2013 21:27:39 +0000]
Fixed spurious warning when memory block size is overrriden
Peter Dinda [Fri, 20 Sep 2013 21:02:16 +0000]
Assorted cleanup
Peter Dinda [Thu, 19 Sep 2013 23:26:54 +0000]
minor numa interface cleanup, and make sure initialization occurs
Peter Dinda [Thu, 19 Sep 2013 22:25:42 +0000]
Cleaned up deinitialization of VMM and free of VMs
Peter Dinda [Sun, 15 Sep 2013 22:43:08 +0000]
Memory management and /proc enhancements
- /proc/v3vee/v3-info projects up useful information about the dynamic configuration of Palacios
- v3_mem uses this functionality to catch common problems before making kernel
requests. It also can now search for appropriate memory to offline given the numa domain
Patrick Bridges [Sun, 15 Sep 2013 22:42:22 +0000]
Basic host scheduler bug fix
Peter Dinda [Sun, 15 Sep 2013 19:58:33 +0000]
Clean up debugging output
Peter Dinda [Wed, 28 Aug 2013 13:58:57 +0000]
Checkpoint/Restore fixes
- handles multi-base region VMs with distinct tags for each base region
- checks to see if restore VM's region setup is identical to the checkpoint
VM's before proceeding (this will eventually be expanded to do translation)
- minor fix to keyed stream to support large files
- minor error fix to save/restore of serial
Peter Dinda [Wed, 28 Aug 2013 13:56:18 +0000]
mptable no longer errors out if it doesn't find the mptable target area
in the VM. This area does not exist if the seabios is used. With this fix
if you have an mptable in a VM that is instantiated with seabios, it will just
not create an mptable. instead, the seabios will create one
Peter Dinda [Wed, 21 Aug 2013 20:17:23 +0000]
Updated userspace guest memory access tools for regions, plus added new fast functionality for
copies, hashes, and applies
Peter Dinda [Tue, 20 Aug 2013 23:25:18 +0000]
Made memory manager reset distinct from removal of memory
Peter Dinda [Tue, 20 Aug 2013 23:14:30 +0000]
Memory management enhancements: dynamic removal, cleanup at module remove time
Peter Dinda [Tue, 20 Aug 2013 23:07:59 +0000]
Enhanced configuration generation (now handles memory removal/offlining
Peter Dinda [Tue, 20 Aug 2013 23:06:36 +0000]
v3_mem enhancements - managed offlining; ability to deallocate memory (obviates v3_mem_free)
Peter Dinda [Sun, 18 Aug 2013 22:12:33 +0000]
Improved /proc/v3vee/v3-guests* output
Peter Dinda [Sun, 18 Aug 2013 21:01:07 +0000]
Constraints in page allocation, and code changes to use them; shadow paging allocations below 4 GB
This updates the page allocation os hook to take a "constraints" parameter. Currently,
there only one constraint, allocation below 4 GB. The buddy allocator and other elements
of the support code now obey this constraint. I have vetted page allocations in Palacios
so that with a guest using shadow paging, any allocation that could become part of the
guest memory map, and any allocation done in 32 bit shadow paging (page tables) is done
with this constraint. THis includes direct paging. Nested paging should be unaffected.
Peter Dinda [Sun, 18 Aug 2013 20:57:27 +0000]
Bug fixes to v3_mem
Peter Dinda [Thu, 8 Aug 2013 00:37:11 +0000]
Configuration Generation tool for Linux Embedding
This attempts to wrap the complexity of memory configuration, devmem, etc
to tune to the user's environment and to their needs
Peter Dinda [Wed, 7 Aug 2013 22:48:38 +0000]
VNET compatibility with NUMA interfaces
Peter Dinda [Wed, 7 Aug 2013 21:37:13 +0000]
v3_mem fixes
- memory offlining now contingent on a block being both removable
and not already offline
- re-onlines memory on failure for additional cases
Peter Dinda [Wed, 7 Aug 2013 21:32:32 +0000]
Memory manager fixes and assorted other fixes
- MM allocates seeed pool from 32 bit memory to facilitate 32 bit shadow guests
- MM page allocation falls back to any node (-1) if request
cannot be satisfied for the specific requested node
- MM fixes for in-kernel allocated regions
- init now falls back gracefully on failure
- early procdir creation to support MM and VNET
Peter Dinda [Wed, 7 Aug 2013 21:31:08 +0000]
VNET control /proc permission fixes
Peter Dinda [Wed, 7 Aug 2013 21:26:54 +0000]
VM configuration attempts to roll back on failure
Peter Dinda [Sun, 4 Aug 2013 22:31:02 +0000]
Add load-time configurable memory block size
Peter Dinda [Fri, 2 Aug 2013 01:27:10 +0000]
Correct memory addition calculations
Peter Dinda [Fri, 2 Aug 2013 00:48:12 +0000]
Enhanced user-space memory interface, allowing dynamic kernel-allocations
Peter Dinda [Fri, 2 Aug 2013 00:46:08 +0000]
Buddy allocator metadata for pools
Jack Lange [Fri, 2 Aug 2013 00:45:15 +0000]
Integration of buddy allocator
This also includes a new dynamic allocation feature (Dinda)
Jack Lange [Thu, 1 Aug 2013 21:32:50 +0000]
Enable barrier participation and core stop while in halt
Peter Dinda [Wed, 31 Jul 2013 23:52:55 +0000]
Mask hyperthreading CPUID bit
Jack Lange [Wed, 31 Jul 2013 22:46:09 +0000]
Enable cores to be reset via INIT IPI
Jack Lange [Wed, 31 Jul 2013 22:01:10 +0000]
updated host pci interface to support non-contiguous memory regions
Peter Dinda [Wed, 31 Jul 2013 22:00:22 +0000]
Further changes to support new non-contiguous memory model (checkpointing, vm information interface, vm guest memory interface)
Jack Lange [Wed, 31 Jul 2013 21:56:38 +0000]
Added non-contiguous memory region support.
Peter Dinda [Mon, 1 Jul 2013 22:06:43 +0000]
Minor tweaks and configuration comments for vmm_fw_cfg (the interface to the SEABIOS)
This also includes some minor cleanup
fs
Peter Dinda [Mon, 1 Jul 2013 22:05:46 +0000]
Allow selection of different BIOSes for the PC hardware class
Alexander Kudryavtsev [Tue, 22 Jan 2013 03:46:33 +0000]
added high memory capacity to NVRAM memory space
Peter Dinda [Fri, 28 Jun 2013 20:50:29 +0000]
SEABIOS binaries added for ease in building palacios
Jack Lange [Fri, 28 Jun 2013 20:45:28 +0000]
updates to enable functionality necessary for SEABIOS to run
added fw_cfg framework, special mov instruction decoding
also added NUMA framework files to compilation process
Peter Dinda [Fri, 28 Jun 2013 20:00:35 +0000]
added NUMA interface files to pass NUMA layout between host and Palacios
Maciek Swiech [Fri, 7 Jun 2013 20:46:02 +0000]
quix86 instruction patches
Jack Lange [Fri, 7 Jun 2013 20:32:35 +0000]
added updated version of the VGABIOS needed to work with SEABIOS
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.