-
Notifications
You must be signed in to change notification settings - Fork 373
Conversation
For testing purpose, the kernel for running kata on ppc64le using the initrd approach can be taken from: https://github.com/nitkon/kata/blob/master/vmlinux |
@nitkon please file and issue and add |
arch/ppc64le-options.mk
Outdated
@@ -0,0 +1,21 @@ | |||
# Copyright (c) 2018 Intel Corporation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/Intel Corporation/IBM/
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please use next style for all licence headers
// Copyright (c) 2018 XXXXXXXXXXXXXXXXX
//
// SPDX-License-Identifier: Apache-2.0
//
cli/kata-check_ppc64le.go
Outdated
@@ -0,0 +1,110 @@ | |||
// Copyright (c) 2018 Intel Corporation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/Intel Corporation/IBM/ ?
virtcontainers/qemu_ppc64le.go
Outdated
@@ -0,0 +1,199 @@ | |||
// | |||
// Copyright (c) 2018 Intel Corporation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/Intel Corporation/IBM/ ?
arch/ppc64le-options.mk
Outdated
MACHINETYPE := pseries | ||
KERNELPARAMS := | ||
MACHINEACCELERATORS := | ||
KERNELPATH := /usr/share/kata-containers/vmlinux.container |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this line really required? If so, please can you add a comment stating that this architecture must use an uncompressed kernel.
A better approach might be to define a new variable so that you could say something like:
KERNEL_NAME := vmlinux.container
... or even:
KERNEL_TYPE := uncompressed
ifeq (uncompressed,$(KERNEL_TYPE))
KERNEL_NAME = vmlinux.container
else
KERNEL_NAME = vmlinuz.container
endif
cli/kata-check_amd64.go
Outdated
// hostIsVMContainerCapable checks to see if the host is theoretically capable | ||
// of creating a VM container. | ||
|
||
func hostIsVMContainerCapable(details vmContainerCapableDetails) error { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this change will break the ARM64 build. Maybe you could leave this function in kata-check.go
but rename it to something like genericHostIsVMContainerCapable()
and then call it from kata-check_amd64.go
and (a new) kata-check_arm64.go
?
This also raises a larger issue: our CI currently only tests x86_64. Do you have any thoughts on how we could add PPC64 to our CI to ensure this code doesn't break at some point in the future? If you could handle the ongoing testing of PPC64 that would be great.
virtcontainers/hypervisor.go
Outdated
@@ -458,6 +458,10 @@ func RunningOnVMM(cpuInfoPath string) (bool, error) { | |||
return false, nil | |||
} | |||
|
|||
if runtime.GOARCH == "ppc64le" { | |||
virtLog.Debugf("Unable to know if the system is running inside a VM") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this might be better as an info or warning message. Note that you don't need to use the "f" version of the API as there are no additional args (so virtLog.Info()
or virtLog.Warn()
).
virtcontainers/qemu_arch_base.go
Outdated
@@ -127,6 +127,9 @@ const ( | |||
|
|||
// QemuVirt is the QEMU virt machine type for aarch64 | |||
QemuVirt = "virt" | |||
|
|||
// QemuPpc64le is a QEMU virt machine type for for ppc64le | |||
QemuPpc64le = "pseries" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This camel case looks a bit odd to my eyes. If the golang compiler agrees could you make this QemuPPC64le
(same comment to some of the code below)?
cli/kata-check_ppc64le.go
Outdated
|
||
// kvmIsUsable determines if it will be possible to create a full virtual machine | ||
// by creating a minimal VM and then deleting it. | ||
func kvmIsUsable() error { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicated function. Please can you move the version in cli/kata-check_amd64.go
into cli/kata-check.go
and maybe prefix with generic
.
virtcontainers/qemu_ppc64le.go
Outdated
} | ||
|
||
func (q *qemuPpc64le) cpuModel() string { | ||
//fmt.Println("HELLLLO") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you remove this line please? 😄
virtcontainers/qemu_ppc64le.go
Outdated
return cpuModel | ||
} | ||
|
||
func (q *qemuPpc64le) memoryTopology(memoryMb, hostMemoryMb uint64) govmmQemu.Memory { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is almost identical to the same function name in virtcontainers/qemu_amd64.go
so this could be moved to virtcontainers/qemu.go
maybe?
virtcontainers/qemu_ppc64le.go
Outdated
|
||
memory := govmmQemu.Memory{ | ||
Size: mem, | ||
//Slots: defaultMemSlots, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
... Almost identical because of these two lines. Please remove the commented out code if these values should not be set.
virtcontainers/qemu_ppc64le.go
Outdated
return nil, err | ||
} | ||
|
||
//govmmQemu.SCSIController{} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Commented out line.
virtcontainers/qemu_ppc64le.go
Outdated
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
// | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @markdryan - any comments on the qemu code here?
Thanks for raising @nitkon! There are a few issues, but most are easily resolved I think. |
cli/kata-check_ppc64le.go
Outdated
// hostIsVMContainerCapable checks to see if the host is theoretically capable | ||
// of creating a VM container. | ||
func hostIsVMContainerCapable(details vmContainerCapableDetails) error { | ||
return nil |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add comments here explaining why this is nil.
virtcontainers/qemu_ppc64le.go
Outdated
var caps capabilities | ||
|
||
// Only pc machine type supports hotplugging drives | ||
if q.machineType == QemuPpc64le { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comment and the implementation are not in sync. Could you change the comment if the pseries machine type supports this capability.
virtcontainers/qemu_ppc64le.go
Outdated
} | ||
|
||
devices = append(devices, | ||
govmmQemu.BridgeDevice{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The other functions for appendBridges assign an address to the bridge as well. Please do that here as well.
Also since the code is identical, can you move it to a common function prefixed with "generic" as @jodh-intel has suggested for other cases.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, can you add some unit tests for this architecture?
cli/kata-check_ppc64le.go
Outdated
// hostIsVMContainerCapable checks to see if the host is theoretically capable | ||
// of creating a VM container. | ||
func hostIsVMContainerCapable(details vmContainerCapableDetails) error { | ||
return nil |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
double tab
virtcontainers/hypervisor.go
Outdated
@@ -454,7 +454,12 @@ func getHostMemorySizeKb(memInfoPath string) (uint64, error) { | |||
// RunningOnVMM checks if the system is running inside a VM. | |||
func RunningOnVMM(cpuInfoPath string) (bool, error) { | |||
if runtime.GOARCH == "arm64" { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|| runtime.GOARCH == "ppc64le"
virtcontainers/qemu_arch_base.go
Outdated
@@ -127,6 +127,9 @@ const ( | |||
|
|||
// QemuVirt is the QEMU virt machine type for aarch64 | |||
QemuVirt = "virt" | |||
|
|||
// QemuPPC64le is a QEMU virt machine type for for ppc64le | |||
QemuPPC64le = "pseries" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
variable name should be QemuPseries
virtcontainers/qemu_ppc64le.go
Outdated
qemuArchBase | ||
} | ||
|
||
const defaultQemuPath = "/usr/libexec/qemu-kvm" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do you mean /usr/bin/qemu-kvm
?
{"iommu", "off"}, | ||
{"cryptomgr.notests", ""}, | ||
{"net.ifnames", "0"}, | ||
{"pci", "lastbus=0"}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this improves boot time of PCIe machines types, does QEMU ppc have PCIe machine types?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nitkon you didn't answer here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@devimc : Thanks for pointing out. pci=lastbus=0
is an intel only feature. POWER does not use it. So we can remove this option for ppc64le.
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/admin-guide/kernel-parameters.txt#n3058
{"iommu", "off"}
can also be removed.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/admin-guide/kernel-parameters.txt#n1699
{"cryptomgr.notests", ""},
and {"net.ifnames", "0"},
should improve the boot times.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the parameters analysis, this was a very complete answer 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jodh-intel : Is it fine to raise a PR to optimize the kernel parameters for ppc64le.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @nitkon - Sure - please do! ;)
virtcontainers/qemu_ppc64le.go
Outdated
// NVDIMM device needs memory space 1024MB | ||
memoryOffset := 1024 | ||
|
||
// Align hostMemoryMb to 256 MB multiples |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
uhhmm this is weird, why 256?, have you tried with 128 MB?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Default LMB (Logical Memory Blocksize) in ppc64le arch is 256MB. If we do not adhere to that we get the error: "docker: Error response from daemon: OCI runtime create failed: qemu-system-ppc64: Can't support memory configuration where RAM size 0x80000000 or maxmem size 0x3017400000 isn't aligned to 256 MB: unknown."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
make sense, thanks @nitkon
@@ -0,0 +1,192 @@ | |||
// Copyright (c) 2018 IBM |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you need to run gofmt -s -w
on this file
virtcontainers/qemu_ppc64le.go
Outdated
for idx, b := range bridges { | ||
t := govmmQemu.PCIBridge | ||
if b.Type == pcieBridge { | ||
t = govmmQemu.PCIEBridge |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
does pseries
support pcie ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@devimc : Yes .
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok, have you compared the boot time with/without pci=lastbus=0
in the kernel command line? probably you will need it
cli/kata-check.go
Outdated
|
||
fieldLogger.WithField("device", kvmDevice).Info("device available") | ||
|
||
vm, _, errno := syscall.Syscall(syscall.SYS_IOCTL, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not related to this patch, but is there any possibility that we have /dev/kvm
device but kvm is not enabled? I wonder if the extra step of checking kvm ioctl is necessary. If not, we can remove the only piece of C go from kata runtime.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, yes (kind of). This code was added to protect against the scenario where the user has a different hypervisor running (VMWare, VirtualBox, etc) since they stop qemu from using kvm. See:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's also why kata-check
is specified twice in the README, one with sudo
and one without since kata-check
needs root
access to create a KVM VM (which we then destroy), but you can run the command without root
(but we can't then detect if another hypervisor is using it):
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, fair enough. I guess next possibility is to either push the kvm ioctl number to go runtime, or define it in govmm. Then we can still remove the c go code.
virtcontainers/qemu_ppc64le.go
Outdated
QemuPPC64le: defaultQemuPath, | ||
} | ||
|
||
var kernelParams = []Param{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A lot of these duplicate with kernelParams in qemu_amd64.go, which means we should define a kernelParamsBase in qemu_arch_base.go.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes I agree we should define a base of common params being shared across different architectures.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for updating @nitkon!
Aside from the inline comments, I think it would be good to create atleast minimal qemu_ppc64el_test.go
and qemu_arm64_test.go
files.
Makefile
Outdated
@@ -345,6 +352,7 @@ $(GENERATED_FILES): %: %.in Makefile VERSION | |||
-e "s|@QEMUPATH@|$(QEMUPATH)|g" \ | |||
-e "s|@RUNTIME_NAME@|$(TARGET)|g" \ | |||
-e "s|@MACHINETYPE@|$(MACHINETYPE)|g" \ | |||
-e "s|@KERNELTYPE@|$(KERNELTYPE)|g" \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this line is redundant?
arch/ppc64le-options.mk
Outdated
# SPDX-License-Identifier: Apache-2.0 | ||
# | ||
|
||
# Power Ppc64le settings |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The capitalisation looks a bit odd here - should it be "PPC64le"?
cli/kata-check_arm64.go
Outdated
|
||
// variables rather than consts to allow tests to modify them | ||
var ( | ||
kvmDevice = "/dev/kvm" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be defined in kata-check.go
only.
cli/kata-check_arm64.go
Outdated
|
||
// hostIsVMContainerCapable checks to see if the host is theoretically capable | ||
// of creating a VM container. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: remove blank line.
cli/kata-check_amd64.go
Outdated
return false | ||
} | ||
// hostIsVMContainerCapable checks to see if the host is theoretically capable | ||
// of creating a VM container. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: remove blank line.
virtcontainers/qemu_ppc64le.go
Outdated
QemuPseries: defaultQemuPath, | ||
} | ||
|
||
var kernelParams = []Param{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are all these options really used by ppc64el? If so, I'd suggest moving this to qemu.go
so they can be shared by amd64+ppc64el.
kernelParamsDebug: kernelParamsDebug, | ||
kernelParams: kernelParams, | ||
}, | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function is missing the block the other arches have:
if config.ImagePath != "" {
...
}
In fact, since that block of code should I think be common to all architectures, you could make a new function in qemu.go
so that all the newQemuArch()
functions can call something like:
return handleImagePath(config HypervisorConfig, q qemuArch)
return caps | ||
} | ||
|
||
func (q *qemuPPC64le) bridges(number uint32) []Bridge { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is quite a bit of commonality in the following functions between amd64+ppc64el:
bridges()
memoryTopology()
appendBridges()
I'd say it's "borderline refactoring territory" but wdyt @sboeuf?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ping @sboeuf.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nitkon yes you could factorize more for those functions here. Correct me if I'm wrong but the code for ppc64 is a copy of the implementation for amd64 (for the 3 functions @jodh-intel mentioned). bridges()
is slightly different because of the type itself, but the semantic is the same.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like the only outstanding issue stopping this from landing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jodh-intel : Thanks for pointing it out. Will update my PR accordingly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jodh-intel : @sboeuf :
The code for memoryTopology()
is not exactly the same for ppc64 and x86. The addition being in ppc64le
hostMemoryMb -= (hostMemoryMb % 256)
The code for appendBridges()
has already been refactored.
// appendBridges appends to devices the given bridges
func (q *qemuPPC64le) appendBridges(devices []govmmQemu.Device, bridges []Bridge) []govmmQemu.Device {
return genericAppendBridges(devices, bridges, q.machineType)
}
bridges()
can be refactored furthure.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @nitkon - yes. I think all we really need now is something like the following (untested! :) that the arch-specific qemu functions can call:
func genericMakeBridges(number uint32, bt bridgeType) []Bridge {
var bridges []Bridge
for i := uint32(0); i < number; i++ {
bridges = append(bridges, Bridge{
Type: bt,
ID: fmt.Sprintf("%s-bridge-%d", bt, i),
Address: make(map[uint32]string),
})
}
return bridges
}
func genericMemoryTopology(memoryMb, hostMemoryMb uint64, alignMB uint32) govmmQemu.Memory {
// NVDIMM device needs memory space 1024MB
memoryOffset := 1024
if alignMB > 0 {
hostMemoryMb -= (hostMemoryMb % alignMB)
}
// add 1G memory space for nvdimm device (vm guest image)
memMax := fmt.Sprintf("%dM", hostMemoryMb+uint64(memoryOffset))
mem := fmt.Sprintf("%dM", memoryMb)
memory := govmmQemu.Memory{
Size: mem,
Slots: defaultMemSlots,
MaxMem: memMax,
}
return memory
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jodh-intel : Thnx for review comment. I saw this post updating my PR. If you find my changes acceptable then we can keep them else I shall revert to the way u have suggested it.
Hi @nitkon - please could you add a note when you've updated the branch again so we can try to get this landed as soon as possible? |
Codecov Report
@@ Coverage Diff @@
## master #286 +/- ##
==========================================
+ Coverage 63.74% 63.77% +0.02%
==========================================
Files 87 87
Lines 8731 8749 +18
==========================================
+ Hits 5566 5580 +14
- Misses 2569 2572 +3
- Partials 596 597 +1
Continue to review full report at Codecov.
|
Hi @jodh-intel : I have updated the PR. |
@jodh-intel please take a look |
PSS Measurement: Memory inside container: |
Rebased my PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
const defaultQemuMachineType = QemuPseries | ||
|
||
const defaultQemuMachineOptions = "accel=kvm,usb=off" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
USB is also specified by arm64. I wonder if we should also disable for x86_64 @devimc, @mcastelino, @grahamwhaley?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jodh-intel I don't see that option for x86_64
https://github.com/qemu/qemu/blob/master/include/hw/i386/pc.h
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep - looks like -usb
is required to explicitly enable on x86_64
. But we disable it anyway 😄:
return caps | ||
} | ||
|
||
func (q *qemuPPC64le) bridges(number uint32) []Bridge { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ping @sboeuf.
/cc @WeiZhang555. |
Hi @nitkon - please can you try running the unit tests for this PR on a PPC64el system:
I think you'll find that you need to atleast create a |
@jodh-intel : Thanks for the review. I have updated my PR.
|
PSS Measurement: Memory inside container: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nitkon nice PR, but I have a request about the format. Could you split this PR into 3 distincts commits so that it is easier to review and easier to understand all changes that have been done.
First commit being the factorization of some functions for the purpose of being reused later by ppc64 arch.
Second commit introducing the qemu ppc64 implementation in virtcontainers, and relying on the new factorized functions.
Last commit being the CLI part leveraging the new support for ppc64.
@sboeuf : I have updated my PR as suggested. |
PSS Measurement: Memory inside container: |
nice patch @nitkon !! lgtm 😄 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nitkon this looks better ! Still a few comments/questions not addressed I think.
Also, would be good to factorize the implementation duplication between amd64 and ppc64.
Hi @nitkon - there is still the issue of how we ensure the PPC64el build doesn't break after this PR lands. Can you help the Kata Project in any way with PPC64el CI resources? We recently noticed that the ARM64 build broke as we don't yet have ARM64 CI support (but it's in progress - see #349). We don't want a repeat of that and as such are very keen to ensure that as new architectures are added, our CI can test them all. |
/cc @egernst, @grahamwhaley, @chavafg, @gnawux. |
@jodh-intel : We have ppc64le support in travis-ci.org. So we need to enhance the runtime/.travis.yml file to run on ppc64le as well. |
Hi @nitkon - great to hear! However, please not that we're actually trying to move away from Travis since, atleast for the public service that offers |
PSS Measurement: Memory inside container: |
@nitkon thanks for your work reworking this PR, this LGTM now. |
still... lgtm Thanks @nitkon for all your work, persistence, and patience! 😄 Please feel free to raise a PR for the Travis changes you mentioned to ensure this new architecture continues to pass all the CI tests. |
…d-ns namespace: Add check to make sure PID namespace is not received
This patch enables kata container using
initrd approach on ppc64le architecture.
Fixes #302
Signed-off-by: Nitesh Konkar niteshkonkar@in.ibm.com