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.


10 years agoBoot sequenece selection for nvram
Peter Dinda [Sun, 22 Dec 2013 22:16:36 +0000]
Boot sequenece selection for nvram

10 years agoAdd logic to VGA for vertical/horizontal retrace
Peter Dinda [Sat, 21 Dec 2013 18:45:28 +0000]
Add logic to VGA for vertical/horizontal retrace

10 years agoAdd missing case to print all debugging info in vmm_debug
Kyle Hale [Sat, 21 Dec 2013 18:43:45 +0000]
Add missing case to print all debugging info in vmm_debug

10 years agoFix for floating point save/restore in case where fp context switching is turned off
Maciek Swiech [Fri, 6 Dec 2013 19:14:40 +0000]
Fix for floating point save/restore in case where fp context switching is turned off

10 years agoGuest-side test tools, config, and X11 stuff for PARAGRAPH graphics device
Ruba Merza [Sun, 1 Dec 2013 01:23:39 +0000]
Guest-side test tools, config, and X11 stuff for PARAGRAPH graphics device

10 years agoUpdated defaults to reflect former behavior for CPUID, MSRs, FP-Switching
Peter Dinda [Tue, 26 Nov 2013 01:52:14 +0000]
Updated defaults to reflect former behavior for CPUID, MSRs, FP-Switching

The user must explicitly enable custom cpuid, strict msrs, and fp-swithing

10 years agoBugfix to base memory region lookup
Peter Dinda [Tue, 26 Nov 2013 01:39:51 +0000]
Bugfix to base memory region lookup

10 years agoMinor tweaks
Peter Dinda [Tue, 26 Nov 2013 01:37:40 +0000]
Minor tweaks

- vmxassist doesn't print errors for information output
- guest config script cleanup

10 years agoAllow strict MSR semantics
Peter Dinda [Tue, 26 Nov 2013 01:35:07 +0000]
Allow strict MSR semantics

When enabled, reads/writes to MSRs we do not handle cause GPF to be injected.
This is the architecturally specified reaction.

When disabled, our more lenient behavior is used (read=0, write=ignored)

10 years agoAllow custom CPUID
Peter Dinda [Tue, 26 Nov 2013 01:32:00 +0000]
Allow custom CPUID

- when enabled, guest sees a strictly controlled cpuid result
  with a "V3VEE" cpu vendor, etc.  This is intended to help with
  cross-architecture migrations where we want to prevent the
  the guest from doing anything specific to the eratta of the
  startup CPU.
- when disabled, guest sees former behavior (cpuid of host
  masked for functionality we cannot support)

10 years agoatapi and ioapic bugfixes
Kyle Hale [Tue, 26 Nov 2013 01:30:16 +0000]
atapi and ioapic bugfixes

atapi: allow start/stop cd rom - needed for some kernels
ioapic: assure it's zeroed out at startup

10 years agoFloating point context-switching and checkpoint/load
Peter Dinda [Fri, 25 Oct 2013 23:30:39 +0000]
Floating point context-switching and checkpoint/load

This integrates:

- the option to do floating point context-switching
- conservative code to do context-switching in Palacios
- a lazy floating point save/restore host interface
- an implementation of this interface in the linux module
- liberal code to use this interface in Palacios
- floating point checkpointing

This also includes a performance tuning element that
is hard to separate

10 years agoVGA bugfixes
Peter Dinda [Mon, 25 Nov 2013 23:23:07 +0000]
VGA bugfixes

This patch corrects the behavior of VGA write modes 2 and 3 and
VGA read mode 1.  This repairs ugly output in typical graphics use

11 years agofix GEARS code inject dependency
Kyle Hale [Tue, 8 Oct 2013 21:20:45 +0000]
fix GEARS code inject dependency

11 years agoremove assertions in power monitoring initialization
Kyle Hale [Tue, 8 Oct 2013 21:04:04 +0000]
remove assertions in power monitoring initialization

11 years agoSwitch VNET to use adaptive yielding by default, to reduce busy-waiting in the bridge...
Peter Dinda [Thu, 10 Oct 2013 20:27:12 +0000]
Switch VNET to use adaptive yielding by default, to reduce busy-waiting in the bridge and transmit-kick threads

11 years agoDynamic migration of memory from node to node
Peter Dinda [Thu, 10 Oct 2013 20:22:01 +0000]
Dynamic migration of memory from node to node

This adds the ability to move memory regions of a VM from user space:

  v3_mem_move /dev/v3-vmX guest_paddr host_cpuid

This will move the memory region in which guest_paddr is contained
from its current numa node to the one affiliated with host_cpuid

Combined with v3_core_move, this should provide the ability to
dynamically manipulate NUMA mappings at runtime, to the granularity
of the v3_mem_block_size (which is selected at insmod time)

11 years agobring GEARS up to date with interface changes
Kyle Hale [Tue, 8 Oct 2013 17:54:17 +0000]
bring GEARS up to date with interface changes

11 years agoerror checking in file close
Kyle Hale [Tue, 8 Oct 2013 17:45:53 +0000]
error checking in file close

11 years agoclean up v3_mem errors
Kyle Hale [Tue, 8 Oct 2013 17:08:56 +0000]
clean up v3_mem errors

11 years agomore paranoid error checking
Kyle Hale [Mon, 7 Oct 2013 20:29:12 +0000]
more paranoid error checking

These changes handle the case in which v3_free_vm is called
before several subsystems have been initialized. The ones that are particularly
prone are the non-pointers in the v3_vm_info struct that have list_head elements.

11 years agoReduced debugging output from consoles / ioctls
Kyle Hale [Mon, 7 Oct 2013 20:17:24 +0000]
Reduced debugging output from consoles / ioctls

11 years agoGuest configurator cleanup (nvram, vnet)
Kyle Hale [Mon, 7 Oct 2013 20:16:23 +0000]
Guest configurator cleanup (nvram, vnet)

11 years agoHandle oddball NUMA alloc/dealloc cases when kernel provides memory on undesired...
Peter Dinda [Fri, 4 Oct 2013 22:12:23 +0000]
Handle oddball NUMA alloc/dealloc cases when kernel provides memory on undesired node

11 years agoClean up hashtable frees to fix rmmod crash on redhat
Peter Dinda [Fri, 4 Oct 2013 18:22:49 +0000]
Clean up hashtable frees to fix rmmod crash on redhat

11 years agoVNET memory interface and deinit cleanup
Peter Dinda [Fri, 4 Oct 2013 15:18:03 +0000]
VNET memory interface and deinit cleanup

11 years agoRestructure device configuration menus to make things clearer -
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

11 years agoAdded guest configurator and renamed v3vee configurator
Peter Dinda [Fri, 4 Oct 2013 15:11:52 +0000]
Added guest configurator and renamed v3vee configurator

11 years agov3_config emits memory allocations balanced across numa nodes
Peter Dinda [Fri, 4 Oct 2013 15:10:05 +0000]
v3_config emits memory allocations balanced across numa nodes

11 years agoEDF scheduler bugfixes from Oscar
Patrick G. Bridges [Tue, 1 Oct 2013 18:59:17 +0000]
EDF scheduler bugfixes from Oscar

11 years agoGraceful teardown of seabios fw config and fix of memory leak
Peter Dinda [Fri, 20 Sep 2013 22:08:23 +0000]
Graceful teardown of seabios fw config and fix of memory leak

11 years agoFixed spurious warning when memory block size is overrriden
Peter Dinda [Fri, 20 Sep 2013 21:27:39 +0000]
Fixed spurious warning when memory block size is overrriden

11 years agoAssorted cleanup
Peter Dinda [Fri, 20 Sep 2013 21:02:16 +0000]
Assorted cleanup

11 years agominor numa interface cleanup, and make sure initialization occurs
Peter Dinda [Thu, 19 Sep 2013 23:26:54 +0000]
minor numa interface cleanup, and make sure initialization occurs

11 years agoCleaned up deinitialization of VMM and free of VMs
Peter Dinda [Thu, 19 Sep 2013 22:25:42 +0000]
Cleaned up deinitialization of VMM and free of VMs

11 years agoMemory management and /proc enhancements
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

11 years agoBasic host scheduler bug fix
Patrick Bridges [Sun, 15 Sep 2013 22:42:22 +0000]
Basic host scheduler bug fix

11 years agoClean up debugging output
Peter Dinda [Sun, 15 Sep 2013 19:58:33 +0000]
Clean up debugging output

11 years agoCheckpoint/Restore fixes
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

11 years agomptable no longer errors out if it doesn't find the mptable target area
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

11 years agoUpdated userspace guest memory access tools for regions, plus added new fast function...
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

11 years agoMade memory manager reset distinct from removal of memory
Peter Dinda [Tue, 20 Aug 2013 23:25:18 +0000]
Made memory manager reset distinct from removal of memory

