Open
Description
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
- Use an aarch64 machine
- Checkout the repro branch
- Build Firecracker:
./tools/devtool build
- 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?