[PATCH v9 3/3] drivers/net: add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v9 2/3] drivers/common: add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v9 0/3] add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v9 1/3] lib/eal: add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

Re: [PATCH v7 02/29] eal/include: add new packing macros

2024-12-31 Thread Andre Muezerie
On Sat, Dec 28, 2024 at 03:41:39PM +0100, Morten Brørup wrote: > > From: Andre Muezerie [mailto:andre...@linux.microsoft.com] > > Sent: Monday, 23 December 2024 20.12 > > > > MSVC struct packing is not compatible with GCC. Add macro > > __rte_packed_begin which can be used to push existing pack va

Re: [PATCH v7 01/29] devtools: check packed attributes

2024-12-31 Thread Andre Muezerie
On Sat, Dec 28, 2024 at 04:13:28PM +0100, Morten Brørup wrote: > > From: Andre Muezerie [mailto:andre...@linux.microsoft.com] > > Sent: Monday, 23 December 2024 20.12 > > > > Ensure __rte_packed_begin and __rte_packed_end show up in pairs > > when checking patches. > > > > Signed-off-by: Andre Mu

[PATCH v2] service: add service maintenance callback

2024-12-31 Thread Piotr Krzewinski
Add option to register a callback running on service lcores along regular services, which gets information about the service loop. It enables doing maintenance work or power saving during periods when all registered services are idling. As an example application that is doing dequeue from multiple

[PATCH v2 2/2] dts: add softnic test

2024-12-31 Thread Paul Szczepanek
Add test that uses a softnic virtual device to forward packets. Signed-off-by: Thomas Wilks Signed-off-by: Paul Szczepanek --- dts/tests/TestSuite_softnic.py | 119 + 1 file changed, 119 insertions(+) create mode 100644 dts/tests/TestSuite_softnic.py diff --git

[PATCH v2 1/2] dts: allow expected packets to come from the TG

2024-12-31 Thread Paul Szczepanek
Add sent_from_tg variable to get_expected_packets for when packets are sent from the TG. Signed-off-by: Thomas Wilks Signed-off-by: Paul Szczepanek --- dts/framework/test_suite.py | 18 ++ 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/dts/framework/test_suite.py

[PATCH v1 2/2] dts: add softnic test

2024-12-31 Thread Paul Szczepanek
Add test that uses a softnic virtual device to froward packets. Signed-off-by: Thomas Wilks Signed-off-by: Paul Szczepanek --- dts/tests/TestSuite_softnic.py | 119 + 1 file changed, 119 insertions(+) create mode 100644 dts/tests/TestSuite_softnic.py diff --git

[PATCH v1 1/2] dts: allow expected packets to come from the TG

2024-12-31 Thread Paul Szczepanek
Add sent_from_tg variable to get_expected_packets for when packets are sent from the TG. Signed-off-by: Thomas Wilks Signed-off-by: Paul Szczepanek --- dts/framework/test_suite.py | 18 ++ 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/dts/framework/test_suite.py

[PATCH v8 3/3] drivers/net: add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v8 2/3] drivers/common: add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v8 0/3] add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v8 1/3] lib/eal: add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v6 2/3] drivers/common: add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v6 3/3] drivers/net: add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v6 1/3] lib/eal: add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v6 0/3] add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v8 00/29] fix packing of structs when building with MSVC

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Different alternatives were considered: 1) Have a macro __RTE_PACKED(decl) to which the struct/union is passed and the macro would define the struct/union with the appropriate packing attribute for the compiler in use. Advantages: * Can be pl

[PATCH v8 03/29] app/test-pmd: remove unnecessary packed attributes

2024-12-31 Thread Andre Muezerie
Removed __rte_packed attribute from structure that is naturally packed already. Signed-off-by: Andre Muezerie --- app/test-pmd/csumonly.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c index 2246c22e8e..d77a140641 100644 ---

[PATCH v8 04/29] app/test: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 07/29] drivers/bus: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 10/29] drivers/crypto: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 15/29] drivers/raw: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 08/29] drivers/common: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 01/29] devtools: check packed attributes

2024-12-31 Thread Andre Muezerie
Ensure __rte_packed_begin and __rte_packed_end show up in pairs when checking patches. Signed-off-by: Andre Muezerie Acked-by: Tyler Retzlaff --- devtools/checkpatches.sh | 43 1 file changed, 43 insertions(+) diff --git a/devtools/checkpatches.sh b/dev

[PATCH v8 05/29] doc/guides: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 02/29] eal/include: add new packing macros

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Add macro __rte_packed_begin which can be used to push existing pack value and set packing to 1-byte. Add macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compiler w

[PATCH v8 09/29] drivers/compress: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 11/29] drivers/dma: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 23/29] examples/ptpclient: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 12/29] drivers/event: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 13/29] drivers/mempool: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 06/29] drivers/baseband: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 16/29] drivers/regex: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 20/29] examples/ipsec_secgw: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 21/29] examples/l3fwd-power: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 29/29] lib/vhost: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 22/29] examples/l3fwd: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 24/29] examples/vhost_blk: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 17/29] drivers/vdpa: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 19/29] examples/ip-pipeline: remove packed attributes

2024-12-31 Thread Andre Muezerie
Removed packed attributes from structs that are naturally packed already, or don't require packing. Signed-off-by: Andre Muezerie --- examples/ip_pipeline/cli.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/ip_pipeline/cli.c b/examples/ip_pipeline/cli.c

[PATCH v8 25/29] lib/eal: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 27/29] lib/net: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 28/29] lib/pipeline: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 26/29] lib/ipsec: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v8 18/29] examples/common: replace packed attributes

2024-12-31 Thread Andre Muezerie
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push. Macro __rte_packed_end is deliberately utilized to trigger a MSVC compile

[PATCH v5 2/3] drivers/common: add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v5 1/3] lib/eal: add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v5 0/3] add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v5 3/3] drivers/net: add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v7 3/3] drivers/net: add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v7 2/3] drivers/common: add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v7 1/3] lib/eal: add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym

[PATCH v7 0/3] add diagnostics macros to make code portable

2024-12-31 Thread Andre Muezerie
It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonym