Skip to content

[Bug] #UD exception on VMClock IRQ introduced by v1.15.0 #5805

@abarisani

Description

@abarisani

Hi.

I am using our bare metal Go microvm library to launch our example unikernel and I noticed that it was broken by b154577

What I am experiencing since that commit is CPU landing in our invalid opcode handler.

So it seems that the new VMClock GSI (which I presume is 6) is being treated as exception #6 rather than being handled by the IOAPIC correctly.

This might be of course a fault in our code, however note that:

  • with v1.14.3 this doesn't happen, as VMClock is not raising IRQs, but also note that VirtIO GSIs are correctly handled.
  • with qemu, cloud_hypervisor the same IOAPIC and IRQ handling code does not have issues

Am I missing some configuration aspect to map GSI ids correctly?

I am using a very simple configuration:

{
  "boot-source": {
    "kernel_image_path": "example"
  },
  "network-interfaces": [
    {
      "iface_id": "net1",
      "guest_mac": "06:00:AC:10:00:02",
      "host_dev_name": "tap0"
    }
  ],
  "machine-config": {
    "vcpu_count": 1,
    "mem_size_mib": 4096,
    "smt": false,
    "track_dirty_pages": false,
    "huge_pages": "None",
    "gdb_socket_path": "/tmp/gdb.socket"
  },
"drives": [
    {
        "drive_id": "dummy",
        "path_on_host": "/dev/null",
        "is_root_device": false,
        "is_read_only": false
    }
  ]
}

Thanks

Metadata

Metadata

Assignees

Labels

Status: WIPIndicates that an issue is currently being worked on or triaged

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions