DPDK patches and discussions
 help / color / mirror / Atom feed
From: Maxime Coquelin <maxime.coquelin@redhat.com>
To: "Chautru, Nicolas" <nicolas.chautru@intel.com>,
	"dev@dpdk.org" <dev@dpdk.org>,
	"thomas@monjalon.net" <thomas@monjalon.net>,
	"gakhil@marvell.com" <gakhil@marvell.com>,
	"hemant.agrawal@nxp.com" <hemant.agrawal@nxp.com>,
	"trix@redhat.com" <trix@redhat.com>,
	"Vargas, Hernan" <hernan.vargas@intel.com>
Cc: "mdr@ashroe.eu" <mdr@ashroe.eu>,
	"Richardson, Bruce" <bruce.richardson@intel.com>,
	"david.marchand@redhat.com" <david.marchand@redhat.com>,
	"stephen@networkplumber.org" <stephen@networkplumber.org>
Subject: Re: [PATCH v1 00/10] baseband/acc200
Date: Wed, 31 Aug 2022 18:43:57 +0200	[thread overview]
Message-ID: <de421841-d54c-439e-f673-99dc7c53376c@redhat.com> (raw)
In-Reply-To: <BY5PR11MB445161DFAA7847BAB06B7D36F8799@BY5PR11MB4451.namprd11.prod.outlook.com>

Hello Nicolas,

On 8/30/22 21:45, Chautru, Nicolas wrote:
> Hi Maxime,
> 
>> -----Original Message-----
>> From: Maxime Coquelin <maxime.coquelin@redhat.com>
>> Sent: Tuesday, August 30, 2022 12:45 AM
>> To: Chautru, Nicolas <nicolas.chautru@intel.com>; dev@dpdk.org;
>> thomas@monjalon.net; gakhil@marvell.com; hemant.agrawal@nxp.com;
>> trix@redhat.com; Vargas, Hernan <hernan.vargas@intel.com>
>> Cc: mdr@ashroe.eu; Richardson, Bruce <bruce.richardson@intel.com>;
>> david.marchand@redhat.com; stephen@networkplumber.org
>> Subject: Re: [PATCH v1 00/10] baseband/acc200
>>
>> Hi Nicolas,
>>
>> On 7/12/22 15:48, Maxime Coquelin wrote:
>>> Hi Nicolas, Hernan,
>>>
>>> (Adding Hernan in the recipients list)
>>>
>>> On 7/8/22 02:01, Nicolas Chautru wrote:
>>>> This is targeting 22.11 and includes the PMD for the integrated
>>>> accelerator on Intel Xeon SPR-EEC.
>>>> There is a dependency on that parallel serie still in-flight which
>>>> extends the bbdev api
>>>> https://patches.dpdk.org/project/dpdk/list/?series=23894
>>>>
>>>> I will be offline for a few weeks for the summer break but Hernan
>>>> will cover for me during that time if required.
>>>>
>>>> Thanks
>>>> Nic
>>>>
>>>> Nicolas Chautru (10):
>>>>     baseband/acc200: introduce PMD for ACC200
>>>>     baseband/acc200: add HW register definitions
>>>>     baseband/acc200: add info get function
>>>>     baseband/acc200: add queue configuration
>>>>     baseband/acc200: add LDPC processing functions
>>>>     baseband/acc200: add LTE processing functions
>>>>     baseband/acc200: add support for FFT operations
>>>>     baseband/acc200: support interrupt
>>>>     baseband/acc200: add device status and vf2pf comms
>>>>     baseband/acc200: add PF configure companion function
>>>>
>>>>    MAINTAINERS                              |    3 +
>>>>    app/test-bbdev/meson.build               |    3 +
>>>>    app/test-bbdev/test_bbdev_perf.c         |   76 +
>>>>    doc/guides/bbdevs/acc200.rst             |  244 ++
>>>>    doc/guides/bbdevs/index.rst              |    1 +
>>>>    drivers/baseband/acc200/acc200_pf_enum.h |  468 +++
>>>>    drivers/baseband/acc200/acc200_pmd.h     |  690 ++++
>>>>    drivers/baseband/acc200/acc200_vf_enum.h |   89 +
>>>>    drivers/baseband/acc200/meson.build      |    8 +
>>>>    drivers/baseband/acc200/rte_acc200_cfg.h |  115 +
>>>>    drivers/baseband/acc200/rte_acc200_pmd.c | 5403
>>>> ++++++++++++++++++++++++++++++
>>>>    drivers/baseband/acc200/version.map      |   10 +
>>>>    drivers/baseband/meson.build             |    1 +
>>>>    13 files changed, 7111 insertions(+)
>>>>    create mode 100644 doc/guides/bbdevs/acc200.rst
>>>>    create mode 100644 drivers/baseband/acc200/acc200_pf_enum.h
>>>>    create mode 100644 drivers/baseband/acc200/acc200_pmd.h
>>>>    create mode 100644 drivers/baseband/acc200/acc200_vf_enum.h
>>>>    create mode 100644 drivers/baseband/acc200/meson.build
>>>>    create mode 100644 drivers/baseband/acc200/rte_acc200_cfg.h
>>>>    create mode 100644 drivers/baseband/acc200/rte_acc200_pmd.c
>>>>    create mode 100644 drivers/baseband/acc200/version.map
>>>>
>>>
>>> Comparing ACC200 & ACC100 header files, I understand ACC200 is an
>>> evolution of the ACC10x family. The FEC bits are really close, ACC200
>>> main addition seems to be FFT acceleration which could be handled in
>>> ACC10x driver based on device ID.
>>>
>>> I think both drivers have to be merged in order to avoid code
>>> duplication. That's how other families of devices (e.g. i40e) are
>>> handled.
>>
>> I haven't seen your reply on this point.
>> Do you confirm you are working on a single driver for ACC family in order to
>> avoid code duplication?
>>
> 
> The implementation is based on distinct ACC100 and ACC200 drivers. The 2 devices are fundamentally different generation, processes and IP.
> MountBryce is an eASIC device over PCIe while ACC200 is an integrated accelerator on Xeon CPU.

The underlying technology does not matter much. For example we use same
Virtio driver for SW emulated devices and fully HW offloaded ones.

I have spent some time today comparing the drivers and what I can see is
the ACC200 driver is a copy-paste of the ACC100, modulo FFT addition and
other small changes that I think could be handled dynamically based on
capabilities flags and device ID.

> The actual implementation are not the same, underlying IP are all distinct even if many of the descriptor format have similarities.
> The actual capabilities of the acceleration are different and/or new.

New capabilities should be backed by device capabilities flags.

> The workaround and silicon errata are also different causing different limitation and implementation in the driver (see the serie with ongoing changes for ACC100 in parallel).
> This is fundamentally distinct from ACC101 which was a derivative product from ACC100 and where it made sense to share implementation between ACC100 and ACC101.
> So in a nutshell these 2 devices and drivers are 2 different beasts and the intention is to keep them intentionally separate as in the serie.
> Let me know if unclear, thanks!

Thanks for the information.
I still think it should be a single driver, I would appreciate a second
opinion. Thomas, Bruce, Stephen, do you have time to have a look?

Thanks,
Maxime

> Thanks
> Nic
> 
> 
>> Maxime
>>
>>> Thanks,
>>> Maxime
> 


  reply	other threads:[~2022-08-31 16:44 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-08  0:01 Nicolas Chautru
2022-07-08  0:01 ` [PATCH v1 01/10] baseband/acc200: introduce PMD for ACC200 Nicolas Chautru
2022-09-12  1:08   ` [PATCH v2 00/11] baseband/acc200 Nic Chautru
2022-09-12  1:08     ` [PATCH v2 01/11] baseband/acc100: refactory to segregate common code Nic Chautru
2022-09-12 15:19       ` Bruce Richardson
2022-09-12  1:08     ` [PATCH v2 02/11] baseband/acc200: introduce PMD for ACC200 Nic Chautru
2022-09-12 15:41       ` Bruce Richardson
2022-09-12  1:08     ` [PATCH v2 03/11] baseband/acc200: add HW register definitions Nic Chautru
2022-09-12  1:08     ` [PATCH v2 04/11] baseband/acc200: add info get function Nic Chautru
2022-09-12  1:08     ` [PATCH v2 05/11] baseband/acc200: add queue configuration Nic Chautru
2022-09-12  1:08     ` [PATCH v2 06/11] baseband/acc200: add LDPC processing functions Nic Chautru
2022-09-12  1:08     ` [PATCH v2 07/11] baseband/acc200: add LTE " Nic Chautru
2022-09-12  1:08     ` [PATCH v2 08/11] baseband/acc200: add support for FFT operations Nic Chautru
2022-09-12  1:08     ` [PATCH v2 09/11] baseband/acc200: support interrupt Nic Chautru
2022-09-12  1:08     ` [PATCH v2 10/11] baseband/acc200: add device status and vf2pf comms Nic Chautru
2022-09-12  1:08     ` [PATCH v2 11/11] baseband/acc200: add PF configure companion function Nic Chautru
2022-07-08  0:01 ` [PATCH v1 02/10] baseband/acc200: add HW register definitions Nicolas Chautru
2022-07-08  0:01 ` [PATCH v1 03/10] baseband/acc200: add info get function Nicolas Chautru
2022-07-08  0:01 ` [PATCH v1 04/10] baseband/acc200: add queue configuration Nicolas Chautru
2022-07-08  0:01 ` [PATCH v1 05/10] baseband/acc200: add LDPC processing functions Nicolas Chautru
2022-07-08  0:01 ` [PATCH v1 06/10] baseband/acc200: add LTE " Nicolas Chautru
2022-07-08  0:01 ` [PATCH v1 07/10] baseband/acc200: add support for FFT operations Nicolas Chautru
2022-07-08  0:01 ` [PATCH v1 08/10] baseband/acc200: support interrupt Nicolas Chautru
2022-07-08  0:01 ` [PATCH v1 09/10] baseband/acc200: add device status and vf2pf comms Nicolas Chautru
2022-07-08  0:01 ` [PATCH v1 10/10] baseband/acc200: add PF configure companion function Nicolas Chautru
2022-07-12 13:48 ` [PATCH v1 00/10] baseband/acc200 Maxime Coquelin
2022-07-14 18:49   ` Vargas, Hernan
2022-07-17 13:08     ` Tom Rix
2022-07-22 18:29       ` Vargas, Hernan
2022-07-22 20:19         ` Tom Rix
2022-08-15 17:52           ` Chautru, Nicolas
2022-08-30  7:44   ` Maxime Coquelin
2022-08-30 19:45     ` Chautru, Nicolas
2022-08-31 16:43       ` Maxime Coquelin [this message]
2022-08-31 19:20         ` Thomas Monjalon
2022-08-31 19:26       ` Tom Rix
2022-08-31 22:37         ` Chautru, Nicolas
2022-09-01  0:28           ` Tom Rix
2022-09-01  1:26             ` Chautru, Nicolas
2022-09-01 13:49               ` Tom Rix
2022-09-01 20:34                 ` Chautru, Nicolas
2022-09-06 12:51                   ` Tom Rix
2022-09-14 10:35                     ` Thomas Monjalon
2022-09-14 11:50                       ` Maxime Coquelin
2022-09-14 13:19                         ` Bruce Richardson
2022-09-14 13:27                           ` Maxime Coquelin
2022-09-14 13:44                           ` [EXT] " Akhil Goyal
2022-09-14 14:23                             ` Thomas Monjalon
2022-09-14 19:57                               ` Chautru, Nicolas
2022-09-14 20:08                                 ` Maxime Coquelin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=de421841-d54c-439e-f673-99dc7c53376c@redhat.com \
    --to=maxime.coquelin@redhat.com \
    --cc=bruce.richardson@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=gakhil@marvell.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=hernan.vargas@intel.com \
    --cc=mdr@ashroe.eu \
    --cc=nicolas.chautru@intel.com \
    --cc=stephen@networkplumber.org \
    --cc=thomas@monjalon.net \
    --cc=trix@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).