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.


HVM capability enhancement: asynchronous upcalls to ROS userspace
authorPeter Dinda <pdinda@northwestern.edu>
Sun, 27 Sep 2015 21:15:11 +0000 (16:15 -0500)
committerroot <root@v-test-r415-3.localdomain>
Sun, 27 Sep 2015 21:15:11 +0000 (16:15 -0500)
commit4e43946f01f687361197dc9571b7df02ae20de30
treefe26dafb641259252b45e8b86fa98db39de3cd57
parenta8686374c6aa74d805b32e7675f42f7ab9a0b348
HVM capability enhancement: asynchronous upcalls to ROS userspace

This adds the ability for the HRT, ROS, or other component of
the VMM to send what looks like a "user interrupt" (e.g. signal)
to a process running in the ROS.

This mechanism looks similar to signals:  the ROS process
installs a handler and stack (our library hides the details), the VMM
then dispatches to the handler by switching stacks, building
what looks like a CPL 3 -> CPL 3 interrupt frame (with error code)
on the selected stack, and then points rip to a userspace wrapper
that handles register save/restore + iret, wrapping around a call
to the user's handler.

Whoever raises the signal supplies the error code, which is then
coerced into an argument for the user's handler.

Only a single process in the ROS can register a handler at a time.
The context includes not only the stack and handler function, but
also the CR3 extant at registration time, and CPL 3 at injection time.
guest/linux/hvm-ros/Makefile
guest/linux/hvm-ros/test.c
guest/linux/hvm-ros/v3_hvm_ros_user.c
guest/linux/hvm-ros/v3_hvm_ros_user.h
guest/linux/hvm-ros/v3_hvm_ros_user_low_level.S [new file with mode: 0644]
palacios/include/palacios/vmm_hvm.h
palacios/src/palacios/svm.c
palacios/src/palacios/vmm_hvm.c
palacios/src/palacios/vmx.c