Skip to content
This repository was archived by the owner on May 12, 2021. It is now read-only.

Commit b86ab21

Browse files
author
Eric Ernst
authored
Merge pull request #2054 from GabyCT/topic/addcli
configuration: Add QEMU with virtiofs 3.0 support
2 parents 030211e + 324952c commit b86ab21

File tree

3 files changed

+479
-1
lines changed

3 files changed

+479
-1
lines changed

Makefile

+38-1
Original file line numberDiff line numberDiff line change
@@ -119,15 +119,18 @@ HYPERVISOR_FC = firecracker
119119
JAILER_FC = jailer
120120
HYPERVISOR_NEMU = nemu
121121
HYPERVISOR_QEMU = qemu
122+
HYPERVISOR_QEMU_VIRTIOFS = qemu-virtiofs
122123

123124
# Determines which hypervisor is specified in $(CONFIG_FILE).
124125
DEFAULT_HYPERVISOR = $(HYPERVISOR_QEMU)
125126

126127
# List of hypervisors this build system can generate configuration for.
127-
HYPERVISORS := $(HYPERVISOR_ACRN) $(HYPERVISOR_FC) $(HYPERVISOR_QEMU) $(HYPERVISOR_NEMU)
128+
HYPERVISORS := $(HYPERVISOR_ACRN) $(HYPERVISOR_FC) $(HYPERVISOR_QEMU) $(HYPERVISOR_QEMU_VIRTIOFS) $(HYPERVISOR_NEMU)
128129

129130
QEMUPATH := $(QEMUBINDIR)/$(QEMUCMD)
130131

132+
QEMUVIRTIOFSPATH := $(QEMUBINDIR)/$(QEMUVIRTIOFSCMD)
133+
131134
NEMUPATH := $(NEMUBINDIR)/$(NEMUCMD)
132135

133136
FCPATH = $(FCBINDIR)/$(FCCMD)
@@ -237,6 +240,28 @@ ifneq (,$(QEMUCMD))
237240
KERNELPATH = $(KERNELDIR)/$(KERNELNAME)
238241
endif
239242

243+
ifneq (,$(QEMUVIRTIOFSCMD))
244+
KNOWN_HYPERVISORS += $(HYPERVISOR_QEMU_VIRTIOFS)
245+
246+
CONFIG_FILE_QEMU_VIRTIOFS = configuration-qemu-virtiofs.toml
247+
CONFIG_QEMU_VIRTIOFS = $(CLI_DIR)/config/$(CONFIG_FILE_QEMU_VIRTIOFS)
248+
CONFIG_QEMU_VIRTIOFS_IN = $(CONFIG_QEMU_VIRTIOFS).in
249+
250+
CONFIG_PATH_QEMU_VIRTIOFS = $(abspath $(CONFDIR)/$(CONFIG_FILE_QEMU_VIRTIOFS))
251+
CONFIG_PATHS += $(CONFIG_PATH_QEMU_VIRTIOFS)
252+
253+
SYSCONFIG_QEMU_VIRTIOFS = $(abspath $(SYSCONFDIR)/$(CONFIG_FILE_QEMU_VIRTIOFS))
254+
SYSCONFIG_PATHS += $(SYSCONFIG_QEMU_VIRTIOFS)
255+
256+
CONFIGS += $(CONFIG_QEMU_VIRTIOFS)
257+
258+
# qemu-specific options (all should be suffixed by "_QEMU")
259+
DEFBLOCKSTORAGEDRIVER_QEMU_VIRTIOFS := virtio-fs
260+
DEFNETWORKMODEL_QEMU := tcfilter
261+
KERNELNAME = $(call MAKE_KERNEL_NAME,$(KERNELTYPE))
262+
KERNELPATH = $(KERNELDIR)/$(KERNELNAME)
263+
endif
264+
240265
ifneq (,$(NEMUCMD))
241266
KNOWN_HYPERVISORS += $(HYPERVISOR_NEMU)
242267

@@ -325,6 +350,10 @@ ifeq ($(DEFAULT_HYPERVISOR),$(HYPERVISOR_QEMU))
325350
DEFAULT_HYPERVISOR_CONFIG = $(CONFIG_FILE_QEMU)
326351
endif
327352

