Skip to content

[Bug] Only up to 64 devices can be used on aarch64 #4207

Open
@kalyazin

Description

@kalyazin

Describe the bug

It is expected that up to 96 devices can be used on aarch64, however If more than 64 devices are attached to an aarch64 microVM, only first 64 are usable.

To Reproduce

  1. Use an aarch64 machine
  2. Checkout the repro branch
  3. Build Firecracker: ./tools/devtool build
  4. Run the test_attach_maximum_devices test:
./tools/devtool -y test  -- -vv integration_tests/functional/test_max_devices.py::test_attach_maximum_devices

The observed failure is:

integration_tests/functional/test_max_devices.py:36: in test_attach_maximum_devices
    exit_code, _, _ = test_microvm.ssh_iface(i).run("sync")
        _          = ''
        exit_code  = 0
        i          = 63
        test_microvm = <Microvm id=81d12760-4116-4407-9f49-2b3967fbf98a>
        test_microvm_with_api = <Microvm id=81d12760-4116-4407-9f49-2b3967fbf98a>
...
host_tools/network.py:93: in _init_connection
    raise ConnectionError
E   ConnectionError
        _          = ''
        ecode      = 255
        self       = <host_tools.network.SSHConnection object at 0xffff943f6200>

The test creates a rootfs block device and a number of net devices. When it tries to connect the the last one (which is a 65th device in total), it fails.

Expected behaviour

The test should have passed, because according to the aarch64 layout, it should be possible to use up to 96 devices on aarch64.

Environment

  • Firecracker: 27fb303f7f8487bfe6b78db1bc5f6e4b26b456b6 (main)
  • Host kernel: 5.10, guest kernel: 5.10, however it does not seem to matter
  • Rootfs: Firecracker CI Ubuntu 22.04
  • Architecture: aarch64

Additional context

Impact: users cannot use more than 64 devices attached to an aarch64 microVM.

Checks

  • Have you searched the Firecracker Issues database for similar problems?
  • Have you read the existing relevant Firecracker documentation?
  • Are you certain the bug being reported is a Firecracker issue?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Good first issueIndicates a good issue for first-time contributorsPriority: HighIndicates than an issue or pull request should be resolved ahead of issues or pull requests labelledStatus: ParkedIndicates that an issues or pull request will be revisited laterType: BugIndicates an unexpected problem or unintended behavior

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions