Hi Flavio,

> > --- a/lib/dpif-netdev-private-extract.h
> > +++ b/lib/dpif-netdev-private-extract.h
> > @@ -77,14 +77,15 @@ enum dpif_miniflow_extract_impl_idx {
> >      MFEX_IMPL_AUTOVALIDATOR,
> >      MFEX_IMPL_SCALAR,
> >      MFEX_IMPL_STUDY,
> 
> In a previous patch I mentioned about using MFEX_IMPL_MAX, because here we
> could use the same ifdefs as for the mfex_impls array and for the
> MFEX_IMPL_START_IDX below.
> #if (__x86_64__ && HAVE_AVX512F && HAVE_LD_AVX512_GOOD &&
> __SSE4_2__)
> 
> > +    MFEX_IMPL_VMBI_IPv4_UDP,
> > +    MFEX_IMPL_IPv4_UDP,
> 
> #endif
> 
> >      MFEX_IMPL_MAX
> >  };
> >
> >  /* Define a index which points to the first traffic optimized MFEX
> >   * option from the enum list else holds max value.
> >   */
> > -
> > -#define MFEX_IMPL_START_IDX MFEX_IMPL_MAX
> > +#define MFEX_IMPL_START_IDX MFEX_IMPL_VMBI_IPv4_UDP
> 
> #if (__x86_64__ && HAVE_AVX512F && HAVE_LD_AVX512_GOOD &&
> __SSE4_2__) #define MFEX_IMPL_START_IDX MFEX_IMPL_VMBI_IPv4_UDP
> #else #define MFEX_IMPL_START_IDX MFEX_IMPL_MAX #endif
> 
> Doing so make sure that
> for (i=MFEX_IMPL_START_IDX; i<MFEX_IMPL_MAX; i++) always works
> regardless of avx512 specifics.
> 
> Does that make sense?
> 

Sounds good to me 😊

> 
> >
> >  /* This function returns all available implementations to the caller. The
> >   * quantity of implementations is returned by the int return value.
> > @@ -155,4 +156,24 @@ mfex_study_traffic(struct dp_packet_batch
> > *packets,  uint32_t mfex_set_study_pkt_cnt(uint32_t pkt_cmp_count,
> >                                  const char *name);
> >
> > +/* AVX512 MFEX Probe and Implementations functions. */ #ifdef
> > +__x86_64__ int32_t mfex_avx512_probe(void); int32_t
> > +mfex_avx512_vbmi_probe(void);
> > +
> > +#define DECLARE_AVX512_MFEX_PROTOTYPE(name)                                
> >  \
> > +    uint32_t                                                               
> >  \
> > +    mfex_avx512_vbmi_##name(struct dp_packet_batch *packets,               
> >  \
> > +                            struct netdev_flow_key *keys, uint32_t 
> > keys_size,\
> > +                            odp_port_t in_port, struct 
> > dp_netdev_pmd_thread \
> > +                            *pmd_handle);                                  
> >  \
> > +    uint32_t                                                               
> >  \
> > +    mfex_avx512_##name(struct dp_packet_batch *packets,                    
> >  \
> > +                        struct netdev_flow_key *keys, uint32_t keys_size,  
> >  \
> > +                        odp_port_t in_port, struct dp_netdev_pmd_thread    
> >  \
> > +                        *pmd_handle);                                      
> >  \
> > +
> > +DECLARE_AVX512_MFEX_PROTOTYPE(ip_udp);
> > +#endif /* __x86_64__ */
> > +
> >  #endif /* MFEX_AVX512_EXTRACT */
> > --
> > 2.25.1
> >
> > _______________________________________________
> > dev mailing list
> > [email protected]
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> 
> --
> fbl

Regards
Amber
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to