From 4c1cacd31d6844bb6d0e81caff7c325af1aeeac1 Mon Sep 17 00:00:00 2001 From: Archana Shinde Date: Thu, 9 Apr 2020 10:36:44 -0700 Subject: [PATCH 1/4] versions: Switch to virtio-fs-dev branch for kernel This includes a newer kernel and necessary overlay changes that fix oustanding issue for running docker in docker using overlay. Depends-on: github.com/kata-containers/agent#738 Depends-on: github.com/kata-containers/shim#233 Fixes #2603 Signed-off-by: Archana Shinde --- versions.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/versions.yaml b/versions.yaml index b3531c9bf6..6061f4bff6 100644 --- a/versions.yaml +++ b/versions.yaml @@ -158,9 +158,9 @@ assets: version: "v5.4.15" kernel-experimental: - description: "Linux kernel with virtiofs 3.0" + description: "Linux kernel with virtio-fs-dev branch" url: "https://gitlab.com/virtio-fs/linux.git" - tag: "virtio-fs-v0.3" + tag: "virtio-fs-dev" components: description: "Core system functionality" From 95ccc0f75933657cc9cc008b1676b854a017a179 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Mon, 17 Feb 2020 11:55:52 +0100 Subject: [PATCH 2/4] agent: Use "virtiofs" instead of "virtio_fs" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit virtio_fs was the name used for the module in the very early stages of its development. Fixes: #2462 Signed-off-by: Fabiano FidĂȘncio --- virtcontainers/kata_agent.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtcontainers/kata_agent.go b/virtcontainers/kata_agent.go index 15c4f63759..5cb62e7036 100644 --- a/virtcontainers/kata_agent.go +++ b/virtcontainers/kata_agent.go @@ -66,7 +66,7 @@ var ( mountGuestTag = "kataShared" defaultKataGuestSandboxDir = "/run/kata-containers/sandbox/" type9pFs = "9p" - typeVirtioFS = "virtio_fs" + typeVirtioFS = "virtiofs" typeVirtioFSNoCache = "none" kata9pDevType = "9p" kataMmioBlkDevType = "mmioblk" From 6218b2a5581a045e3f772e3340df1686f518e663 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Wed, 19 Feb 2020 10:48:23 +0100 Subject: [PATCH 3/4] kata_agent: Remove sharedDirVirtioFSOptions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Although in the earlier stages of development those FUSE client mount options were needed, when virtiofs got merged the default option values were baked into virtiofs.ko. Those options are not only unneeded, but they'd also cause issues when trying to run recent enough kernels, as shown below: ``` [root@f32 runtime]# podman run --security-opt label=disable --runtime=/usr/local/bin/kata-runtime --rm -id fedora sh Error: rpc error: code = Internal desc = Could not mount kataShared to /run/kata-containers/shared/containers/: invalid argument: OCI runtime error ``` Fixes: #2464 Signed-off-by: Fabiano FidĂȘncio --- virtcontainers/kata_agent.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtcontainers/kata_agent.go b/virtcontainers/kata_agent.go index 5cb62e7036..9f4a8d3f0e 100644 --- a/virtcontainers/kata_agent.go +++ b/virtcontainers/kata_agent.go @@ -76,7 +76,7 @@ var ( kataNvdimmDevType = "nvdimm" kataVirtioFSDevType = "virtio-fs" sharedDir9pOptions = []string{"trans=virtio,version=9p2000.L,cache=mmap", "nodev"} - sharedDirVirtioFSOptions = []string{"default_permissions,allow_other,rootmode=040000,user_id=0,group_id=0", "nodev"} + sharedDirVirtioFSOptions = []string{} sharedDirVirtioFSDaxOptions = "dax" shmDir = "shm" kataEphemeralDevType = "ephemeral" From ab8050c5e021c18899d3c037066b7aea972d28b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Wed, 19 Feb 2020 11:00:51 +0100 Subject: [PATCH 4/4] kata_agent: Don't use dax if virtio_fs_cache is 0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If always using dax, even if virtio_fs_cache is 0, the following error would happen: ``` [root@f32 runtime]# podman run --security-opt label=disable --runtime=/usr/local/bin/kata-runtime --rm -id fedora sh Error: rpc error: code = Internal desc = Could not mount kataShared to /run/kata-containers/shared/containers/: invalid argument: OCI runtime error ``` Fixes: #2464 Signed-off-by: Fabiano FidĂȘncio --- virtcontainers/kata_agent.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/virtcontainers/kata_agent.go b/virtcontainers/kata_agent.go index 9f4a8d3f0e..9a5ecc140b 100644 --- a/virtcontainers/kata_agent.go +++ b/virtcontainers/kata_agent.go @@ -879,7 +879,10 @@ func setupStorages(sandbox *Sandbox) []*grpc.Storage { // options should not contain 'dax' lest the virtio-fs daemon crashing // with an invalid address reference. if sandbox.config.HypervisorConfig.VirtioFSCache != typeVirtioFSNoCache { - sharedDirVirtioFSOptions = append(sharedDirVirtioFSOptions, sharedDirVirtioFSDaxOptions) + // If virtio_fs_cache_size = 0, dax should not be used. + if sandbox.config.HypervisorConfig.VirtioFSCacheSize != 0 { + sharedDirVirtioFSOptions = append(sharedDirVirtioFSOptions, sharedDirVirtioFSDaxOptions) + } } sharedVolume := &grpc.Storage{ Driver: kataVirtioFSDevType,