mbox series

[v3,00/22] net/ena: update ENA PMD to v2.3.0

Message ID 20210506142526.28245-1-mk@semihalf.com (mailing list archive)
Headers show
Series net/ena: update ENA PMD to v2.3.0 | expand

Message

Michal Krawczyk May 6, 2021, 2:25 p.m. UTC
Hi,

this version updates the driver to version 2.3.0, which fixes multiple
bugs, contains part of the work on making the ENA PMD fully MP aware, and
also updates HAL to the latest version.

More detailed list of changes:
  * memcpy mapping to the dpdk-optimized version.
  * ena_com (HAL) update to the latest version.
  * Bug fixes for the large LLQ headers and devargs parsing.
  * Mbuf RSS hash presence indication.
  * Bug fix for the default ring size.
  * Various fixes for the SMP mode.

v3:
* Fix build of the PMD with the debug flags enabled.
* Fix typo in the commit log of the version upgrade patch.

v2:
* Fix nested declaration of the rte_memcpy on arm64 architecture.

Amit Bernstein (1):
  net/ena/base: adjust changes to lastest ena-com

Igor Chauskin (2):
  net/ena: switch memcpy to dpdk-optimized version
  net/ena: fix parsing of large_llq_hdr argument

Michal Krawczyk (12):
  net/ena/base: unify arg names for the functions
  net/ena/base: add dev arg to the logging macros
  net/ena/base: typos, style and comments improvements
  net/ena/base: fix issues from the static code scan
  net/ena/base: destroy multiple "wait events"
  net/ena/base: remove indir table from ENA feat ctx
  net/ena/base: remove mutable RSS from the host info
  net/ena/base: update generation date and commit
  net/ena/base: use rte_prefetch0_write
  net/ena: terminate devargs allowed keys with NULL
  net/ena: indicate Rx RSS hash presence
  net/ena: update version to v2.3.0

Stanislaw Kardach (7):
  net/ena: remove endian swap functions
  net/ena: handle spurious wakeups in ENA_WAIT_EVENT
  net/ena: support SMP for mz alloc counter
  net/ena: move default RSS key to shared mem
  net/ena: make ethdev references smp safe
  net/ena: disable dev_ops not supported in SMP
  net/ena: report default ring size

 doc/guides/rel_notes/release_21_05.rst        |  13 +
 drivers/net/ena/base/ena_com.c                | 379 +++++++++---------
 drivers/net/ena/base/ena_com.h                |  24 +-
 .../net/ena/base/ena_defs/ena_admin_defs.h    |  98 ++---
 drivers/net/ena/base/ena_defs/ena_gen_info.h  |   4 +-
 drivers/net/ena/base/ena_eth_com.c            |  94 +++--
 drivers/net/ena/base/ena_eth_com.h            |  17 +-
 drivers/net/ena/base/ena_plat_dpdk.h          | 324 ++++++++-------
 drivers/net/ena/ena_ethdev.c                  | 156 ++++---
 drivers/net/ena/ena_ethdev.h                  |  14 +-
 drivers/net/ena/ena_platform.h                |  12 -
 11 files changed, 636 insertions(+), 499 deletions(-)

Comments

