Suppress gcc warning "warning: writing 16 bytes into a region of size 0" for users of the POWER rte_memcpy() function. Existing rte_memcpy() code takes different code paths based on the actual size of the move so the warning is already addressed. See also commit b5b3ea803e47 ("eal/x86: ignore gcc 10 stringop-overflow warnings") Signed-off-by: David Christensen <drc@linux.vnet.ibm.com> --- lib/eal/ppc/include/rte_memcpy.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/eal/ppc/include/rte_memcpy.h b/lib/eal/ppc/include/rte_memcpy.h index c2a1f356d5..a84893cf8e 100644 --- a/lib/eal/ppc/include/rte_memcpy.h +++ b/lib/eal/ppc/include/rte_memcpy.h @@ -18,11 +18,16 @@ extern "C" { #include "generic/rte_memcpy.h" -#if (GCC_VERSION >= 90000 && GCC_VERSION < 90400) +#if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION >= 90000) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Warray-bounds" #endif +#if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION >= 100000) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstringop-overflow" +#endif + static inline void rte_mov16(uint8_t *dst, const uint8_t *src) { @@ -198,7 +203,11 @@ rte_memcpy_func(void *dst, const void *src, size_t n) return ret; } -#if (GCC_VERSION >= 90000 && GCC_VERSION < 90400) +#if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION >= 100000) +#pragma GCC diagnostic pop +#endif + +#if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION >= 90000) #pragma GCC diagnostic pop #endif -- 2.27.0
On Wed, Jun 23, 2021 at 6:13 PM David Christensen
<drc@linux.vnet.ibm.com> wrote:
>
> Suppress gcc warning "warning: writing 16 bytes into a region of
> size 0" for users of the POWER rte_memcpy() function. Existing
> rte_memcpy() code takes different code paths based on the actual
> size of the move so the warning is already addressed. See also
> commit b5b3ea803e47 ("eal/x86: ignore gcc 10 stringop-overflow warnings")
Bugzilla ID: 739 ?
What about a Cc: stable@dpdk.org?
We did backport such change for x86.
--
David Marchand
On 7/5/21 2:28 AM, David Marchand wrote: > On Wed, Jun 23, 2021 at 6:13 PM David Christensen > <drc@linux.vnet.ibm.com> wrote: >> >> Suppress gcc warning "warning: writing 16 bytes into a region of >> size 0" for users of the POWER rte_memcpy() function. Existing >> rte_memcpy() code takes different code paths based on the actual >> size of the move so the warning is already addressed. See also >> commit b5b3ea803e47 ("eal/x86: ignore gcc 10 stringop-overflow warnings") > > Bugzilla ID: 739 ? Different compiler warning, though same gcc version involved. > What about a Cc: stable@dpdk.org? > We did backport such change for x86. Yes, should apply to stable as well. Do I need to resubmit patch or is the CC: enough? Dave
On 7/12/21 12:35 PM, David Christensen wrote:
>
>
> On 7/5/21 2:28 AM, David Marchand wrote:
>> On Wed, Jun 23, 2021 at 6:13 PM David Christensen
>> <drc@linux.vnet.ibm.com> wrote:
>>>
>>> Suppress gcc warning "warning: writing 16 bytes into a region of
>>> size 0" for users of the POWER rte_memcpy() function. Existing
>>> rte_memcpy() code takes different code paths based on the actual
>>> size of the move so the warning is already addressed. See also
>>> commit b5b3ea803e47 ("eal/x86: ignore gcc 10 stringop-overflow
>>> warnings")
>>
>> Bugzilla ID: 739 ?
>
> Different compiler warning, though same gcc version involved.
>
>> What about a Cc: stable@dpdk.org?
>> We did backport such change for x86.
>
> Yes, should apply to stable as well. Do I need to resubmit patch or is
> the CC: enough?
Any reservations about including this in 21.08-rc3?
Dave
Suppress gcc warning "warning: writing 16 bytes into a region of size 0" for users of the POWER rte_memcpy() function. Existing rte_memcpy() code takes different code paths based on the actual size of the move so the warning is already addressed. See also commit b5b3ea803e47 ("eal/x86: ignore gcc 10 stringop-overflow warnings") Signed-off-by: David Christensen <drc@linux.vnet.ibm.com> --- v2: - update copyright year - rebase for 21.11-rc0 --- lib/eal/ppc/include/rte_memcpy.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/eal/ppc/include/rte_memcpy.h b/lib/eal/ppc/include/rte_memcpy.h index c2a1f356d5..6f388c0234 100644 --- a/lib/eal/ppc/include/rte_memcpy.h +++ b/lib/eal/ppc/include/rte_memcpy.h @@ -1,6 +1,6 @@ /* * SPDX-License-Identifier: BSD-3-Clause - * Copyright (C) IBM Corporation 2014. + * Copyright (C) IBM Corporation 2014,2021 */ #ifndef _RTE_MEMCPY_PPC_64_H_ @@ -18,11 +18,16 @@ extern "C" { #include "generic/rte_memcpy.h" -#if (GCC_VERSION >= 90000 && GCC_VERSION < 90400) +#if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION >= 90000) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Warray-bounds" #endif +#if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION >= 100000) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstringop-overflow" +#endif + static inline void rte_mov16(uint8_t *dst, const uint8_t *src) { @@ -198,7 +203,11 @@ rte_memcpy_func(void *dst, const void *src, size_t n) return ret; } -#if (GCC_VERSION >= 90000 && GCC_VERSION < 90400) +#if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION >= 100000) +#pragma GCC diagnostic pop +#endif + +#if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION >= 90000) #pragma GCC diagnostic pop #endif -- 2.27.0
> Suppress gcc warning "warning: writing 16 bytes into a region of > size 0" for users of the POWER rte_memcpy() function. Existing > rte_memcpy() code takes different code paths based on the actual > size of the move so the warning is already addressed. See also > commit b5b3ea803e47 ("eal/x86: ignore gcc 10 stringop-overflow warnings") > > Signed-off-by: David Christensen <drc@linux.vnet.ibm.com> > --- > v2: > - update copyright year > - rebase for 21.11-rc0 David M, Any chance of getting this approved in the 21.11 cycle? Patch was originally submitted on 6/23, is only applicable to PPC architecture, and has no functional impact because it only disables warnings. Patchwork reports a performance test regression on x86 systems: http://patches.dpdk.org/project/dpdk/patch/20210902221514.3215704-1-drc@linux.vnet.ibm.com/ But I don't see how that is possible. Applying the patch on a local x86 system results in identical x86 binaries with and without the patch applied. It would appear that the test-to-test performance variations exceed the failure threshold on the CI setup. Dave
On Fri, Sep 3, 2021 at 12:15 AM David Christensen <drc@linux.vnet.ibm.com> wrote: > > Suppress gcc warning "warning: writing 16 bytes into a region of > size 0" for users of the POWER rte_memcpy() function. Existing > rte_memcpy() code takes different code paths based on the actual > size of the move so the warning is already addressed. See also > commit b5b3ea803e47 ("eal/x86: ignore gcc 10 stringop-overflow warnings") > Cc: stable@dpdk.org > Signed-off-by: David Christensen <drc@linux.vnet.ibm.com> Applied, thanks. -- David Marchand