11 years agoMemory management enhancements: dynamic removal, cleanup at module remove time
Peter Dinda [Tue, 20 Aug 2013 23:14:30 +0000]
Memory management enhancements:  dynamic removal, cleanup at module remove time

11 years agoEnhanced configuration generation (now handles memory removal/offlining
Peter Dinda [Tue, 20 Aug 2013 23:07:59 +0000]
Enhanced configuration generation (now handles memory removal/offlining

11 years agov3_mem enhancements - managed offlining; ability to deallocate memory (obviates v3_me...
Peter Dinda [Tue, 20 Aug 2013 23:06:36 +0000]
v3_mem enhancements - managed offlining; ability to deallocate memory (obviates v3_mem_free)

11 years agoImproved /proc/v3vee/v3-guests* output
Peter Dinda [Sun, 18 Aug 2013 22:12:33 +0000]
Improved /proc/v3vee/v3-guests* output

11 years agoConstraints in page allocation, and code changes to use them; shadow paging allocati...
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.

11 years agoBug fixes to v3_mem
Peter Dinda [Sun, 18 Aug 2013 20:57:27 +0000]
Bug fixes to v3_mem

11 years agoConfiguration Generation tool for Linux Embedding
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

11 years agoVNET compatibility with NUMA interfaces
Peter Dinda [Wed, 7 Aug 2013 22:48:38 +0000]
VNET compatibility with NUMA interfaces

11 years agov3_mem fixes
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

11 years agoMemory manager fixes and assorted other fixes
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

11 years agoVNET control /proc permission fixes
Peter Dinda [Wed, 7 Aug 2013 21:31:08 +0000]
VNET control /proc permission fixes

11 years agoVM configuration attempts to roll back on failure
Peter Dinda [Wed, 7 Aug 2013 21:26:54 +0000]
VM configuration attempts to roll back on failure

11 years agoAdd load-time configurable memory block size
Peter Dinda [Sun, 4 Aug 2013 22:31:02 +0000]
Add load-time configurable memory block size

11 years agoCorrect memory addition calculations
Peter Dinda [Fri, 2 Aug 2013 01:27:10 +0000]
Correct memory addition calculations

11 years agoEnhanced user-space memory interface, allowing dynamic kernel-allocations
Peter Dinda [Fri, 2 Aug 2013 00:48:12 +0000]
Enhanced user-space memory interface, allowing dynamic kernel-allocations

11 years agoBuddy allocator metadata for pools
Peter Dinda [Fri, 2 Aug 2013 00:46:08 +0000]
Buddy allocator metadata for pools

11 years agoIntegration of buddy allocator
Jack Lange [Fri, 2 Aug 2013 00:45:15 +0000]
Integration of buddy allocator

This also includes a new dynamic allocation feature (Dinda)

11 years agoEnable barrier participation and core stop while in halt
Jack Lange [Thu, 1 Aug 2013 21:32:50 +0000]
Enable barrier participation and core stop while in halt

11 years agoMask hyperthreading CPUID bit
Peter Dinda [Wed, 31 Jul 2013 23:52:55 +0000]
Mask hyperthreading CPUID bit

11 years agoEnable cores to be reset via INIT IPI
Jack Lange [Wed, 31 Jul 2013 22:46:09 +0000]
Enable cores to be reset via INIT IPI

11 years agoupdated host pci interface to support non-contiguous memory regions
Jack Lange [Wed, 31 Jul 2013 22:01:10 +0000]
updated host pci interface to support non-contiguous memory regions

11 years agoFurther changes to support new non-contiguous memory model (checkpointing, vm informa...
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)

11 years agoAdded non-contiguous memory region support.
Jack Lange [Wed, 31 Jul 2013 21:56:38 +0000]
Added non-contiguous memory region support.

11 years agoMinor tweaks and configuration comments for vmm_fw_cfg (the interface to the SEABIOS)
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

11 years agoAllow selection of different BIOSes for the PC hardware class
Peter Dinda [Mon, 1 Jul 2013 22:05:46 +0000]
Allow selection of different BIOSes for the PC hardware class

11 years agoadded high memory capacity to NVRAM memory space
Alexander Kudryavtsev [Tue, 22 Jan 2013 03:46:33 +0000]
added high memory capacity to NVRAM memory space

11 years agoSEABIOS binaries added for ease in building palacios
Peter Dinda [Fri, 28 Jun 2013 20:50:29 +0000]
SEABIOS binaries added for ease in building palacios

11 years agoupdates to enable functionality necessary for SEABIOS to run
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

11 years agoadded NUMA interface files to pass NUMA layout between host and Palacios
Peter Dinda [Fri, 28 Jun 2013 20:00:35 +0000]
added NUMA interface files to pass NUMA layout between host and Palacios

11 years agoquix86 instruction patches
Maciek Swiech [Fri, 7 Jun 2013 20:46:02 +0000]
quix86 instruction patches

11 years agoadded updated version of the VGABIOS needed to work with SEABIOS
Jack Lange [Fri, 7 Jun 2013 20:32:35 +0000]
added updated version of the VGABIOS needed to work with SEABIOS

11 years agoadded NUMA query support for Linux to allow Palacios to determine the NUMA layout...
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

11 years agoadded modified buddy allocator derived from Kitten implementation
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

11 years agoadd FW_CFG interface implementation for SEABIOS
Alexander Kudryavtsev [Fri, 7 Jun 2013 20:13:53 +0000]
add FW_CFG interface implementation for SEABIOS

11 years agoimported SEABIOS source tree
Jack Lange [Fri, 7 Jun 2013 20:01:11 +0000]
imported SEABIOS source tree

11 years agoPolling changes in host devices and keyed stream
Peter Dinda [Sun, 4 Aug 2013 22:16:02 +0000]
Polling changes in host devices and keyed stream

11 years agov3_stream fix for escape character handling
Peter Dinda [Fri, 2 Aug 2013 22:43:04 +0000]
v3_stream fix for escape character handling

11 years ago8259A PIC obeys master ICW3 masking of the slave
Peter Dinda [Fri, 2 Aug 2013 22:27:32 +0000]
8259A PIC obeys master ICW3 masking of the slave

11 years agoMajor rewrite of serial port device
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

11 years agoUpdate to virtio console for new stream interface
Peter Dinda [Fri, 2 Aug 2013 21:08:19 +0000]
Update to virtio console for new stream interface

11 years agoUpdate to char_stream device for new stream interface changes
Peter Dinda [Fri, 2 Aug 2013 21:07:31 +0000]
Update to char_stream device for new stream interface changes

11 years agoChanges to stream interface to allow for flow control and error signaling
Peter Dinda [Fri, 2 Aug 2013 21:06:28 +0000]
Changes to stream interface to allow for flow control and error signaling

11 years agoCopyrights for lock and memory checking
Peter Dinda [Fri, 2 Aug 2013 20:45:44 +0000]
Copyrights for lock and memory checking

11 years agoAdditional cleanup of v3_stream interactive mode.
Patrick G. Bridges [Fri, 2 Aug 2013 20:42:14 +0000]
Additional cleanup of v3_stream interactive mode.

11 years agoAdded basic escape handling to v3_stream interactive mode
Patrick G. Bridges [Thu, 1 Aug 2013 23:14:06 +0000]
Added basic escape handling to v3_stream interactive mode

11 years agoFixes to interrupt (IRQ and VIRQ) injection logic:
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

11 years agoDefault yield policy is now friendly with a 10 ms timeout
Peter Dinda [Fri, 2 Aug 2013 20:38:55 +0000]
Default yield policy is now friendly with a 10 ms timeout

11 years ago8259 PIC corrections and cleanup
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

11 years agoLock-checking enhancements - simple deadlock detection
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.

11 years agoFallback to shadow paging if nested not supported or no paging mode specified
Peter Dinda [Mon, 15 Jul 2013 23:29:43 +0000]
Fallback to shadow paging if nested not supported or no paging mode specified

11 years agoAdd interface for power monitoring and telemetry option for power-related statistics
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.

11 years agoLock checking enhancement to find frequently used (hot) locks
Peter Dinda [Tue, 18 Jun 2013 19:00:58 +0000]
Lock checking enhancement to find frequently used (hot) locks

11 years agoLock and memory checking enhancements
Peter Dinda [Fri, 14 Jun 2013 21:40:01 +0000]
Lock and memory checking enhancements

11 years agocpuid bugfix for iface-pmu code
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

11 years agoLock bugfixes - missing lock deinits This also adds deinit calls in the linux_module...
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

11 years agoMemory alloction bugfix for vmm_events
Peter Dinda [Tue, 28 May 2013 22:23:15 +0000]
Memory alloction bugfix for vmm_events

11 years agoSpecial-cased handling of zero-byte mallocs since Linux does this insanely Also inclu...
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)

11 years agoMemory checking enhancements
Peter Dinda [Tue, 28 May 2013 22:20:20 +0000]
Memory checking enhancements