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