Commit Graph

135 Commits

Author SHA1 Message Date
Julio Montes
ba68012480 kernel: use the maximum number of CPUs supported by KVM
Since we don't know how many CPUs can have the host, we should
use the maximum number of CPUs supported by KVM (240).

255 is the maximum number of CPUs supported in the kernel, but the
maximmum number of CPUs recommended by KVM is 240, if more than 240
CPUs are used, next error will be returned by QEMU

```
Number of hotpluggable cpus requested (255) exceeds the
recommended cpus supported by KVM (240)
```

fixes #922
fixes kata-containers/runtime#2413

Signed-off-by: Julio Montes <julio.montes@intel.com>
2020-01-27 20:31:30 +00:00
Archana Shinde
e0a57b6a08 network: Enable ipv6 config CONFIG_IPV6_MULTIPLE_TABLES
Although CONFIG_IPV6 is enabled, this additional config is
needed so that multiple route tables are used for ipv6.
Without this, the kernel adds routes for "fe80::/64"
with proto kernel in the main table instead of the
local routing table.
This makes the behaviour similar to regular containers.

Fixes #920

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2020-01-24 16:14:22 -08:00
Julio Montes
a95b359861 kernel/configs: enable CONFIG_X86_MPPARSE
Firecracker needs CONFIG_X86_MPPARSE to support `vcpu_count`, otherwise the
amount of cpus wil always be 1.

fixes #901

Signed-off-by: Julio Montes <julio.montes@intel.com>
2020-01-14 16:55:36 +00:00
Jose Carlos Venegas Munoz
687a524a05 Merge pull request #876 from jongwu/dmesg
config: enable printk_time for arm64.
2019-12-23 09:57:13 -06:00
James O. D. Hunt
8488286937 Merge pull request #883 from Pennyzct/LTS_v5.4.3
kernel: Enable new LTS 5.4.3 on AArch64
2019-12-23 08:44:10 +00:00
Penny Zheng
2ef9bbc16a FC: ELF format kernel image unsupported with firecracker on AArch64
The bootloader in firecracker on ARM platform only supports kernel
in Portable Executable(PE) format.
So we need `build-kernel.sh` to provide correct kernel image format
when parameter `hypervisor_target`, `-t`, defined with firecracker.

Fixes: #886

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
2019-12-18 09:44:56 +08:00
Penny Zheng
59dc61df5b kernel: Enable new LTS 5.4.3 on AArch64
Linux has embraced another LTS kernel version v5.4.x.
If we, AArch64, update stable guest kernel version
to v5.4.x, we could get rid of huge chunkes of backport
patches under patches/4.19.x/.
Except following configs are penny-defined turned on/off,
all the other are sort of `built-in` defined or inherited
from v4.19.x.
1. CONFIG_IO_URING = y
This option enables support for the io_uring interface.
2. CONFIG_RODATA_FULL_DEFAULT_ENABLED = n
Apply read-only attributes of VM areas to the linear
alias of the backing pages as well.
3. CONFIG_ARM64_TAGGED_ADDR_ABI = n
When this option is enabled, user applications can opt in to
a relaxed ABI allow virtual tagged addresses to be passed to
system calls as pointer arguments.
4. CONFIG_ARM64_PTR_AUTH = n
Pointer authentication provides instructions for signing and
authenticating pointers against secret keys, which can be used to
mitigate Return Oriented Programming (ROP) and other attacks.

Fixes: #882

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
2019-12-16 17:41:07 +08:00
Jianyong Wu
a407c9291c config: enable printk_time for arm64.
As no printk time enabled for arm64, printk and dmesg will show
without timestamp.
This patch enables printk_time in kernel for arm64.

Fixes: #875
Signed-off-by: Jianyong Wu <jianyong.wu@arm.com>
2019-12-12 23:33:28 +08:00
Julio Montes
bfe65e0dc5 kernel: make get_config_version quiet
`get_config_version` should not log anything because it's used
by functions that print a string as return value, hence its return value
can be tainted, i.e `get_config_version`.

fixes #867

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-12-10 21:28:19 +00:00
Archana Shinde
0dbd00b19e kernel: checkout patched based on kata_version
NEW_VERSION may be unbound whereas kata_version should be defined
following manual release process docs and while using github actions.
Use kata_version instead to checkout correct version of patches.
Check if kata_version is not empty before doing so,
as the release may be triggered for master as well.

Fixes #857

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-12-09 13:02:12 -08:00
Archana Shinde
ff20f2008b release: Checkout right version of kernel patches
Checkout tag for packaging repo based on env variable NEW_VERSION
or kata_version with kata_version taking precedence.
With this, we checkout to the right version of packaging repo before
applying kernel patches.

Fixes #849

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-12-03 18:08:08 -08:00
Archana Shinde
9377c5d5ca release: Fix bug in how version is determined for actions
Althought, we changed the script "gen_versions_txt.sh" to accept a tag
rather than a branch, this change is not sufficient.
This script generates the right version file based on a tag, but
function `get_from_kata_deps` does not use this, and ends up using the
master branch instead. This is because this function looks at an env
variable called $BRANCH and ends up using master branch if the variable
is not defined.

Pass the tag/new version to the build scripts, so that this tag is
passed along to `get_from_kata_dep`.
With this change, the correct version information is consumed by the
build scripts for the various hypervisors and kernel.

Fixes #831

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-12-03 17:56:03 -08:00
Penny Zheng
168709ca62 v4.19.86: patch update for v4.19.86 on AArch64
we need to do patch update for kernel bump to v4.19.86.

Fixes: #806
Depends-on: github.com/kata-containers/runtime#2185

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
2019-12-03 13:29:05 -08:00
Gabriela Cervantes
0d840850ae kernel: Fix that the help is not printed twice
While running the build-kernel.sh script with no arguments, the help is
printed twice. This PR will fix that.

Fixes #433

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
2019-12-03 10:12:38 -06:00
Archana Shinde
ec95961620 kernel: Enable configuration for fips mode.
This will allow us to run a VM in fips mode.
The intention is to check if the host is running in fips mode
and then start a container in fips mode as well.

Fixes #787

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-11-01 15:19:36 -07:00
Jianyong Wu
5c43c968d2 kernel: enable ptp_kvm for arm64
This is a experimental feature for arm64 as linux kernel has
not enable kvm ptp for arm64.
ptp_kvm need co-work from host and guest, so you need add this
patch both to your guest and host. Host kernel version is better
lower than 5.0 and higher than 4.19.
another version of this patch base on kernel v5.3 is under review in kernel upstream, refer to [1]
to see the full info.

[1] https://lkml.org/lkml/2019/8/29/80

Fixes: #692
Signed-off-by: Jianyong Wu jianyong.wu@arm.com
2019-10-08 15:41:00 +08:00
Salvador Fuentes
c350abb3d9 Merge pull request #737 from Pennyzct/FC_SERIAL_PORT_CONFIG
Kernel: Support Firecracker on aarch64
2019-10-01 12:56:43 -05:00
zhanghj.lc
86e75b7ef2 kernel: avoid to download sha256sums.asc file repeatedly
If sha256sums.asc already downloaded, avoid to download again.

Fixes: #729

Signed-off-by: zhanghj.lc <zhanghj.lc@inspur.com>
2019-09-25 07:15:12 -04:00
Penny Zheng
d74a600083 FC: Support serial device on aarch64
Serial device was finally fully supported with firecracker on aarch64,
see details here(https://github.com/firecracker-microvm/firecracker/pull/1233).
A set of kernel configs related with 8250 compatible serial ports
should be turn on.

Fixes: #736

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
Signed-off-by: Haibo Xu <haibo.xu@arm.com>
2019-09-25 13:36:36 +08:00
Penny Zheng
da1b291d64 config: update kernel config on aarch64
Since kernel version updated to v4.19.73, kernel config file should
also been updated accorindly.

Fixes: #736

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
Signed-off-by: Haibo Xu <haibo.xu@arm.com>
2019-09-25 13:36:13 +08:00
Gabriela Cervantes
feb28593f7 kernel: Fix to test locally changes and rename vmlinuz or vmlinux for virtiofs
This will allow to test local changes to the kernel as well it will allow
us to have vmlinuz or vmlinux with virtiofs.

Depends-on: github.com/kata-containers/runtime#2078

Fixes #717

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
2019-09-19 11:33:46 -05:00
Jose Carlos Venegas Munoz
827e85d259 Merge pull request #710 from GabyCT/topic/qemuvirt
kata-deploy: Add support for qemu and kernel with virtio-fs 3.0
2019-09-18 09:45:17 -05:00
Eric Ernst
e164e19ed7 Merge pull request #716 from egernst/readd-overlay
config: re-add support for overlay
2019-09-13 13:25:32 -07:00
GabyCT
a988b7b2d3 Merge pull request #721 from nitkon/typo
kernel: Fix a typo in README
2019-09-13 13:23:36 -05:00
Eric Ernst
8ab7c3dc77 config: blk-dev-throttling
- blk-dev-throttling is recommended for Docker (in docker use case).
Enabling.

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-09-13 11:08:10 -07:00
Eric Ernst
797dd5c16d config: re-add support for docker-in-docker
Overlay and veth support wasn't included when migrating to fragment
based configs. Re-add to fix DinD use case.

Fixes: #715

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-09-13 10:18:00 -07:00
Nitesh Konkar
99ae7c16e8 kernel: Fix a typo in README
Fix a typo in README.

Fixes: #720

Signed-off-by: Nitesh Konkar <niteshkonkar@in.ibm.com>
2019-09-13 21:03:12 +05:30
Mikko Ylinen
0bf4caf482 kernel: enable STACKPROTECTOR configs in security.conf
As per the comments in security.conf, the intention was to
enable STACKPROTECTOR and STACKPROTECTOR_STRONG.

The current config leaves them unset in the final .config
and also prevents other fragments from overriding the setting.

Set both to =y as indicated in the comments.

Signed-off-by: Mikko Ylinen <mikko.ylinen@intel.com>
2019-09-13 15:34:33 +03:00
Gabriela Cervantes
88d2048cba kata-deploy: Add support for qemu and kernel with virtio-fs 3.0
This adds the kata deploy for QEMU and kernel with virtio-fs 3.0

Depends-on: github.com/kata-containers/runtime#2052

Fixes #709

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
2019-09-13 05:04:39 -05:00
Eric Ernst
8e43d9cac1 config: remove unneeded options, annotate what changes in future
common/DAX:
 - ARCH_ENABLE_MEMORY_HOTPLUG: not needed (auto-selected)
 - ARCH_HAS_ZONE_DEVICE: already automatically selected. This is
also removed in future kernels, so let's go ahead and drop.
 - RADIX_TREE_MULTIORDER: already autoselected, and dropped in future
kernels

common/net:
 - NF_NAT_NEEDED, NF_NAT_PROTO_*: these don't exist in newer kernels, as
they are refactored and unecessary in the upstream kernel. Keep them for
now, but consider dropping if we move to newer LTS. These are part of
whitelist of options we expect to be dropped with newer kernels in our
fragment building.
 - NF_NAT_MASQUERADE_IPV4: this is a select, not a tristate. Also, in
the future much of the ipv4/ipv6 nat code is combined, so this config
will not exist in newer kernels. Dropped.
 - INET6_XFRM_MODE_* are not needed on newer kernels. While I'm not
confident they are needed today for Kata, we will just note them and add
to whitelist for options we expect to be dropped with newer kernels in
our fragment building.
 - MAY_USE_DEVLINK: removed in future kernels, and should not be needed
anyway. Dropped.

x86_64/DAX:
 - ARCH_HAS_HMM: should not be needed, and is dropped in future kernels.
Dropped

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-09-06 15:43:49 -07:00
Eric Ernst
aaeadbd526 kernel: drop virtio-fs patches from standard kernel
These will be handled directly from virtio-fs gitlab, which is utilized
when experimental support is requested in kernel build.

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-09-06 15:43:49 -07:00
Eric Ernst
e828fa953c kernel: add whitelist for config options we expect to fail
Experimental kernel is much newer, and many configuration options have
dropped since 4.19. Let's use a whitelist to itemize what we expect to
be dropped in the final config if experimental kernel us utilized.

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-09-06 15:43:49 -07:00
Eric Ernst
b00b0d9e7d kernel: if experimental, pull experimental configs
Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-09-06 15:43:49 -07:00
Eric Ernst
74adb72b22 config: virtio-fs: add as an experimental kernel config
This isn't available in the baseline kernel, necessarily. Only
add these config options if an experimental kernel is being used.

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-09-06 15:43:49 -07:00
Eric Ernst
baa2ef1bbf kernel: add support for building virtio-fs kernel
Adding option `-e` to support experimental flag. When selected, the
kernel for virtio-fs is utilized instead of standard kernel.org.

This is a bit more hack-ish than I'd prefer, sorry.

Fixes: #700

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-09-06 15:43:49 -07:00
Eric Ernst
2b617ed8c7 kernel: auto-indent build-kernel.sh
Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-09-06 15:43:49 -07:00
Nitesh Konkar
515bdc3c3f kernel: enable vsock on ppc64le
Here we bump our kernel version from 4.19.10
to 4.19.67 and enable vsock.

Fixes: #685

Signed-off-by: Nitesh Konkar <niteshkonkar@in.ibm.com>
2019-08-21 14:50:37 +05:30
nitkon
311bd47795 kernel: Update README with right instructions
Fix the instructions in the README guide
when setting up kernel source code. 

Fixes:  #673

Signed-off-by: Nitesh Konkar <niteshkonkar@in.ibm.com>
2019-08-09 22:22:38 +05:30
Julio Montes
620a0ac117 kernel: bump kernel config version
bump kernel config version

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-07-26 21:17:23 +00:00
Julio Montes
364f4251a6 kernel: support firecracker
enable CONFIG_VIRTIO_MMIO and CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES
to support firecracker

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-07-26 21:10:55 +00:00
Julio Montes
d06343bcd8 kernel: support virtiofs
enable VIRTIO_FS and CONFIG_FUSE_FS to support virtiofs

fixes #656

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-07-26 21:10:04 +00:00
Julio Montes
229411a5ae kernel: bump kernel version
bump kernel version to 46

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-07-25 18:13:03 +00:00
Julio Montes
7d1610e8fa kernel: drop x86_64 4.19 config file
Now we are using the fragments, drop the x86_64 4.19 config file
so we default to fragment mode.

Signed-off-by: Graham Whaley <graham.whaley@intel.com>
2019-07-25 18:13:03 +00:00
Graham Whaley
addc10be48 kernel: config: frags: add common and x86 fragments
Add the base common fragments and x86_64 specific fragments
for the 4.19.x kernel.

Signed-off-by: Graham Whaley <graham.whaley@intel.com>
2019-07-25 18:13:03 +00:00
Graham Whaley
d205a07d65 kernel: configs: update README
Embellish the README a bit, and add some details about the
new fragment method.

Signed-off-by: Graham Whaley <graham.whaley@intel.com>
2019-07-25 18:13:03 +00:00
Graham Whaley
0e604bde96 kernel: configs: add kernel fragment support
Add the framework to build kernel config files from trees
of kernel fragments.

If no fragment directory is found for the requested kernel
version and architecture then revert to looking for a whole
prebuilt kernel config file instead.

Fixes: #234

Signed-off-by: Graham Whaley <graham.whaley@intel.com>
2019-07-25 18:13:03 +00:00
Graham Whaley
4e67de847b Merge pull request #584 from nitkon/patch-6
README: Fix a typo in Kernel Readme
2019-07-24 10:15:25 +01:00
Julio Montes
d0c267191c kernel/x86_64: fix make oldconfig
Add missing kernel configs to avoid `make oldconfig` asks or
takes the default value for the missing configs.

fixes #623

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-07-08 19:26:26 +00:00
Nitesh Konkar
edbd23728c README: Fix a typo in Kernel Readme
Fix a typo

Fixes:  #583

Signed-off-by: Nitesh Konkar niteshkonkar@in.ibm.com
2019-07-08 13:57:19 +05:30
Jose Carlos Venegas Munoz
6ce2f0adc4 kernel: bump config
Directory modified ...

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2019-06-28 23:47:32 -05:00