DPDK patches and discussions
 help / color / mirror / Atom feed
From: Andy Green <andy@warmcat.com>
To: Thomas Monjalon <thomas@monjalon.net>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH v3 17/24] rte_byteorder.h: explicit cast for return promotion
Date: Mon, 14 May 2018 08:02:27 +0800	[thread overview]
Message-ID: <a3d0eae5-42f2-b6a2-1273-5013cfc23bd7@warmcat.com> (raw)
In-Reply-To: <10112839.slRIOooWqA@xps>



On 05/14/2018 12:59 AM, Thomas Monjalon wrote:
> 12/05/2018 04:00, Andy Green:
>> --- a/lib/librte_eal/common/include/generic/rte_byteorder.h
>> +++ b/lib/librte_eal/common/include/generic/rte_byteorder.h
>> @@ -123,7 +123,7 @@ typedef uint64_t rte_le64_t; /**< 64-bit little-endian value. */
>>   static inline uint16_t
>>   rte_constant_bswap16(uint16_t x)
>>   {
>> -	return RTE_STATIC_BSWAP16(x);
>> +	return (uint16_t)RTE_STATIC_BSWAP16((uint16_t)x);
>>   }
> 
> x is already uint16_t, and RTE_STATIC_BSWAP16 is already casting to uint16_t.
> So why these casts are needed?


After winding dpdk back inside lagopus without this patch and recooking 
everything...

In file included from 
/projects/lagopus/src/dpdk/build/include/rte_byteorder.h:15,
                  from /projects/lagopus/src/dataplane/dpdk/pktbuf.h:27,
                  from ./ofproto/mbtree.c:50:
/projects/lagopus/src/dpdk/build/include/generic/rte_byteorder.h: In 
function 'rte_constant_bswap16':
/projects/lagopus/src/dpdk/build/include/generic/rte_byteorder.h:54:45: 
warning: conversion from 'int' to 'uint16_t' {aka 'short unsigned int'} 
may change value [-Wconversion]
   ((((uint16_t)(v) & UINT16_C(0x00ff)) << 8) | \
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
    (((uint16_t)(v) & UINT16_C(0xff00)) >> 8))
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/projects/lagopus/src/dpdk/build/include/generic/rte_byteorder.h:126:9: 
note: in expansion of macro 'RTE_STATIC_BSWAP16'
   return RTE_STATIC_BSWAP16(x);
          ^~~~~~~~~~~~~~~~~~

> And why not in rte_constant_bswap32/64?

It's likely also needed there.  I removed the second cast and then 
repeated the fix on 32/64 as well.

GCC8 building lagopus blowing chunks is my only insight into these api 
header problems in dpdk.  It only blew on bswap16.

I simply want to build lagopus with latest pieces to assess how much 
risk signing up to use lagopus (and its dependencies) ongoing gets me 
into.  So my goal is fix all the build issues around that and then why 
not provide the patches to the projects since they are done by then. 
(My lagopus fixes will have no meaning unless the dpdk fixes get in 
first, so I defer interacting with them).

I can get that to build (I think... I have to pin the dpdk subproject, 
make clean, make dpdk and then finally make to see the warnings 
repeatably) with master dpdk now with my dpdk series of ~45 patches, but 
it requires 25 patches on lagopus and there are still a ton of warnings 
to clean out and an api change about color / metering I just hacked out 
for now.  I didn't look too closely yet but maybe some more dpdk header 
usage issues to come.

-Andy

  reply	other threads:[~2018-05-14  0:02 UTC|newest]

Thread overview: 174+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-12  1:58 [dpdk-dev] [PATCH v3 00/24] Fixes for GCC8 against lagopus Andy Green
2018-05-12  1:58 ` [dpdk-dev] [PATCH v3 01/24] lib/librte_eal: import libbsd strlcpy Andy Green
2018-05-13 14:56   ` Thomas Monjalon
2018-05-13 23:07     ` Andy Green
2018-05-12  1:58 ` [dpdk-dev] [PATCH v3 02/24] lib/librte_ethdev: change eth-dev-ops API to return int Andy Green
2018-05-13 14:58   ` Thomas Monjalon
2018-05-13 23:10     ` Andy Green
2018-05-13 23:49       ` Thomas Monjalon
2018-05-12  1:58 ` [dpdk-dev] [PATCH v3 03/24] rte_common.h: cast gcc builtin result to avoid complaints Andy Green
2018-05-13 20:40   ` Thomas Monjalon
2018-05-12  1:59 ` [dpdk-dev] [PATCH v3 04/24] lib/librte_eal: explicit tmp cast Andy Green
2018-05-13 16:19   ` Thomas Monjalon
2018-05-12  1:59 ` [dpdk-dev] [PATCH v3 05/24] lib/librte_eal: explicit cast for signed change Andy Green
2018-05-13 20:40   ` Thomas Monjalon
2018-05-12  1:59 ` [dpdk-dev] [PATCH v3 06/24] /lib/librte_eal: stage cast from uint64 to long Andy Green
2018-05-13 16:24   ` Thomas Monjalon
2018-05-13 23:17     ` Andy Green
2018-05-12  1:59 ` [dpdk-dev] [PATCH v3 07/24] rte_spinlock.h: stack declarations before code Andy Green
2018-05-13 20:42   ` Thomas Monjalon
2018-05-12  1:59 ` [dpdk-dev] [PATCH v3 08/24] rte_ring_generic.h: " Andy Green
2018-05-13 16:47   ` Thomas Monjalon
2018-05-13 23:21     ` Andy Green
2018-05-13 23:44       ` Thomas Monjalon
2018-05-14  0:09         ` Andy Green
2018-05-14  1:49           ` Thomas Monjalon
2018-05-12  1:59 ` [dpdk-dev] [PATCH v3 09/24] rte_ring.h: remove signed type flipflopping Andy Green
2018-05-12  1:59 ` [dpdk-dev] [PATCH v3 10/24] rte_dev.h: stack declaration at top of own basic block Andy Green
2018-05-13 20:41   ` Thomas Monjalon
2018-05-12  1:59 ` [dpdk-dev] [PATCH v3 11/24] rte_mbuf.h: avoid warnings from inadvertant promotion Andy Green
2018-05-13 16:54   ` Thomas Monjalon
2018-05-13 23:27     ` Andy Green
2018-05-12  1:59 ` [dpdk-dev] [PATCH v3 12/24] rte_mbuf.h: explicit casts for int16 to uint16 Andy Green
2018-05-12  1:59 ` [dpdk-dev] [PATCH v3 13/24] rte_mbuf.h: make sure RTE-MIN compares same types Andy Green
2018-05-12  1:59 ` [dpdk-dev] [PATCH v3 14/24] rte_mbuf.h: explicit cast restricting ptrdiff to uint16 Andy Green
2018-05-12  1:59 ` [dpdk-dev] [PATCH v3 15/24] rte_mbuf.h: explicit cast for size type to uint32 Andy Green
2018-05-12  2:00 ` [dpdk-dev] [PATCH v3 16/24] rte_mbuf.h: explicit casts to uint16 to avoid warnings Andy Green
2018-05-12  2:00 ` [dpdk-dev] [PATCH v3 17/24] rte_byteorder.h: explicit cast for return promotion Andy Green
2018-05-13 16:59   ` Thomas Monjalon
2018-05-14  0:02     ` Andy Green [this message]
2018-05-12  2:00 ` [dpdk-dev] [PATCH v3 18/24] rte_ether.h: explicit cast avoiding truncation warning Andy Green
2018-05-13 17:02   ` Thomas Monjalon
2018-05-14  0:05     ` Andy Green
2018-05-12  2:00 ` [dpdk-dev] [PATCH v3 19/24] rte_ether.h: stack vars declared at top of function Andy Green
2018-05-13 20:42   ` Thomas Monjalon
2018-05-12  2:00 ` [dpdk-dev] [PATCH v3 20/24] rte_ethdev.h: align sign and scope of temp var Andy Green
2018-05-12  2:00 ` [dpdk-dev] [PATCH v3 21/24] rte_ethdev.h: explicit cast for truncation Andy Green
2018-05-13 20:43   ` Thomas Monjalon
2018-05-12  2:00 ` [dpdk-dev] [PATCH v3 22/24] rte_hash_crc.h: stack vars declared at top of function Andy Green
2018-05-13 20:44   ` Thomas Monjalon
2018-05-12  2:00 ` [dpdk-dev] [PATCH v3 23/24] rte_hash_crc.h: explicit casts for truncation Andy Green
2018-05-13 20:44   ` Thomas Monjalon
2018-05-12  2:00 ` [dpdk-dev] [PATCH v3 24/24] test_table_pipeline: repair munged indirection level Andy Green
2018-05-13 20:33   ` Thomas Monjalon
2018-05-14  0:22     ` Andy Green
2018-05-14  5:09 ` [dpdk-dev] [PATCH v4 00/23] Fixes for GCC8 against lagopus Andy Green
2018-05-14  5:09   ` [dpdk-dev] [PATCH v4 01/23] lib/librte_eal: import libbsd strlcpy Andy Green
2018-05-17 10:36     ` Bruce Richardson
2018-05-17 12:35       ` Andy Green
2018-05-17 12:56         ` Bruce Richardson
2018-05-17 13:00           ` Andy Green
2018-05-17 13:49             ` Bruce Richardson
2018-05-14  5:09   ` [dpdk-dev] [PATCH v4 02/23] rte_eal_version_map: export rte-strlcpy Andy Green
2018-05-14  5:09   ` [dpdk-dev] [PATCH v4 03/23] lib/librte_ethdev: change eth-dev-ops API to return int Andy Green
2018-05-14  5:09   ` [dpdk-dev] [PATCH v4 04/23] lib/librte_eal: explicit tmp cast Andy Green
2018-05-14  5:09   ` [dpdk-dev] [PATCH v4 05/23] /lib/librte_eal: stage cast from uint64 to long Andy Green
2018-05-17 10:47     ` Bruce Richardson
2018-05-17 12:56       ` Andy Green
2018-05-14  5:09   ` [dpdk-dev] [PATCH v4 06/23] rte_ring_generic.h: stack declarations before code Andy Green
2018-05-17  8:29     ` Olivier Matz
2018-05-14  5:10   ` [dpdk-dev] [PATCH v4 07/23] rte_ring.h: remove signed type flipflopping Andy Green
2018-05-17  8:29     ` Olivier Matz
2018-05-14  5:10   ` [dpdk-dev] [PATCH v4 08/23] rte_mbuf.h: avoid warnings from inadvertant promotion Andy Green
2018-05-17  8:30     ` Olivier Matz
2018-05-14  5:10   ` [dpdk-dev] [PATCH v4 09/23] rte_mbuf.h: explicit casts for int16 to uint16 Andy Green
2018-05-17  8:30     ` Olivier Matz
2018-05-14  5:10   ` [dpdk-dev] [PATCH v4 10/23] rte_mbuf.h: make sure RTE-MIN compares same types Andy Green
2018-05-17 10:49     ` Bruce Richardson
2018-05-14  5:10   ` [dpdk-dev] [PATCH v4 11/23] rte_mbuf.h: explicit cast restricting ptrdiff to uint16 Andy Green
2018-05-17 10:50     ` Bruce Richardson
2018-05-17 11:03       ` Ananyev, Konstantin
2018-05-14  5:10   ` [dpdk-dev] [PATCH v4 12/23] rte_mbuf.h: explicit cast for size type to uint32 Andy Green
2018-05-17 10:53     ` Bruce Richardson
2018-05-17 13:09       ` Andy Green
2018-05-14  5:10   ` [dpdk-dev] [PATCH v4 13/23] rte_mbuf.h: explicit casts to uint16 to avoid warnings Andy Green
2018-05-17 10:58     ` Bruce Richardson
2018-05-17 13:28       ` Andy Green
2018-05-14  5:10   ` [dpdk-dev] [PATCH v4 14/23] rte_ether.h: explicit cast avoiding truncation warning Andy Green
2018-05-17 11:01     ` Bruce Richardson
2018-05-14  5:10   ` [dpdk-dev] [PATCH v4 15/23] rte_ethdev.h: align sign and scope of temp var Andy Green
2018-05-17 13:54     ` Bruce Richardson
2018-05-17 14:17       ` Andy Green
2018-05-17 14:26         ` Bruce Richardson
2018-05-14  5:10   ` [dpdk-dev] [PATCH v4 16/23] rte_byteorder.h: explicit cast for return promotion Andy Green
2018-05-14  5:10   ` [dpdk-dev] [PATCH v4 17/23] test_table_pipeline: repair munged indirection level Andy Green
2018-05-14 10:35     ` Singh, Jasvinder
2018-05-14 10:46       ` Andy Green
2018-05-14  5:10   ` [dpdk-dev] [PATCH v4 18/23] rte_rwlock.h: gcc8 sign conversion warnings Andy Green
2018-05-14  5:11   ` [dpdk-dev] [PATCH v4 19/23] rte_ip.h: cast input to bswap16 to be uint16 Andy Green
2018-05-14  5:11   ` [dpdk-dev] [PATCH v4 20/23] rte_ip.h: cast around promotion to int Andy Green
2018-05-14  5:11   ` [dpdk-dev] [PATCH v4 21/23] rte_ip.h: cast type decided by sizeof to uint32 Andy Green
2018-05-14  5:11   ` [dpdk-dev] [PATCH v4 22/23] rte_ip.h: cast return checksum size to uint16 Andy Green
2018-05-14  5:11   ` [dpdk-dev] [PATCH v4 23/23] rte_ip.h: cast away gcc8 warning on rte_ipv6_phdr_cksum Andy Green
2018-05-17 13:48   ` [dpdk-dev] [PATCH v5 00/21] Fixes for GCC8 against lagopus Andy Green
2018-05-17 13:48     ` [dpdk-dev] [PATCH v5 01/21] lib/librte_ethdev: change eth-dev-ops API to return int Andy Green
2018-05-17 13:55       ` Bruce Richardson
2018-05-17 13:59         ` Andy Green
2018-05-18 10:59       ` Shreyansh Jain
2018-05-18 11:12         ` Andy Green
2018-05-20  2:43           ` Shreyansh Jain
2018-05-20  4:11             ` Andy Green
2018-05-21  6:52             ` Stephen Hemminger
2018-05-21  7:25               ` Andy Green
2018-05-18 13:02         ` [dpdk-dev] [PATCH] rte_ethdev.h: fix gcc8.1 sign conversion warining Andy Green
2018-05-17 13:49     ` [dpdk-dev] [PATCH v5 02/21] rte_string_fns.h: fix gcc8.1 sign conv warning in lstrcpy Andy Green
2018-05-17 13:56       ` Bruce Richardson
2018-05-17 14:03       ` [dpdk-dev] [PATCH] " Andy Green
2018-05-17 14:40       ` [dpdk-dev] [PATCH v5 02/21] " Stephen Hemminger
2018-05-17 15:28         ` Bruce Richardson
2018-05-17 13:49     ` [dpdk-dev] [PATCH v5 03/21] lib/librte_eal: explicit tmp cast Andy Green
2018-05-17 13:49     ` [dpdk-dev] [PATCH v5 04/21] /lib/librte_eal: stage cast from uint64 to long Andy Green
2018-05-17 13:49     ` [dpdk-dev] [PATCH v5 05/21] rte_ring_generic.h: stack declarations before code Andy Green
2018-05-17 13:49     ` [dpdk-dev] [PATCH v5 06/21] rte_ring.h: remove signed type flipflopping Andy Green
2018-05-17 13:49     ` [dpdk-dev] [PATCH v5 07/21] rte_mbuf.h: avoid warnings from inadvertant promotion Andy Green
2018-05-17 13:49     ` [dpdk-dev] [PATCH v5 08/21] rte_mbuf.h: explicit casts for int16 to uint16 Andy Green
2018-05-17 13:49     ` [dpdk-dev] [PATCH v5 09/21] rte_mbuf.h: make sure RTE-MIN compares same types Andy Green
2018-05-17 13:49     ` [dpdk-dev] [PATCH v5 10/21] rte_mbuf.h: explicit cast restricting ptrdiff to uint16 Andy Green
2018-05-17 13:49     ` [dpdk-dev] [PATCH v5 11/21] rte_ether.h: explicit cast avoiding truncation warning Andy Green
2018-05-17 13:49     ` [dpdk-dev] [PATCH v5 12/21] rte_rwlock.h: gcc8 sign conversion warnings Andy Green
2018-05-17 13:49     ` [dpdk-dev] [PATCH v5 13/21] rte_ip.h: cast input to bswap16 to be uint16 Andy Green
2018-05-17 13:50     ` [dpdk-dev] [PATCH v5 14/21] rte_ip.h: cast around promotion to int Andy Green
2018-05-17 13:50     ` [dpdk-dev] [PATCH v5 15/21] rte_ip.h: cast type decided by sizeof to uint32 Andy Green
2018-05-17 13:50     ` [dpdk-dev] [PATCH v5 16/21] rte_ip.h: cast return checksum size to uint16 Andy Green
2018-05-17 13:50     ` [dpdk-dev] [PATCH v5 17/21] rte_ip.h: cast away gcc8 warning on rte_ipv6_phdr_cksum Andy Green
2018-05-17 13:50     ` [dpdk-dev] [PATCH v5 18/21] rte_mbuf.h: explicit cast for size type to uint32 Andy Green
2018-05-17 13:50     ` [dpdk-dev] [PATCH v5 19/21] rte_mbuf.h: explicit casts to uint16 to avoid warnings Andy Green
2018-05-17 13:50     ` [dpdk-dev] [PATCH v5 20/21] rte_ethdev.h: align sign and scope of temp var Andy Green
2018-05-17 13:50     ` [dpdk-dev] [PATCH v5 21/21] rte_byteorder.h: explicit cast for return promotion Andy Green
2018-05-20 22:18     ` [dpdk-dev] [PATCH v5 00/21] Fixes for GCC8 against lagopus Thomas Monjalon
2018-05-21  2:00       ` [dpdk-dev] [PATCH v6 0/8] " Andy Green
2018-05-21  2:00         ` [dpdk-dev] [PATCH v6 1/8] lib/librte_eal: explicit tmp cast Andy Green
2018-05-21 11:06           ` [dpdk-dev] [PATCH] lib/librte_eal: change type of tmp Andy Green
2018-05-21 12:07             ` Bruce Richardson
2018-05-21  2:01         ` [dpdk-dev] [PATCH v6 2/8] rte_rwlock.h: gcc8 sign conversion warnings Andy Green
2018-05-21 12:10           ` Bruce Richardson
2018-05-21  2:01         ` [dpdk-dev] [PATCH v6 3/8] rte_ip.h: cast type decided by sizeof to uint32 Andy Green
2018-05-21 12:13           ` Bruce Richardson
2018-05-21  2:01         ` [dpdk-dev] [PATCH v6 4/8] rte_mbuf.h: reduce temp to match uint16 types Andy Green
2018-05-21 12:14           ` Bruce Richardson
2018-05-21  2:01         ` [dpdk-dev] [PATCH v6 5/8] rte_mbuf.h: avoid implicit demotion in 64-bit arith Andy Green
2018-05-21 12:27           ` Bruce Richardson
2018-05-22  1:29             ` Andy Green
2018-05-21  2:01         ` [dpdk-dev] [PATCH v6 6/8] rte_mbuf.h: choose correct type for temp Andy Green
2018-05-21 13:09           ` Bruce Richardson
2018-05-21  2:01         ` [dpdk-dev] [PATCH v6 7/8] rte_mbuf.h: add and subtract explicitly to avoid promotion Andy Green
2018-05-21 13:10           ` Bruce Richardson
2018-05-21  2:01         ` [dpdk-dev] [PATCH v6 8/8] rte_ethdev.h: align sign and scope of temp var Andy Green
2018-05-21 13:30           ` Bruce Richardson
2018-05-22  1:25             ` Andy Green
2018-05-22  1:24         ` [dpdk-dev] [PATCH v7 0/8] Fixes for GCC8 against lagopus Andy Green
2018-05-22  1:24           ` [dpdk-dev] [PATCH v7 1/8] lib/librte_eal: change type of tmp Andy Green
2018-05-22  9:13             ` Bruce Richardson
2018-05-22  1:24           ` [dpdk-dev] [PATCH v7 2/8] rte_rwlock.h: gcc8 sign conversion warnings Andy Green
2018-05-22  1:24           ` [dpdk-dev] [PATCH v7 3/8] rte_ip.h: cast type decided by sizeof to uint32 Andy Green
2018-05-22  1:24           ` [dpdk-dev] [PATCH v7 4/8] rte_mbuf.h: reduce temp to match uint16 types Andy Green
2018-05-22  1:24           ` [dpdk-dev] [PATCH v7 5/8] rte_mbuf.h: avoid implicit demotion in 64-bit arith Andy Green
2018-05-22  1:24           ` [dpdk-dev] [PATCH v7 6/8] rte_mbuf.h: choose correct type for temp Andy Green
2018-05-22  1:24           ` [dpdk-dev] [PATCH v7 7/8] rte_mbuf.h: add and subtract explicitly to avoid promotion Andy Green
2018-05-22  1:24           ` [dpdk-dev] [PATCH v7 8/8] rte_ethdev.h: align sign and scope of temp var Andy Green
2018-05-22  9:12             ` Bruce Richardson
2018-05-22 14:18             ` Thomas Monjalon
2018-05-22  9:13           ` [dpdk-dev] [PATCH v7 0/8] Fixes for GCC8 against lagopus Bruce Richardson
2018-05-22  9:14             ` Andy Green
2018-05-22 14:29             ` Thomas Monjalon
2018-05-21  2:06       ` [dpdk-dev] [PATCH v5 00/21] " Andy Green

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=a3d0eae5-42f2-b6a2-1273-5013cfc23bd7@warmcat.com \
    --to=andy@warmcat.com \
    --cc=dev@dpdk.org \
    --cc=thomas@monjalon.net \
    /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).