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.


Context-based output infrastructure (V3_Print, etc) and modifications to use it
authorPeter Dinda <pdinda@northwestern.edu>
Sat, 29 Dec 2012 18:59:47 +0000 (12:59 -0600)
committerPeter Dinda <pdinda@northwestern.edu>
Sat, 29 Dec 2012 19:21:19 +0000 (13:21 -0600)
commitacaadd79c597c8d5180fbfbec79c01fef3dff003
treec837bcc36f8138b462eedf086e3b21f38134758a
parent8361c0d1e416802f476ebd26e385a388747a4799
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.
169 files changed:
linux_module/iface-graphics-console.c
linux_module/mcheck.c
linux_module/palacios-stubs.c
linux_module/palacios-vnet.c
linux_module/palacios.h
linux_usr/v3_info [new file with mode: 0755]
palacios/include/palacios/vmm.h
palacios/include/palacios/vmm_checkpoint.h
palacios/include/palacios/vmm_decoder.h
palacios/include/palacios/vmm_dev_mgr.h
palacios/include/palacios/vmm_ethernet.h
palacios/include/palacios/vmm_events.h
palacios/include/palacios/vmm_instr_decoder.h
palacios/include/vnet/vnet_host.h
palacios/src/devices/8237_dma.c
palacios/src/devices/8254.c
palacios/src/devices/8259a.c
palacios/src/devices/apic.c
palacios/src/devices/ata.h
palacios/src/devices/atapi.h
palacios/src/devices/bochs_debug.c
palacios/src/devices/cga.c
palacios/src/devices/char_stream.c
palacios/src/devices/cirrus_gfx_card.c
palacios/src/devices/curses_cons.c
palacios/src/devices/disk_model.c
palacios/src/devices/filedisk.c
palacios/src/devices/generic.c
palacios/src/devices/host_pci.c
palacios/src/devices/i440fx.c
palacios/src/devices/ide.c
palacios/src/devices/io_apic.c
palacios/src/devices/keyboard.c
palacios/src/devices/lnx_virtio_balloon.c
palacios/src/devices/lnx_virtio_blk.c
palacios/src/devices/lnx_virtio_console.c
palacios/src/devices/lnx_virtio_nic.c
palacios/src/devices/lnx_virtio_sym.c
palacios/src/devices/lnx_virtio_symmod.c
palacios/src/devices/lnx_virtio_vnet.c
palacios/src/devices/mptable.c
palacios/src/devices/ne2k.c
palacios/src/devices/netdisk.c
palacios/src/devices/nic_bridge.c
palacios/src/devices/nvram.c
palacios/src/devices/os_debug.c
palacios/src/devices/para_net.c
palacios/src/devices/pci.c
palacios/src/devices/pci_front.c
palacios/src/devices/pci_passthrough.c
palacios/src/devices/piix3.c
palacios/src/devices/ramdisk.c
palacios/src/devices/rtl8139.c
palacios/src/devices/serial.c
palacios/src/devices/simple_pic.c
palacios/src/devices/swapbypass_cache.c
palacios/src/devices/swapbypass_cache2.c
palacios/src/devices/telnet_cons.c
palacios/src/devices/timer.c
palacios/src/devices/tmpdisk.c
palacios/src/devices/vga.c
palacios/src/devices/vnet_guest_iface.c
palacios/src/devices/vnet_nic.c
palacios/src/extensions/ext_inspector.c
palacios/src/extensions/ext_mcheck.c
palacios/src/extensions/ext_mtrr.c
palacios/src/extensions/ext_vmware.c
palacios/src/gears/ext_code_inject.c
palacios/src/gears/ext_env_inject.c
palacios/src/gears/ext_execve_hook.c
palacios/src/gears/ext_process_environment.c
palacios/src/gears/ext_sw_intr.c
palacios/src/gears/ext_syscall_hijack.c
palacios/src/interfaces/host_pci.c
palacios/src/interfaces/vmm_console.c
palacios/src/interfaces/vmm_file.c
palacios/src/interfaces/vmm_graphics_console.c
palacios/src/interfaces/vmm_host_dev.c
palacios/src/interfaces/vmm_host_hypercall.c
palacios/src/interfaces/vmm_keyed_stream.c
palacios/src/interfaces/vmm_packet.c
palacios/src/interfaces/vmm_socket.c
palacios/src/interfaces/vmm_stream.c
palacios/src/palacios/mmu/vmm_shdw_pg_cache.c
palacios/src/palacios/mmu/vmm_shdw_pg_cache_32.h
palacios/src/palacios/mmu/vmm_shdw_pg_kvm.c
palacios/src/palacios/mmu/vmm_shdw_pg_kvm_32.h
palacios/src/palacios/mmu/vmm_shdw_pg_kvm_32pae.h
palacios/src/palacios/mmu/vmm_shdw_pg_kvm_64.h
palacios/src/palacios/mmu/vmm_shdw_pg_swapbypass.c
palacios/src/palacios/mmu/vmm_shdw_pg_swapbypass_32.h
palacios/src/palacios/mmu/vmm_shdw_pg_swapbypass_32pae.h
palacios/src/palacios/mmu/vmm_shdw_pg_swapbypass_64.h
palacios/src/palacios/mmu/vmm_shdw_pg_tlb.c
palacios/src/palacios/mmu/vmm_shdw_pg_tlb_32.h
palacios/src/palacios/mmu/vmm_shdw_pg_tlb_32pae.h
palacios/src/palacios/mmu/vmm_shdw_pg_tlb_64.h
palacios/src/palacios/svm.c
palacios/src/palacios/svm_exits.c
palacios/src/palacios/svm_handler.c
palacios/src/palacios/svm_io.c
palacios/src/palacios/svm_msr.c
palacios/src/palacios/svm_wbinvd.c
palacios/src/palacios/vm_guest.c
palacios/src/palacios/vm_guest_mem.c
palacios/src/palacios/vmcb.c
palacios/src/palacios/vmcs.c
palacios/src/palacios/vmm.c
palacios/src/palacios/vmm_barrier.c
palacios/src/palacios/vmm_bitmap.c
palacios/src/palacios/vmm_checkpoint.c
palacios/src/palacios/vmm_chkpt_stores.h
palacios/src/palacios/vmm_config.c
palacios/src/palacios/vmm_config_class.h
palacios/src/palacios/vmm_cpuid.c
palacios/src/palacios/vmm_ctrl_regs.c
palacios/src/palacios/vmm_debug.c
palacios/src/palacios/vmm_decoder.c
palacios/src/palacios/vmm_dev_mgr.c
palacios/src/palacios/vmm_direct_paging.c
palacios/src/palacios/vmm_direct_paging_32.h
palacios/src/palacios/vmm_direct_paging_32pae.h
palacios/src/palacios/vmm_direct_paging_64.h
palacios/src/palacios/vmm_emulator.c
palacios/src/palacios/vmm_events.c
palacios/src/palacios/vmm_excp.c
palacios/src/palacios/vmm_exits.c
palacios/src/palacios/vmm_extensions.c
palacios/src/palacios/vmm_halt.c
palacios/src/palacios/vmm_host_events.c
palacios/src/palacios/vmm_hypercall.c
palacios/src/palacios/vmm_intr.c
palacios/src/palacios/vmm_io.c
palacios/src/palacios/vmm_mem.c
palacios/src/palacios/vmm_mem_hook.c
palacios/src/palacios/vmm_msr.c
palacios/src/palacios/vmm_multitree.c
palacios/src/palacios/vmm_mwait.c
palacios/src/palacios/vmm_paging.c
palacios/src/palacios/vmm_paging_debug.h
palacios/src/palacios/vmm_perftune.c
palacios/src/palacios/vmm_queue.c
palacios/src/palacios/vmm_quix86.c
palacios/src/palacios/vmm_ringbuffer.c
palacios/src/palacios/vmm_shadow_paging.c
palacios/src/palacios/vmm_sprintf.c
palacios/src/palacios/vmm_string.c
palacios/src/palacios/vmm_symbiotic.c
palacios/src/palacios/vmm_symcall.c
palacios/src/palacios/vmm_symmod.c
palacios/src/palacios/vmm_symspy.c
palacios/src/palacios/vmm_telemetry.c
palacios/src/palacios/vmm_time.c
palacios/src/palacios/vmm_timeout.c
palacios/src/palacios/vmm_util.c
palacios/src/palacios/vmm_v3dec.c
palacios/src/palacios/vmm_xed.c
palacios/src/palacios/vmm_xml.c
palacios/src/palacios/vmx.c
palacios/src/palacios/vmx_assist.c
palacios/src/palacios/vmx_ctrl_regs.c
palacios/src/palacios/vmx_ept.c
palacios/src/palacios/vmx_exits.c
palacios/src/palacios/vmx_handler.c
palacios/src/palacios/vmx_hw_info.c
palacios/src/palacios/vmx_io.c
palacios/src/palacios/vmx_msr.c
palacios/src/vnet/vnet_core.c
palacios/src/vnet/vnet_host.c