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

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions