Skip to content

kernel-uvm-micro: Update config to be able to start kata pod#16415

Merged
Redent0r merged 1 commit into3.0-devfrom
saul/minimal-micro-config
Apr 13, 2026
Merged

kernel-uvm-micro: Update config to be able to start kata pod#16415
Redent0r merged 1 commit into3.0-devfrom
saul/minimal-micro-config

Conversation

@Redent0r
Copy link
Copy Markdown
Contributor

@Redent0r Redent0r commented Apr 1, 2026

This was a minimal config I arrived with by trying to start a kata pod.

Steps:

  • see error when starting kata pod: ["Error from API","The VM could not boot","Kernel lacks PVH header"]"

  • enable CONFIG_PVH and config dependencies needed to enable that: CONFIG_HAVE_STATIC_CALL=y
    CONFIG_HAVE_STATIC_CALL_INLINE=y
    CONFIG_HYPERVISOR_GUEST=y
    CONFIG_PARAVIRT=y
    CONFIG_PARAVIRT_SPINLOCKS=y
    CONFIG_X86_HV_CALLBACK_VECTOR=y
    CONFIG_KVM_GUEST=y
    CONFIG_ARCH_CPUIDLE_HALTPOLL=y
    CONFIG_PVH=y

  • see error when booting UVM manually: VFS: Cannot open root device "/dev/pmem0p1" or unknown-block(0,0): error -19 Please append a correct "root=" boot option; here are the available partitions: List of all bdev filesystems:
    fuseblk

  • enable configs related to pmem: scripts/config --file .config
    -e LIBNVDIMM \ -e BLK_DEV_PMEM \ -e DAX \ -e EXT4_FS \ -e JBD2 \ -e FS_MBCACHE \ -e PARTITION_ADVANCED \ -e MSDOS_PARTITION \ -e EFI_PARTITION \ -e VIRTIO_PMEM

Now it boots manually but not with kata.

  • see error when starting kata pod: level=error msg="Cannot start VM" error="rpc error: code = Internal desc = setup persistent IPC namespace\n\nCaused by:\n No such file or directory (os error 2)"
  • enable configs related to IPC:
    scripts/config --file .config
    -e SYSVIPC
    -e IPC_NS
    -e POSIX_MQUEUE

Enabling these configs grew vmlinux.bin form 16M to 18M (ls -lh)

We probably don't need all of these to achieve the goal, but we can trim from here

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

  • The toolchain has been rebuilt successfully (or no changes were made to it)
  • The toolchain/worker package manifests are up-to-date
  • Any updated packages successfully build (or no packages were changed)
  • Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
  • Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
  • All package sources are available
  • cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
  • LICENSE-MAP files are up-to-date (./LICENSES-AND-NOTICES/SPECS/data/licenses.json, ./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md, ./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)
  • All source files have up-to-date hashes in the *.signatures.json files
  • sudo make go-tidy-all and sudo make go-test-coverage pass
  • Documentation has been updated to match any changes to the build system
  • Ready to merge

Summary

What does the PR accomplish, why was it needed?

kernel-uvm-micro: Update config to be able to start kata pod

Change Log
  • kernel-uvm-micro
Does this affect the toolchain?

NO

Test Methodology

@Redent0r Redent0r force-pushed the saul/minimal-micro-config branch from 37b3132 to d2a37cf Compare April 1, 2026 23:59
@microsoft-github-policy-service microsoft-github-policy-service Bot added specs-extended PR to fix SPECS-EXTENDED 3.0-dev PRs Destined for AzureLinux 3.0 labels Apr 1, 2026
@Redent0r
Copy link
Copy Markdown
Contributor Author

Redent0r commented Apr 2, 2026

todo: test full kata pod bring up without pmem configs enabled (pmem support should not be needed)

WIP: This was a minimal config I arrived with by trying to start a kata pod.

Roughly:
- see error when starting kata pod: [\"Error from API\",\"The VM could not boot\",\"Kernel lacks PVH header\"]"
- enable CONFIG_PVH and config dependencies needed to enable that:
CONFIG_HAVE_STATIC_CALL=y
CONFIG_HAVE_STATIC_CALL_INLINE=y
CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
CONFIG_PARAVIRT_SPINLOCKS=y
CONFIG_X86_HV_CALLBACK_VECTOR=y
CONFIG_KVM_GUEST=y
CONFIG_ARCH_CPUIDLE_HALTPOLL=y
CONFIG_PVH=y

- see error when booting UVM manually:
VFS: Cannot open root device "/dev/pmem0p1" or unknown-block(0,0): error -19
Please append a correct "root=" boot option; here are the available partitions:
List of all bdev filesystems:
fuseblk

- enable configs related to pmem:
scripts/config --file .config \
  -e LIBNVDIMM \
  -e BLK_DEV_PMEM \
  -e DAX \
  -e EXT4_FS \
  -e JBD2 \
  -e FS_MBCACHE \
  -e PARTITION_ADVANCED \
  -e MSDOS_PARTITION \
  -e EFI_PARTITION \
  -e VIRTIO_PMEM

Now it boots manually but not with kata.

- see error when starting kata pod: level=error msg="Cannot start VM" error="rpc error: code = Internal desc = setup persistent IPC namespace\n\nCaused by:\n    No such file or directory (os error 2)"
- enable configs related to IPC:
scripts/config --file .config \
  -e SYSVIPC \
  -e IPC_NS \
  -e POSIX_MQUEUE

kata pod now boots successfully.

Enabling these configs grew vmlinux.bin form 16M to 18M (ls -lh)

We probably don't need all of these to achieve the goal, but we can trim from here/

Signed-off-by: Saul Paredes <saulparedes@microsoft.com>
@Redent0r Redent0r force-pushed the saul/minimal-micro-config branch from d2a37cf to 2ed3828 Compare April 13, 2026 18:12
@Redent0r Redent0r marked this pull request as ready for review April 13, 2026 18:14
@Redent0r Redent0r requested a review from a team as a code owner April 13, 2026 18:14
CONFIG_PARAVIRT=y
CONFIG_X86_HV_CALLBACK_VECTOR=y
# CONFIG_XEN is not set
CONFIG_KVM_GUEST=y
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Highly doubt this is needed.

# CONFIG_BINFMT_MISC is not set
# CONFIG_COREDUMP is not set
CONFIG_COREDUMP=y
# end of Executable file formats
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would argue we can remove this coredump config too

# CONFIG_NET_EMATCH_META is not set
# CONFIG_NET_EMATCH_TEXT is not set
# CONFIG_NET_CLS_ACT is not set
# CONFIG_NET_SCH_FIFO is not set
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My understanding is that if you don't specify those as not set, they may be added automatically.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the bb passed and this config check ran https://github.com/microsoft/azurelinux/blob/3.0/SPECS-EXTENDED/kernel-uvm-micro/kernel-uvm-micro.spec#L112 , so no new config should have been added automatically

Copy link
Copy Markdown
Contributor

@romoh romoh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can merge and review comments in a subsequent iteration

@Redent0r Redent0r merged commit e98af8e into 3.0-dev Apr 13, 2026
28 of 31 checks passed
@Redent0r Redent0r deleted the saul/minimal-micro-config branch April 13, 2026 23:37
archana25-ms pushed a commit to azurelinux-security/azurelinux that referenced this pull request Apr 17, 2026
…ft#16415)

Signed-off-by: Saul Paredes <saulparedes@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3.0-dev PRs Destined for AzureLinux 3.0 Packaging specs-extended PR to fix SPECS-EXTENDED

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants