NACK: [SRU][N:aws/Q:aws/R:aws][PATCH 0/1] UBUNTU: [Config] Change ENA to be a built in driver on AWS

Magali Lemes magali.lemes.do.sacramento at canonical.com
Thu Apr 23 12:48:07 UTC 2026


On 4/6/26 11:04, Leah Goldberg wrote:

> BugLink: https://bugs.launchpad.net/bugs/2144694
>
> [ Impact ]
>
> * On AWS Minimal EC2 instances, cloud-init may fail to detect the
>    correct datasource during the local init stage if the kernel hasn’t
>    initialized the NIC in time. This can prevent metadata fetching and
>    block SSH on first boot.
>
> * Users of these instances may be unable to log in immediately after first
>    boot, breaking automated deployments, cloud-init-based provisioning, and
>    scripts relying on metadata.
>
> * Including `ENA_ETHERNET` as built-in on the AWS kernel would minimize the
>    race condition between cloud-init local and the kernel initilizing the NIC,
>    allowing the NIC to come up early enough for cloud-init local to be able to
>    successfully detect the correct datasource.
>
> [ Test Plan ]
>
>   * 1. Launch an Ubuntu 24.04 Noble Minimal EC2 AMI. Use an EC2 instance type
>        where network interfaces may not be immediately available at early boot
>        (e.g.hpc7a.96xlarge reproduces consistently).
>
>   * 2. Wait several minutes after the instance reaches running, then attempt to
>        SSH into the instance. You will see this error:
>        Permission denied (publickey).
>
>   * 3. Apply the patch with ENA_ETHERNET built-in.
>
>   * 4. Clean cloud-init logs with
>        `sudo cloud-init clean --logs --config all`
>
>   * 5. Reboot the machine and check the following:
>
>        * SSH works immediately
>
>        * Check the journal logs with the following command:
>          journalctl -b 0 -o short-monotonic |
>          grep -E "cloud-init|ena|enp34s0|wait-online"
>
>        * In the journal logs, the NIC should come up before
>          cloud-init local finishes running
>
>        * In the journal logs, the NIC should have LINK UP,
>          gained carrier, and DCHP aquired before Net device
>          info is printed
>
>        * `cloud-init status --long` should show the
>           correct datasource (DataSourceEc2Local)
>
> [ Where problems could occur ]
>
>   * Making `ENA_ETHERNET` does not address the underlying race condition
>     between cloud-init local and the kernel finishing NIC initialization.
>     It simply minimizes it enough to "fix" the issue as a temporary workaround.
>
>   * Problems may occur if `ENA_ETHERNET` needs to support features
>     that rely on loadable drivers, such as RDMA.
>
> [ Other Info ]
>
>   * See related bug in cloud-init:
>     https://github.com/canonical/cloud-init/issues/6697
>
>   * We can try and revisit modularization once the cloud-init first-boot races
>     are fully resolved.
>
> Leah Goldberg (1):
>    Enable ENA_ETHERNET as built-in to avoid race
>
>   debian.master/config/annotations | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)


v2 in the mailing list




More information about the kernel-team mailing list