On 06/09/2017 02:16 AM, Darrell Ball wrote: > oops, I did notice a minor issue with the original code moved to the _init > function > in this patch; in theory, it should be a separate patch. >
Thanks for reviewing. yeah, I agree any changes to the how it's logged should be a separate patch. > > On 6/8/17, 2:40 PM, "[email protected] on behalf of Darrell > Ball" <[email protected] on behalf of [email protected]> wrote: > > LGTM > > Acked by: Darrell Ball <[email protected]> > > On 6/8/17, 10:12 AM, "[email protected] on behalf of Kevin > Traynor" <[email protected] on behalf of [email protected]> > wrote: > > Rx checksum offload is enabled by default on DPDK physical NICs > where available, with reconfiguration through > options:rx-checksum-offload. However, changing rx-checksum-offload > did not result in a reconfiguration of the NIC and wrong status is > reported for it. > > As there seems to be diminishing reasons why a user would want > to disable Rx checksum offload, just remove the broken reconfiguration > option. > > Fixes: 1a2bb11817a4 ("netdev-dpdk: Enable Rx checksum offloading > feature on DPDK physical ports.") > Reported-by: Kevin Traynor <[email protected]> > Suggested-by: Sugesh Chandran <[email protected]> > Signed-off-by: Kevin Traynor <[email protected]> > --- > Documentation/howto/dpdk.rst | 17 +--------------- > lib/netdev-dpdk.c | 47 > +++++++++++--------------------------------- > vswitchd/vswitch.xml | 14 ------------- > 3 files changed, 13 insertions(+), 65 deletions(-) > > diff --git a/Documentation/howto/dpdk.rst > b/Documentation/howto/dpdk.rst > index 93248b4..af01d3e 100644 > --- a/Documentation/howto/dpdk.rst > +++ b/Documentation/howto/dpdk.rst > @@ -277,16 +277,5 @@ Rx Checksum Offload > ------------------- > > -By default, DPDK physical ports are enabled with Rx checksum > offload. Rx > -checksum offload can be configured on a DPDK physical port either > when adding > -or at run time. > - > -To disable Rx checksum offload when adding a DPDK port dpdk-p0:: > - > - $ ovs-vsctl add-port br0 dpdk-p0 -- set Interface dpdk-p0 > type=dpdk \ > - options:dpdk-devargs=0000:01:00.0 > options:rx-checksum-offload=false > - > -Similarly to disable the Rx checksum offloading on a existing DPDK > port dpdk-p0:: > - > - $ ovs-vsctl set Interface dpdk-p0 > options:rx-checksum-offload=false > +By default, DPDK physical ports are enabled with Rx checksum offload. > > Rx checksum offload can offer performance improvement only for > tunneling > @@ -294,8 +283,4 @@ traffic in OVS-DPDK because the checksum > validation of tunnel packets is > offloaded to the NIC. Also enabling Rx checksum may slightly reduce > the > performance of non-tunnel traffic, specifically for smaller size > packet. > -DPDK vectorization is disabled when checksum offloading is > configured on DPDK > -physical ports which in turn effects the non-tunnel traffic > performance. > -So it is advised to turn off the Rx checksum offload for non-tunnel > traffic use > -cases to achieve the best performance. > > .. _extended-statistics: > diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c > index b770b70..79afda5 100644 > --- a/lib/netdev-dpdk.c > +++ b/lib/netdev-dpdk.c > @@ -719,27 +719,4 @@ dpdk_eth_dev_queue_setup(struct netdev_dpdk > *dev, int n_rxq, int n_txq) > > static void > -dpdk_eth_checksum_offload_configure(struct netdev_dpdk *dev) > - OVS_REQUIRES(dev->mutex) > -{ > - struct rte_eth_dev_info info; > - bool rx_csum_ol_flag = false; > - uint32_t rx_chksm_offload_capa = DEV_RX_OFFLOAD_UDP_CKSUM | > - DEV_RX_OFFLOAD_TCP_CKSUM | > - DEV_RX_OFFLOAD_IPV4_CKSUM; > - rte_eth_dev_info_get(dev->port_id, &info); > - rx_csum_ol_flag = (dev->hw_ol_features & > NETDEV_RX_CHECKSUM_OFFLOAD) != 0; > - > - if (rx_csum_ol_flag && > - (info.rx_offload_capa & rx_chksm_offload_capa) != > - rx_chksm_offload_capa) { > - VLOG_WARN_ONCE("Rx checksum offload is not supported on > device %"PRIu8, > - dev->port_id); > - dev->hw_ol_features &= ~NETDEV_RX_CHECKSUM_OFFLOAD; > - return; > - } > - netdev_request_reconfigure(&dev->up); > -} > - > -static void > dpdk_eth_flow_ctrl_setup(struct netdev_dpdk *dev) > OVS_REQUIRES(dev->mutex) > { > @@ -759,7 +736,19 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev) > int diag; > int n_rxq, n_txq; > + uint32_t rx_chksm_offload_capa = DEV_RX_OFFLOAD_UDP_CKSUM | > + DEV_RX_OFFLOAD_TCP_CKSUM | > + DEV_RX_OFFLOAD_IPV4_CKSUM; > > rte_eth_dev_info_get(dev->port_id, &info); > > + if ((info.rx_offload_capa & rx_chksm_offload_capa) != > + rx_chksm_offload_capa) { > + VLOG_WARN_ONCE("Rx checksum offload is not supported on > device %"PRIu8, > + dev->port_id); > > I don’t think we want _ONCE for this. > I will change this and also use "port" instead of "device" as otherwise we get this 2017-06-09T09:36:28Z|00088|netdev_dpdk|WARN|Rx checksum offload is not supported on device 0 2017-06-09T09:36:28Z|00089|netdev_dpdk|INFO|Port 0: ec:f4:bb:db:fc:38 > > + dev->hw_ol_features &= ~NETDEV_RX_CHECKSUM_OFFLOAD; > + } else { > + dev->hw_ol_features |= NETDEV_RX_CHECKSUM_OFFLOAD; > + } > + > n_rxq = MIN(info.max_rx_queues, dev->up.n_rxq); > n_txq = MIN(info.max_tx_queues, dev->up.n_txq); > @@ -1205,6 +1194,4 @@ netdev_dpdk_set_config(struct netdev *netdev, > const struct smap *args, > {RTE_FC_RX_PAUSE, RTE_FC_FULL } > }; > - bool rx_chksm_ofld; > - bool temp_flag; > const char *new_devargs; > int err = 0; > @@ -1288,14 +1275,4 @@ netdev_dpdk_set_config(struct netdev *netdev, > const struct smap *args, > } > > - /* Rx checksum offload configuration */ > - /* By default the Rx checksum offload is ON */ > - rx_chksm_ofld = smap_get_bool(args, "rx-checksum-offload", true); > - temp_flag = (dev->hw_ol_features & NETDEV_RX_CHECKSUM_OFFLOAD) > - != 0; > - if (temp_flag != rx_chksm_ofld) { > - dev->hw_ol_features ^= NETDEV_RX_CHECKSUM_OFFLOAD; > - dpdk_eth_checksum_offload_configure(dev); > - } > - > out: > ovs_mutex_unlock(&dev->mutex); > diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml > index d219bfd..672772a 100644 > --- a/vswitchd/vswitch.xml > +++ b/vswitchd/vswitch.xml > @@ -3384,18 +3384,4 @@ > </group> > > - <group title="Rx Checksum Offload Configuration"> > - <p> > - The checksum validation on the incoming packets are > performed on NIC > - using Rx checksum offload feature. Implemented only for > <code>dpdk > - </code>physical interfaces. > - </p> > - > - <column name="options" key="rx-checksum-offload" > - type='{"type": "boolean"}'> > - Set to <code>false</code> to disble Rx checksum offloading > on <code> > - dpdk</code>physical ports. By default, Rx checksum offload > is enabled. > - </column> > - </group> > - > <group title="Common Columns"> > The overall purpose of these columns is described under > <code>Common > -- > 1.8.3.1 > > _______________________________________________ > dev mailing list > [email protected] > > https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.openvswitch.org_mailman_listinfo_ovs-2Ddev&d=DwICAg&c=uilaK90D4TOVoH58JNXRgQ&r=BVhFA09CGX7JQ5Ih-uZnsw&m=NSXw7qOD2HZzLP_rXKlsKwt8hRkPrRkHTyIlFQiOxsc&s=BWwu_9StV8xigBdp8zUXImjpD7vQd8MRNy5Prp-D35Y&e= > > > > _______________________________________________ > dev mailing list > [email protected] > > https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.openvswitch.org_mailman_listinfo_ovs-2Ddev&d=DwICAg&c=uilaK90D4TOVoH58JNXRgQ&r=BVhFA09CGX7JQ5Ih-uZnsw&m=qjE-blVbdo4YrmEEO3WtAc0Ov07SHlqxTGMC5dBFL_g&s=x2gW--rPdIVP2W0dsxrHq2DNyRRZmTBsVSqWagQNbvw&e= > > > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