Ferruh Yigit May 7, 2021, 2:59 p.m. UTC | #1
On 5/6/2021 3:25 PM, Michal Krawczyk wrote:
> Hi,
> 
> this version updates the driver to version 2.3.0, which fixes multiple
> bugs, contains part of the work on making the ENA PMD fully MP aware, and
> also updates HAL to the latest version.
> 
> More detailed list of changes:
>   * memcpy mapping to the dpdk-optimized version.
>   * ena_com (HAL) update to the latest version.
>   * Bug fixes for the large LLQ headers and devargs parsing.
>   * Mbuf RSS hash presence indication.
>   * Bug fix for the default ring size.
>   * Various fixes for the SMP mode.
> 
> v3:
> * Fix build of the PMD with the debug flags enabled.
> * Fix typo in the commit log of the version upgrade patch.
> 
> v2:
> * Fix nested declaration of the rte_memcpy on arm64 architecture.
> 
> Amit Bernstein (1):
>   net/ena/base: adjust changes to lastest ena-com
> 
> Igor Chauskin (2):
>   net/ena: switch memcpy to dpdk-optimized version
>   net/ena: fix parsing of large_llq_hdr argument
> 
> Michal Krawczyk (12):
>   net/ena/base: unify arg names for the functions
>   net/ena/base: add dev arg to the logging macros
>   net/ena/base: typos, style and comments improvements
>   net/ena/base: fix issues from the static code scan
>   net/ena/base: destroy multiple "wait events"
>   net/ena/base: remove indir table from ENA feat ctx
>   net/ena/base: remove mutable RSS from the host info
>   net/ena/base: update generation date and commit
>   net/ena/base: use rte_prefetch0_write
>   net/ena: terminate devargs allowed keys with NULL
>   net/ena: indicate Rx RSS hash presence
>   net/ena: update version to v2.3.0
> 
> Stanislaw Kardach (7):
>   net/ena: remove endian swap functions
>   net/ena: handle spurious wakeups in ENA_WAIT_EVENT
>   net/ena: support SMP for mz alloc counter
>   net/ena: move default RSS key to shared mem
>   net/ena: make ethdev references smp safe
>   net/ena: disable dev_ops not supported in SMP
>   net/ena: report default ring size
> 

Hi Michal,

There are some checkpatch and check-git-log.sh [1] warnings, can you please
check them?


You can see checkpatch warnings from patchwork:
https://patches.dpdk.org/project/dpdk/list/?series=16861
The ones with yellow marker in the warning column.

Additionally I am getting following checkpatch warning, that is not seen in CI:
### net/ena/base: add dev arg to the logging macros



WARNING:UNNECESSARY_MODIFIER: Integer promotion: Using 'h' in '%hu' is
unnecessary
#331: FILE: drivers/net/ena/base/ena_com.c:861:

