[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Minios-devel] [UNIKRAFT PATCH v2 0/9] Firecracker support



Firecracker is a new lightweight hypervisor developed as open-source by
Amazon. It relies on kvm, but then produces a somewhat more streamlined boot
option catering especially to Linux: instead of having the kernel query the
BIOS for information such as where memory is physically located, information
is already provided in pre-processes for in a "bootparams" page that Linux
uses to internally collect this information at boot time.

This patch series adds support for bootparams, as well the possibility to
build both QEMU- and Firecracker-specific kvm images at the same time by
providing a new way of creating platform sub-libraries.


unikraft can be run with Firecracker by invoking the following HTTP PUTs:

curl --unix-socket /tmp/firecracker.socket -i     -X PUT 
'http://localhost/boot-source'       -H 'Accept: application/json'              
 -H 'Content-Type: application/json'         -d '{
        "kernel_image_path": "<image file>",
        "boot_args": "console=ttyS0 reboot=k panic=1 pci=off"
    }'
curl --unix-socket /tmp/firecracker.socket -i     -X PUT 
'http://localhost/actions'           -H  'Accept: application/json'             
 -H  'Content-Type: application/json'        -d '{
        "action_type": "InstanceStart"
     }'

Note: Firecracker is currently under heavy development, so basic settings
(such as where to find the bootparams page or the cmdline) are currently
hardcoded and might change in the future. This patch series has been tested
against Firecracker's current release (v0.19.0).

v1->v2:
    (1) define the firecracker boot parameter base address as a macro;
    (2) verified with the firecracker latest release v0.19.0.

Haibo Xu (9):
  build: support for sharing libraries across multiple platforms
  plat/kvm: add options to choose QEMU or Firecracker
  plat/kvm: change entry point for x86
  plat/kvm: create separate linker script for QEMU and Firecracker
  plat/kvm: make multiboot one VMM info option
  plat/kvm: streamline Firecracker early boot
  plat/kvm: update page table for Firecracker
  plat/kvm: Add bootparams as VMM info option
  plat/kvm: Firecracker is now in a state that runs

 plat/kvm/Config.uk                     |  15 ++
 plat/kvm/Linker.uk                     |  64 -------
 plat/kvm/Linker_fc.uk                  |  66 +++++++
 plat/kvm/Linker_q.uk                   |  66 +++++++
 plat/kvm/Makefile.uk                   |  48 ++++-
 plat/kvm/include/kvm-x86/_bootparams.h | 129 +++++++++++++
 plat/kvm/include/kvm-x86/_multiboot.h  | 243 +++++++++++++++++++++++++
 plat/kvm/include/kvm-x86/bootparams.h  |  42 +++++
 plat/kvm/include/kvm-x86/vmminfo.h     |  56 ++++++
 plat/kvm/x86/entry64.S                 |  23 ++-
 plat/kvm/x86/link64.lds.S              |   2 +-
 plat/kvm/x86/pagetable.S               |  14 +-
 plat/kvm/x86/setup.c                   | 227 +----------------------
 support/build/Makefile.build           |  21 ++-
 support/build/Makefile.clean           |   8 +-
 15 files changed, 705 insertions(+), 319 deletions(-)
 delete mode 100644 plat/kvm/Linker.uk
 create mode 100644 plat/kvm/Linker_fc.uk
 create mode 100644 plat/kvm/Linker_q.uk
 create mode 100644 plat/kvm/include/kvm-x86/_bootparams.h
 create mode 100644 plat/kvm/include/kvm-x86/_multiboot.h
 create mode 100644 plat/kvm/include/kvm-x86/bootparams.h
 create mode 100644 plat/kvm/include/kvm-x86/vmminfo.h

-- 
2.17.1


_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.