On 7 Jul 2021, at 12:13, Van Haaren, Harry wrote:

> Hi All,
>
> This thread has dissolved into unnecessary time-wasting on nitpick changes. 
> There is no
> technical issue with uint32_t, so this patch remains as is, and this should 
> be accepted for merge.
>
> If you feel differently, reply to this with a detailed description of a 
> genuine technical bug.

Reviews are not only about technical correctness but also about coding style 
and consistency.
In this case the dp_packet_batch_size() API returns a size_t, so we should try 
to use it.

But I leave it to the maintainers to decide if they accept this as is, or not :)

//Eelco

> Regards, -Harry
>
>
> From: Amber, Kumar <kumar.am...@intel.com>
> Sent: Wednesday, July 7, 2021 11:04 AM
> To: Eelco Chaudron <echau...@redhat.com>; Van Haaren, Harry 
> <harry.van.haa...@intel.com>
> Cc: Ferriter, Cian <cian.ferri...@intel.com>; ovs-dev@openvswitch.org; 
> f...@sysclose.org; i.maxim...@ovn.org; Stokes, Ian <ian.sto...@intel.com>
> Subject: RE: [v6 00/11] MFEX Infrastructure + Optimizations
>
> Hi Eelco,
>
>
> I tried with the suggestion “zd” is deprecated and in place of it 
> %"PRIdSIZE`` is mentioned which still causes build failure on non-ssl 32 bit 
> builds.
>
> Regards
> Amber
>
> From: Eelco Chaudron <echau...@redhat.com<mailto:echau...@redhat.com>>
> Sent: Wednesday, July 7, 2021 3:02 PM
> To: Van Haaren, Harry 
> <harry.van.haa...@intel.com<mailto:harry.van.haa...@intel.com>>
> Cc: Amber, Kumar <kumar.am...@intel.com<mailto:kumar.am...@intel.com>> ; 
> Ferriter, Cian <cian.ferri...@intel.com<mailto:cian.ferri...@intel.com>> ; 
> ovs-dev@openvswitch.org<mailto:ovs-dev@openvswitch.org> ; 
> f...@sysclose.org<mailto:f...@sysclose.org> ; 
> i.maxim...@ovn.org<mailto:i.maxim...@ovn.org> ; Stokes, Ian 
> <ian.sto...@intel.com<mailto:ian.sto...@intel.com>>
> Subject: Re: [v6 00/11] MFEX Infrastructure + Optimizations
>
>
> On 7 Jul 2021, at 11:09, Van Haaren, Harry wrote:
>
> -----Original Message-----
> From: Eelco Chaudron <echau...@redhat.com<mailto:echau...@redhat.com>>
> Sent: Wednesday, July 7, 2021 9:35 AM
> To: Amber, Kumar <kumar.am...@intel.com<mailto:kumar.am...@intel.com>>
> Cc: Ferriter, Cian <cian.ferri...@intel.com<mailto:cian.ferri...@intel.com>> 
> ; ovs-dev@openvswitch.org<mailto:ovs-dev@openvswitch.org> ;
> f...@sysclose.org<mailto:f...@sysclose.org> ; 
> i.maxim...@ovn.org<mailto:i.maxim...@ovn.org> ; Van Haaren, Harry
> <harry.van.haa...@intel.com<mailto:harry.van.haa...@intel.com>> ; Stokes, Ian 
> <ian.sto...@intel.com<mailto:ian.sto...@intel.com>>
> Subject: Re: [v6 00/11] MFEX Infrastructure + Optimizations
>
> On 6 Jul 2021, at 17:06, Amber, Kumar wrote:
>
> Hi Eelco ,
>
> Here is the diff vor v6 vs v5 :
>
> Patch 1 :
>
> diff --git a/lib/dpif-netdev-private-extract.c 
> b/lib/dpif-netdev-private-extract.c
> index 1aebf3656d..4987d628a4 100644
> --- a/lib/dpif-netdev-private-extract.c
> +++ b/lib/dpif-netdev-private-extract.c
> @@ -233,7 +233,7 @@ dpif_miniflow_extract_autovalidator(struct
>
> dp_packet_batch *packets,
>
> uint32_t keys_size, odp_port_t in_port,
> struct dp_netdev_pmd_thread *pmd_handle)
> {
> - const size_t cnt = dp_packet_batch_size(packets);
> + const uint32_t cnt = dp_packet_batch_size(packets);
> uint16_t good_l2_5_ofs[NETDEV_MAX_BURST];
> uint16_t good_l3_ofs[NETDEV_MAX_BURST];
> uint16_t good_l4_ofs[NETDEV_MAX_BURST];
> @@ -247,7 +247,7 @@ dpif_miniflow_extract_autovalidator(struct
>
> dp_packet_batch *packets,
>
> atomic_uintptr_t *pmd_func = (void *)&pmd->miniflow_extract_opt;
> atomic_store_relaxed(pmd_func, (uintptr_t) default_func);
> VLOG_ERR("Invalid key size supplied, Key_size: %d less than"
> - "batch_size: %ld", keys_size, cnt);
> + "batch_size: %d", keys_size, cnt);
>
> What was the reason for changing this size_t to uint32_t? Is see other 
> instances
> where %ld is used for logging?
> And other functions like dp_netdev_run_meter() have it as a size_t?
>
> The reason to change this is because 32-bit builds were breaking due to 
> incorrect
> format-specifier in the printf. Root cause is because size_t requires 
> different printf
> format specifier based on 32 or 64 bit arch.
>
> (As you likely know, size_t is to describe objects in memory, or the return 
> of sizeof operator.
> Because 32-bit and 64-bit can have different amounts of memory, size_t can be 
> "unsigned int"
> or "unsigned long long").
>
> It does not make sense to me to use a type of variable that changes width 
> based on
> architecture to count batch size (a value from 0 to 32).
>
> Simplicity and obvious-ness is nice, and a uint32_t is always exactly what 
> you read it to be,
> and %d will always be correct for uint32_t regardless of 32 or 64 bit.
>
> We should not change this back to the more complex and error-prone "size_t", 
> uint32_t is better.
>
> I don't think it’s more error-prone if the right type qualifier is used, i.e. 
> %zd. See also the coding style document, so I would suggest changing it to:
>
> @@ -233,7 +233,7 @@ dpif_miniflow_extract_autovalidator(struct 
> dp_packet_batch *packets,
> uint32_t keys_size, odp_port_t in_port,
> struct dp_netdev_pmd_thread *pmd_handle)
> {
>
>   *   const uint32_t cnt = dp_packet_batch_size(packets);
>
>   *   const size_t cnt = dp_packet_batch_size(packets);
> uint16_t good_l2_5_ofs[NETDEV_MAX_BURST];
> uint16_t good_l3_ofs[NETDEV_MAX_BURST];
> uint16_t good_l4_ofs[NETDEV_MAX_BURST];
>
> @@ -247,7 +247,7 @@ dpif_miniflow_extract_autovalidator(struct 
> dp_packet_batch *packets,
> atomic_uintptr_t *pmd_func = (void *)&pmd->miniflow_extract_opt;
> atomic_store_relaxed(pmd_func, (uintptr_t) default_func);
> VLOG_ERR("Invalid key size supplied, Key_size: %d less than"
>
> ·                    "batch_size: %d", keys_size, cnt);
>
>   *
>
> ·                    "batch_size: %"PRIdSIZE, keys_size, cnt);
>
> ·           return 0;
>
>   *   }
>
> <snip>

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to