353+
ifeq ($(DEFAULT_HYPERVISOR),$(HYPERVISOR_QEMU_VIRTIOFS))
354+
DEFAULT_HYPERVISOR_CONFIG = $(CONFIG_FILE_QEMU)
355+
endif
356+
328357
ifeq ($(DEFAULT_HYPERVISOR),$(HYPERVISOR_FC))
329358
DEFAULT_HYPERVISOR_CONFIG = $(CONFIG_FILE_FC)
330359
endif
@@ -394,6 +423,8 @@ USER_VARS += NETMONPATH
394423
USER_VARS += QEMUBINDIR
395424
USER_VARS += QEMUCMD
396425
USER_VARS += QEMUPATH
426+
USER_VARS += QEMUVIRTIOFSCMD
427+
USER_VARS += QEMUVIRTIOFSPATH
397428
USER_VARS += SHAREDIR
398429
USER_VARS += SHIMPATH
399430
USER_VARS += SYSCONFDIR
@@ -412,6 +443,7 @@ USER_VARS += DEFDISABLEBLOCK
412443
USER_VARS += DEFBLOCKSTORAGEDRIVER_ACRN
413444
USER_VARS += DEFBLOCKSTORAGEDRIVER_FC
414445
USER_VARS += DEFBLOCKSTORAGEDRIVER_QEMU
446+
USER_VARS += DEFBLOCKSTORAGEDRIVER_QEMU_VIRTIOFS
415447
USER_VARS += DEFBLOCKSTORAGEDRIVER_NEMU
416448
USER_VARS += DEFSHAREDFS
417449
USER_VARS += DEFSHAREDFS_NEMU
@@ -551,6 +583,7 @@ $(GENERATED_FILES): %: %.in $(MAKEFILE_LIST) VERSION .git-commit
551583
-e "s|@PROJECT_TAG@|$(PROJECT_TAG)|g" \
552584
-e "s|@PROJECT_TYPE@|$(PROJECT_TYPE)|g" \
553585
-e "s|@QEMUPATH@|$(QEMUPATH)|g" \
586+
-e "s|@QEMUVIRTIOFSPATH@|$(QEMUVIRTIOFSPATH)|g" \
554587
-e "s|@RUNTIME_NAME@|$(TARGET)|g" \
555588
-e "s|@MACHINETYPE@|$(MACHINETYPE)|g" \
556589
-e "s|@SHIMPATH@|$(SHIMPATH)|g" \
@@ -569,6 +602,7 @@ $(GENERATED_FILES): %: %.in $(MAKEFILE_LIST) VERSION .git-commit
569602
-e "s|@DEFBLOCKSTORAGEDRIVER_ACRN@|$(DEFBLOCKSTORAGEDRIVER_ACRN)|g" \
570603
-e "s|@DEFBLOCKSTORAGEDRIVER_FC@|$(DEFBLOCKSTORAGEDRIVER_FC)|g" \
571604
-e "s|@DEFBLOCKSTORAGEDRIVER_QEMU@|$(DEFBLOCKSTORAGEDRIVER_QEMU)|g" \
605+
-e "s|@DEFBLOCKSTORAGEDRIVER_QEMU_VIRTIOFS@|$(DEFBLOCKSTORAGEDRIVER_QEMU_VIRTIOFS)|g" \
572606
-e "s|@DEFBLOCKSTORAGEDRIVER_NEMU@|$(DEFBLOCKSTORAGEDRIVER_NEMU)|g" \
573607
-e "s|@DEFSHAREDFS@|$(DEFSHAREDFS)|g" \
574608
-e "s|@DEFSHAREDFS_NEMU@|$(DEFSHAREDFS_NEMU)|g" \
@@ -731,6 +765,9 @@ endif
731765
ifneq (,$(findstring $(HYPERVISOR_QEMU),$(KNOWN_HYPERVISORS)))
732766
@printf "\t$(HYPERVISOR_QEMU) hypervisor path (QEMUPATH) : %s\n" $(abspath $(QEMUPATH))
733767
endif
768+
ifneq (,$(findstring $(HYPERVISOR_QEMU_VIRTIOFS),$(KNOWN_HYPERVISORS)))
769+
@printf "\t$(HYPERVISOR_QEMU_VIRTIOFS) hypervisor path (QEMUVIRTIOFSPATH) : %s\n" $(abspath $(QEMUVIRTIOFSPATH))
770+
endif
734771
ifneq (,$(findstring $(HYPERVISOR_NEMU),$(KNOWN_HYPERVISORS)))
735772
@printf "\t$(HYPERVISOR_NEMU) hypervisor path (NEMUPATH) : %s\n" $(abspath $(NEMUPATH))
736773
endif

arch/amd64-options.mk

+3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ MACHINEACCELERATORS :=
1111

1212
QEMUCMD := qemu-system-x86_64
1313

14+
# Qemu experimental with virtiofs
15+
QEMUVIRTIOFSCMD := qemu-virtiofs-system-x86_64
16+
1417
# Firecracker binary name
1518
FCCMD := firecracker
1619
# Firecracker's jailer binary name

0 commit comments

Comments
 (0)