On 3/6/2024 12:24 PM, shaib...@amazon.com wrote:
> From: Shai Brandes <shaib...@amazon.com>
> 
> ENA device will send asynchronous notifications to the
> driver in order to notify users about sub-optimal configurations
> and refer them to public AWS documentation for further action.
> 

Hi Shai,

This is an interesting feature, I am curious, is there more public
detail provided by AWS on how it detects sub-optimal configuration and
what are the possible types of the notifications?

> Signed-off-by: Shai Brandes <shaib...@amazon.com>
> Reviewed-by: Amit Bernstein <amitb...@amazon.com>
> ---
>  doc/guides/rel_notes/release_24_03.rst        |  1 +
>  .../net/ena/base/ena_defs/ena_admin_defs.h    | 11 +++++++-
>  drivers/net/ena/ena_ethdev.c                  | 26 +++++++++++++++++--
>  3 files changed, 35 insertions(+), 3 deletions(-)
> 
> diff --git a/doc/guides/rel_notes/release_24_03.rst 
> b/doc/guides/rel_notes/release_24_03.rst
> index fb66d67d32..f47073c7dc 100644
> --- a/doc/guides/rel_notes/release_24_03.rst
> +++ b/doc/guides/rel_notes/release_24_03.rst
> @@ -104,6 +104,7 @@ New Features
>  * **Updated Amazon ena (Elastic Network Adapter) net driver.**
>  
>    * Removed the reporting of `rx_overruns` errors from xstats and instead 
> updated `imissed` stat with its value.
> +  * Added support for sub-optimal configuration notifications from the 
> device.
>  
>  * **Updated Atomic Rules' Arkville driver.**
>  
> diff --git a/drivers/net/ena/base/ena_defs/ena_admin_defs.h 
> b/drivers/net/ena/base/ena_defs/ena_admin_defs.h
> index fa43e22918..4172916551 100644
> --- a/drivers/net/ena/base/ena_defs/ena_admin_defs.h
> +++ b/drivers/net/ena/base/ena_defs/ena_admin_defs.h
> @@ -1214,7 +1214,8 @@ enum ena_admin_aenq_group {
>       ENA_ADMIN_NOTIFICATION                      = 3,
>       ENA_ADMIN_KEEP_ALIVE                        = 4,
>       ENA_ADMIN_REFRESH_CAPABILITIES              = 5,
> -     ENA_ADMIN_AENQ_GROUPS_NUM                   = 6,
> +     ENA_ADMIN_CONF_NOTIFICATIONS                = 6,
> +     ENA_ADMIN_AENQ_GROUPS_NUM                   = 7,
>  };
>  
>  enum ena_admin_aenq_notification_syndrome {
> @@ -1251,6 +1252,14 @@ struct ena_admin_aenq_keep_alive_desc {
>       uint32_t rx_overruns_high;
>  };
>  
> +struct ena_admin_aenq_conf_notifications_desc {
> +     struct ena_admin_aenq_common_desc aenq_common_desc;
> +
> +     uint64_t notifications_bitmap;
> +
> +     uint64_t reserved;
> +};
> +
>  struct ena_admin_ena_mmio_req_read_less_resp {
>       uint16_t req_id;
>  
> diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
> index d3f395a832..3157237c0d 100644
> --- a/drivers/net/ena/ena_ethdev.c
> +++ b/drivers/net/ena/ena_ethdev.c
> @@ -36,6 +36,10 @@
>  
>  #define ENA_MIN_RING_DESC    128
>  
> +#define BITS_PER_BYTE 8
> +
> +#define BITS_PER_TYPE(type) (sizeof(type) * BITS_PER_BYTE)
> +
>

'CHAR_BIT' macro can be used here, but I can see there are multiple
drivers defining similar macros.So no need to update this patch, but to
record that this is something to address DPDK wide.

If ena team volunteers to tackle this update, it is welcomed ;)

Reply via email to