Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for AWS Nitro instances #1365

Merged
merged 3 commits into from
Jan 11, 2021
Merged

Add support for AWS Nitro instances #1365

merged 3 commits into from
Jan 11, 2021

Conversation

francescolavra
Copy link
Member

This PR adds support for running Nanos on AWS instances based on the Nitro hypervisor. Tested on t3, t3a, c4, c5, c5a, c5d and c5n instances.
Closes #1316, closes #1233.

@francescolavra francescolavra changed the title Feature/nvme Add support for AWS Nitro instances Jan 1, 2021
@sanderssj
Copy link
Collaborator

Looks good to me!

Copy link
Contributor

@wjhun wjhun left a comment

Choose a reason for hiding this comment

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

I didn't follow a lot of the ported ena code, but otherwise everything looks good. Just minor comments.

src/aws/ena/ena.c Outdated Show resolved Hide resolved
src/drivers/nvme.c Outdated Show resolved Hide resolved
src/drivers/nvme.c Show resolved Hide resolved
src/aws/ena/ena.c Outdated Show resolved Hide resolved
An NVM Express controller provides storage to KVM-based AWS
instances (e.g. t3 instances).
Also QEMU implements emulation of NVM Express controllers: the
relevant command line option is
`-device nvme,serial=deadbeef,drive=hd0`.

Closes #1316.
The new function pci_teardown_msix() disables a single MSI-X slot
that had been enabled via pci_setup_msix().
The new function pci_disable_msix() disables MSI-X altogether on a
given PCI device, i.e. undoes what is done by pci_enable_msix().
In addition, pci_enable_msix() has been changed to return the
number of available MSI-X slots.
These new functionalitites will be used by the AWS ENA driver.
This adds network connectivity to AWS Nitro instances (KVM-based).
The code is derived from the Amazon ENA driver for FreeBSD
(https://github.com/amzn/amzn-drivers/blob/master/kernel/fbsd/ena).
Tested on t3, t3a, c4, c5, c5a, c5d and c5n instances.

Closes #1233.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

nvme driver aws ena driver
3 participants