[dpdk-dev] [RFC 2/9] net/avf: initilization of avf PMD

Ferruh Yigit ferruh.yigit at intel.com
Wed Nov 22 01:02:06 CET 2017


On 10/20/2017 1:26 AM, Jingjing Wu wrote:
> Signed-off-by: Jingjing Wu <jingjing.wu at intel.com>

<...>

>  #
> +# Compile burst-oriented AVF PMD driver
> +#
> +CONFIG_RTE_LIBRTE_AVF_PMD=y

Lets start PMD disabled and enable it after it become functional.

If you need to run a git bisect in the future on this commit, and you have a AVF
supported device. Device will be probed but since this patch is missing
avf_eth_dev_ops, I am not sure how app behaves, it may fail or crash, and you
can't complete git bisect run because of this patch.

<...>

> @@ -69,6 +69,8 @@ DIRS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e
>  DEPDIRS-i40e = $(core-libs) librte_hash
>  DIRS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe
>  DEPDIRS-ixgbe = $(core-libs) librte_hash
> +DIRS-$(CONFIG_RTE_LIBRTE_AVF_PMD) += avf

Can you please add this in alphabetically sorted manner?

> +DEPDIRS-avf = $(core-libs)

This is changed in prev release, DEPDIRS removed and library dependency part
moved to individual driver files as LDLIBS variable.

<...>

> +#
> +# Add extra flags for base driver files (also known as shared code)
> +# to disable warnings
> +#
> +ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
> +CFLAGS_BASE_DRIVER = -wd593 -wd188
> +else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
> +CFLAGS_BASE_DRIVER += -Wno-sign-compare
> +CFLAGS_BASE_DRIVER += -Wno-unused-value
> +CFLAGS_BASE_DRIVER += -Wno-unused-parameter
> +CFLAGS_BASE_DRIVER += -Wno-strict-aliasing
> +CFLAGS_BASE_DRIVER += -Wno-format
> +CFLAGS_BASE_DRIVER += -Wno-missing-field-initializers
> +CFLAGS_BASE_DRIVER += -Wno-pointer-to-int-cast
> +CFLAGS_BASE_DRIVER += -Wno-format-nonliteral
> +CFLAGS_BASE_DRIVER += -Wno-unused-variable

Lots of these common for clang and gcc, can it be possible to remove duplication?

> +else
> +CFLAGS_BASE_DRIVER  = -Wno-sign-compare
> +CFLAGS_BASE_DRIVER += -Wno-unused-value
> +CFLAGS_BASE_DRIVER += -Wno-unused-parameter
> +CFLAGS_BASE_DRIVER += -Wno-strict-aliasing
> +CFLAGS_BASE_DRIVER += -Wno-format
> +CFLAGS_BASE_DRIVER += -Wno-missing-field-initializers
> +CFLAGS_BASE_DRIVER += -Wno-pointer-to-int-cast
> +CFLAGS_BASE_DRIVER += -Wno-format-nonliteral
> +CFLAGS_BASE_DRIVER += -Wno-format-security
> +CFLAGS_BASE_DRIVER += -Wno-unused-variable

Are these options to remove warnings specific to this driver? Looks like
copy-paste from old driver.

I believe we should reduce number of disabled compiler warning as much as
possible, what do you think removing them all and add back if it is needed?
This may cause a few compile fix patches but if they are send before integration
deadline, they can be squashed in next-net.

<...>

> +static int
> +avf_init_vf(struct rte_eth_dev *dev)
> +{
> +	int i, err, bufsz;
> +	struct avf_adapter *adapter =
> +		AVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
> +	struct avf_hw *hw = AVF_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> +	struct avf_info *vf = AVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
> +	uint16_t interval =
> +		avf_calc_itr_interval(AVF_QUEUE_ITR_INTERVAL_MAX);
> +
> +	err = avf_set_mac_type(hw);
> +	if (err) {
> +		PMD_INIT_LOG(ERR, "set_mac_type failed: %d", err);

You may want to dynamically register log type and level (rte_log_register,
rte_log_set_level) for avf_logtype_init & avf_logtype_driver before start using
loggig functions.

<...>

> +/*
> + * virtual function driver struct
> + */
> +static struct rte_pci_driver rte_avf_pmd = {
> +	.id_table = pci_id_avf_map,
> +	.drv_flags = RTE_PCI_DRV_NEED_MAPPING,

RTE_PCI_DRV_IOVA_AS_VA ? As it has been added to i40e vf driver.

<...>

> diff --git a/drivers/net/avf/rte_pmd_avf_version.map b/drivers/net/avf/rte_pmd_avf_version.map
> new file mode 100644
> index 0000000..a70bd19
> --- /dev/null
> +++ b/drivers/net/avf/rte_pmd_avf_version.map
> @@ -0,0 +1,4 @@
> +DPDK_17.11 {

Needs to be changed for new release.

<...>


More information about the dev mailing list