Message ID | 20200626165135.119557-1-mb@smartsharesystems.com |
---|---|
State | Accepted, archived |
Delegated to: | Ferruh Yigit |
Headers | show |
Series |
|
Related | show |
Context | Check | Description |
---|---|---|
ci/iol-testing | success | Testing PASS |
ci/Intel-compilation | success | Compilation OK |
ci/travis-robot | success | Travis build: passed |
ci/iol-mellanox-Performance | success | Performance Testing PASS |
ci/iol-nxp-Performance | success | Performance Testing PASS |
ci/iol-intel-Performance | success | Performance Testing PASS |
ci/iol-broadcom-Performance | success | Performance Testing PASS |
ci/checkpatch | success | coding style OK |
On Fri, Jun 26, 2020 at 06:51:35PM +0200, Morten Brørup wrote: > * rte_is_broadcast_ether_addr(): > Use binary logic instead of comparisons and boolean logic, thus reducing > the number of branches. > It now resembles rte_is_zero_ether_addr(). > > * rte_ether_addr_copy(): > The source code modifications were discussed on the mailing list: > http://mails.dpdk.org/archives/dev/2020-June/171584.html > Remove obsolete ICC-specific code and related comment. > Restrict pointer aliasing (suggested by Jerin Jacob). > Remove superfluous "Fast" from function description headline; all DPDK > data plane functions are supposed to be fast. > > Signed-off-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
On 7/27/2020 8:34 AM, Olivier Matz wrote: > On Fri, Jun 26, 2020 at 06:51:35PM +0200, Morten Brørup wrote: >> * rte_is_broadcast_ether_addr(): >> Use binary logic instead of comparisons and boolean logic, thus reducing >> the number of branches. >> It now resembles rte_is_zero_ether_addr(). >> >> * rte_ether_addr_copy(): >> The source code modifications were discussed on the mailing list: >> http://mails.dpdk.org/archives/dev/2020-June/171584.html >> Remove obsolete ICC-specific code and related comment. >> Restrict pointer aliasing (suggested by Jerin Jacob). >> Remove superfluous "Fast" from function description headline; all DPDK >> data plane functions are supposed to be fast. >> >> Signed-off-by: Morten Brørup <mb@smartsharesystems.com> > > Acked-by: Olivier Matz <olivier.matz@6wind.com> > Applied to dpdk-next-net/main, thanks.
diff --git a/lib/librte_net/rte_ether.h b/lib/librte_net/rte_ether.h index 0ae4e75b6..184d972b6 100644 --- a/lib/librte_net/rte_ether.h +++ b/lib/librte_net/rte_ether.h @@ -146,10 +146,9 @@ static inline int rte_is_multicast_ether_addr(const struct rte_ether_addr *ea) */ static inline int rte_is_broadcast_ether_addr(const struct rte_ether_addr *ea) { - const uint16_t *ea_words = (const uint16_t *)ea; + const uint16_t *w = (const uint16_t *)ea; - return (ea_words[0] == 0xFFFF && ea_words[1] == 0xFFFF && - ea_words[2] == 0xFFFF); + return (w[0] & w[1] & w[2]) == 0xFFFF; } /** @@ -208,29 +207,18 @@ void rte_eth_random_addr(uint8_t *addr); /** - * Fast copy an Ethernet address. + * Copy an Ethernet address. * * @param ea_from * A pointer to a ether_addr structure holding the Ethernet address to copy. * @param ea_to * A pointer to a ether_addr structure where to copy the Ethernet address. */ -static inline void rte_ether_addr_copy(const struct rte_ether_addr *ea_from, - struct rte_ether_addr *ea_to) +static inline void +rte_ether_addr_copy(const struct rte_ether_addr *__restrict ea_from, + struct rte_ether_addr *__restrict ea_to) { -#ifdef __INTEL_COMPILER - uint16_t *from_words = (uint16_t *)(ea_from->addr_bytes); - uint16_t *to_words = (uint16_t *)(ea_to->addr_bytes); - - to_words[0] = from_words[0]; - to_words[1] = from_words[1]; - to_words[2] = from_words[2]; -#else - /* - * Use the common way, because of a strange gcc warning. - */ *ea_to = *ea_from; -#endif } #define RTE_ETHER_ADDR_FMT_SIZE 18
* rte_is_broadcast_ether_addr(): Use binary logic instead of comparisons and boolean logic, thus reducing the number of branches. It now resembles rte_is_zero_ether_addr(). * rte_ether_addr_copy(): The source code modifications were discussed on the mailing list: http://mails.dpdk.org/archives/dev/2020-June/171584.html Remove obsolete ICC-specific code and related comment. Restrict pointer aliasing (suggested by Jerin Jacob). Remove superfluous "Fast" from function description headline; all DPDK data plane functions are supposed to be fast. Signed-off-by: Morten Brørup <mb@smartsharesystems.com> --- lib/librte_net/rte_ether.h | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-)