+               ena_trc_err(ena_dev, "Reading reg failed for timeout. expected:
req id[%hu] offset[%hu] actual: req id[%hu] offset[%hu]\n",
                            mmio_read->seq_num,

                            offset,

                            read_resp->req_id,

@@ -854,7 +868,7 @@ static u32 ena_com_reg_bar_read32(struct ena_com_dev
*ena_dev, u16 offset)



[1]
./devtools/check-git-log.sh -22
Ferruh Yigit May 7, 2021, 3:07 p.m. UTC | #2
On 5/7/2021 3:59 PM, Ferruh Yigit wrote:
> On 5/6/2021 3:25 PM, Michal Krawczyk wrote:
>> Hi,
>>
>> this version updates the driver to version 2.3.0, which fixes multiple
>> bugs, contains part of the work on making the ENA PMD fully MP aware, and
>> also updates HAL to the latest version.
>>
>> More detailed list of changes:
>>   * memcpy mapping to the dpdk-optimized version.
>>   * ena_com (HAL) update to the latest version.
>>   * Bug fixes for the large LLQ headers and devargs parsing.
>>   * Mbuf RSS hash presence indication.
>>   * Bug fix for the default ring size.
>>   * Various fixes for the SMP mode.
>>
>> v3:
>> * Fix build of the PMD with the debug flags enabled.
>> * Fix typo in the commit log of the version upgrade patch.
>>
>> v2:
>> * Fix nested declaration of the rte_memcpy on arm64 architecture.
>>
>> Amit Bernstein (1):
>>   net/ena/base: adjust changes to lastest ena-com
>>
>> Igor Chauskin (2):
>>   net/ena: switch memcpy to dpdk-optimized version
>>   net/ena: fix parsing of large_llq_hdr argument
>>
>> Michal Krawczyk (12):
>>   net/ena/base: unify arg names for the functions
>>   net/ena/base: add dev arg to the logging macros
>>   net/ena/base: typos, style and comments improvements
>>   net/ena/base: fix issues from the static code scan
>>   net/ena/base: destroy multiple "wait events"
>>   net/ena/base: remove indir table from ENA feat ctx
>>   net/ena/base: remove mutable RSS from the host info
>>   net/ena/base: update generation date and commit
>>   net/ena/base: use rte_prefetch0_write
>>   net/ena: terminate devargs allowed keys with NULL
>>   net/ena: indicate Rx RSS hash presence
>>   net/ena: update version to v2.3.0
>>
>> Stanislaw Kardach (7):
>>   net/ena: remove endian swap functions
>>   net/ena: handle spurious wakeups in ENA_WAIT_EVENT
>>   net/ena: support SMP for mz alloc counter
>>   net/ena: move default RSS key to shared mem
>>   net/ena: make ethdev references smp safe
>>   net/ena: disable dev_ops not supported in SMP
>>   net/ena: report default ring size
>>
> 
> Hi Michal,
> 
> There are some checkpatch and check-git-log.sh [1] warnings, can you please
> check them?
> 
> 
> You can see checkpatch warnings from patchwork:
> https://patches.dpdk.org/project/dpdk/list/?series=16861
> The ones with yellow marker in the warning column.
> 
> Additionally I am getting following checkpatch warning, that is not seen in CI:

This must be because of the script version difference, cc'e Thomas, David &
Aaron for it.

> ### net/ena/base: add dev arg to the logging macros
> 
> 
> 
> WARNING:UNNECESSARY_MODIFIER: Integer promotion: Using 'h' in '%hu' is
> unnecessary
> #331: FILE: drivers/net/ena/base/ena_com.c:861:
> 
> +               ena_trc_err(ena_dev, "Reading reg failed for timeout. expected:
> req id[%hu] offset[%hu] actual: req id[%hu] offset[%hu]\n",
>                             mmio_read->seq_num,
> 
>                             offset,
> 
>                             read_resp->req_id,
> 
> @@ -854,7 +868,7 @@ static u32 ena_com_reg_bar_read32(struct ena_com_dev
> *ena_dev, u16 offset)
> 
> 
> 
> [1]
> ./devtools/check-git-log.sh -22
>
Ferruh Yigit May 7, 2021, 3:52 p.m. UTC | #3
On 5/6/2021 3:25 PM, Michal Krawczyk wrote:
> Hi,
> 
> this version updates the driver to version 2.3.0, which fixes multiple
> bugs, contains part of the work on making the ENA PMD fully MP aware, and
> also updates HAL to the latest version.
> 
> More detailed list of changes:
>   * memcpy mapping to the dpdk-optimized version.
>   * ena_com (HAL) update to the latest version.
>   * Bug fixes for the large LLQ headers and devargs parsing.
>   * Mbuf RSS hash presence indication.
>   * Bug fix for the default ring size.
>   * Various fixes for the SMP mode.
> 

Hi Michal,

I want to confirm if this set is for this release or for v21.08.

Since it is sent late, after -rc1, getting the series for the -rc3 won't give
you any time to test it properly or fix any new found issues before release.

My suggestion is to wait for next release, but can you please confirm if you
want to get the risk and get the patch for this release or wait for v21.08?

Thanks,
ferruh
Michal Krawczyk May 9, 2021, 2:15 p.m. UTC | #4
pt., 7 maj 2021 o 17:52 Ferruh Yigit <ferruh.yigit@intel.com> napisał(a):
>
> On 5/6/2021 3:25 PM, Michal Krawczyk wrote:
> > Hi,
> >
> > this version updates the driver to version 2.3.0, which fixes multiple
> > bugs, contains part of the work on making the ENA PMD fully MP aware, and
> > also updates HAL to the latest version.
> >
> > More detailed list of changes:
> >   * memcpy mapping to the dpdk-optimized version.
> >   * ena_com (HAL) update to the latest version.
> >   * Bug fixes for the large LLQ headers and devargs parsing.
> >   * Mbuf RSS hash presence indication.
> >   * Bug fix for the default ring size.
> >   * Various fixes for the SMP mode.
> >
>
> Hi Michal,
>
> I want to confirm if this set is for this release or for v21.08.
>
> Since it is sent late, after -rc1, getting the series for the -rc3 won't give
> you any time to test it properly or fix any new found issues before release.
>
> My suggestion is to wait for next release, but can you please confirm if you
> want to get the risk and get the patch for this release or wait for v21.08?

Hi Ferruh,

as this ENA release mainly introduces HAL upgrade and some bug fixes,
we would like to take a risk and get the patches for this release if
you're ok with that. Of course we can postpone some changes to the
next release if needed, but although there are multiple patches, most
of them are not the big ones (and there are no new features).

Thanks,
Michal

>
> Thanks,
> ferruh
Michal Krawczyk May 10, 2021, 12:02 p.m. UTC | #5
pt., 7 maj 2021 o 16:59 Ferruh Yigit <ferruh.yigit@intel.com> napisał(a):
>
> On 5/6/2021 3:25 PM, Michal Krawczyk wrote:
> > Hi,
> >
> > this version updates the driver to version 2.3.0, which fixes multiple
> > bugs, contains part of the work on making the ENA PMD fully MP aware, and
> > also updates HAL to the latest version.
> >
> > More detailed list of changes:
> >   * memcpy mapping to the dpdk-optimized version.
> >   * ena_com (HAL) update to the latest version.
> >   * Bug fixes for the large LLQ headers and devargs parsing.
> >   * Mbuf RSS hash presence indication.
> >   * Bug fix for the default ring size.
> >   * Various fixes for the SMP mode.
> >
> > v3:
> > * Fix build of the PMD with the debug flags enabled.
> > * Fix typo in the commit log of the version upgrade patch.
> >
> > v2:
> > * Fix nested declaration of the rte_memcpy on arm64 architecture.
> >
> > Amit Bernstein (1):
> >   net/ena/base: adjust changes to lastest ena-com
> >
> > Igor Chauskin (2):
> >   net/ena: switch memcpy to dpdk-optimized version
> >   net/ena: fix parsing of large_llq_hdr argument
> >
> > Michal Krawczyk (12):
> >   net/ena/base: unify arg names for the functions
> >   net/ena/base: add dev arg to the logging macros
> >   net/ena/base: typos, style and comments improvements
> >   net/ena/base: fix issues from the static code scan
> >   net/ena/base: destroy multiple "wait events"
> >   net/ena/base: remove indir table from ENA feat ctx
> >   net/ena/base: remove mutable RSS from the host info
> >   net/ena/base: update generation date and commit
> >   net/ena/base: use rte_prefetch0_write
> >   net/ena: terminate devargs allowed keys with NULL
> >   net/ena: indicate Rx RSS hash presence
> >   net/ena: update version to v2.3.0
> >
> > Stanislaw Kardach (7):
> >   net/ena: remove endian swap functions
> >   net/ena: handle spurious wakeups in ENA_WAIT_EVENT
> >   net/ena: support SMP for mz alloc counter
> >   net/ena: move default RSS key to shared mem
> >   net/ena: make ethdev references smp safe
> >   net/ena: disable dev_ops not supported in SMP
> >   net/ena: report default ring size
> >
>
> Hi Michal,
>
> There are some checkpatch and check-git-log.sh [1] warnings, can you please
> check them?
>

Hi Ferruh,

sure, I'll check them all and fix whatever is possible. The problem is
with some of the HAL patches, which are just touching some lines on
which the checkpatch returns a warning. Many of them aren't related to
those patches, so I don't think we should fix them as part of those
commits (like the one you listed below, the following patch just adds
ena_dev as an extra input argument). Please let me know what you think
about that.

Thanks,
Michal

>
> You can see checkpatch warnings from patchwork:
> https://patches.dpdk.org/project/dpdk/list/?series=16861
> The ones with yellow marker in the warning column.
>
> Additionally I am getting following checkpatch warning, that is not seen in CI:
> ### net/ena/base: add dev arg to the logging macros
>
>
>
> WARNING:UNNECESSARY_MODIFIER: Integer promotion: Using 'h' in '%hu' is
> unnecessary
> #331: FILE: drivers/net/ena/base/ena_com.c:861:
>
> +               ena_trc_err(ena_dev, "Reading reg failed for timeout. expected:
> req id[%hu] offset[%hu] actual: req id[%hu] offset[%hu]\n",
>                             mmio_read->seq_num,
>
>                             offset,
>
>                             read_resp->req_id,
>
> @@ -854,7 +868,7 @@ static u32 ena_com_reg_bar_read32(struct ena_com_dev
> *ena_dev, u16 offset)
>
>
>
> [1]
> ./devtools/check-git-log.sh -22
Ferruh Yigit May 10, 2021, 12:27 p.m. UTC | #6
On 5/10/2021 1:02 PM, Michał Krawczyk wrote:
> pt., 7 maj 2021 o 16:59 Ferruh Yigit <ferruh.yigit@intel.com> napisał(a):
>>
>> On 5/6/2021 3:25 PM, Michal Krawczyk wrote:
>>> Hi,
>>>
>>> this version updates the driver to version 2.3.0, which fixes multiple
>>> bugs, contains part of the work on making the ENA PMD fully MP aware, and
>>> also updates HAL to the latest version.
>>>
>>> More detailed list of changes:
>>>   * memcpy mapping to the dpdk-optimized version.
>>>   * ena_com (HAL) update to the latest version.
>>>   * Bug fixes for the large LLQ headers and devargs parsing.
>>>   * Mbuf RSS hash presence indication.
>>>   * Bug fix for the default ring size.
>>>   * Various fixes for the SMP mode.
>>>
>>> v3:
>>> * Fix build of the PMD with the debug flags enabled.
>>> * Fix typo in the commit log of the version upgrade patch.
>>>
>>> v2:
>>> * Fix nested declaration of the rte_memcpy on arm64 architecture.
>>>
>>> Amit Bernstein (1):
>>>   net/ena/base: adjust changes to lastest ena-com
>>>
>>> Igor Chauskin (2):
>>>   net/ena: switch memcpy to dpdk-optimized version
>>>   net/ena: fix parsing of large_llq_hdr argument
>>>
>>> Michal Krawczyk (12):
>>>   net/ena/base: unify arg names for the functions
>>>   net/ena/base: add dev arg to the logging macros
>>>   net/ena/base: typos, style and comments improvements
>>>   net/ena/base: fix issues from the static code scan
>>>   net/ena/base: destroy multiple "wait events"
>>>   net/ena/base: remove indir table from ENA feat ctx
>>>   net/ena/base: remove mutable RSS from the host info
>>>   net/ena/base: update generation date and commit
>>>   net/ena/base: use rte_prefetch0_write
>>>   net/ena: terminate devargs allowed keys with NULL
>>>   net/ena: indicate Rx RSS hash presence
>>>   net/ena: update version to v2.3.0
>>>
>>> Stanislaw Kardach (7):
>>>   net/ena: remove endian swap functions
>>>   net/ena: handle spurious wakeups in ENA_WAIT_EVENT
>>>   net/ena: support SMP for mz alloc counter
>>>   net/ena: move default RSS key to shared mem
>>>   net/ena: make ethdev references smp safe
>>>   net/ena: disable dev_ops not supported in SMP
>>>   net/ena: report default ring size
>>>
>>
>> Hi Michal,
>>
>> There are some checkpatch and check-git-log.sh [1] warnings, can you please
>> check them?
>>
> 
> Hi Ferruh,
> 
> sure, I'll check them all and fix whatever is possible. The problem is
> with some of the HAL patches, which are just touching some lines on
> which the checkpatch returns a warning. Many of them aren't related to
> those patches, so I don't think we should fix them as part of those
> commits (like the one you listed below, the following patch just adds
> ena_dev as an extra input argument). Please let me know what you think
> about that.
> 

Hi Michal,

For the new code I think expectation is clear that it should fully comply the
coding convention, but for the base code we are more flexible, since it is
shared I understand that the small fixes may cause more maintenance cost.

Please try to fix as much as possible, at least please fix the obviously wrong
ones and fix the ones like below with best effort.

Thanks,
ferruh

> Thanks,
> Michal
> 
>>
>> You can see checkpatch warnings from patchwork:
>> https://patches.dpdk.org/project/dpdk/list/?series=16861
>> The ones with yellow marker in the warning column.
>>
>> Additionally I am getting following checkpatch warning, that is not seen in CI:
>> ### net/ena/base: add dev arg to the logging macros
>>
>>
>>
>> WARNING:UNNECESSARY_MODIFIER: Integer promotion: Using 'h' in '%hu' is
>> unnecessary
>> #331: FILE: drivers/net/ena/base/ena_com.c:861:
>>
>> +               ena_trc_err(ena_dev, "Reading reg failed for timeout. expected:
>> req id[%hu] offset[%hu] actual: req id[%hu] offset[%hu]\n",
>>                             mmio_read->seq_num,
>>
>>                             offset,
>>
>>                             read_resp->req_id,
>>
>> @@ -854,7 +868,7 @@ static u32 ena_com_reg_bar_read32(struct ena_com_dev
>> *ena_dev, u16 offset)
>>
>>
>>
>> [1]
>> ./devtools/check-git-log.sh -22