From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0D3F7A04AA; Tue, 8 Sep 2020 09:53:43 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E5C651BE0C; Tue, 8 Sep 2020 09:53:42 +0200 (CEST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id BDAA31B9B7 for ; Tue, 8 Sep 2020 09:53:41 +0200 (CEST) IronPort-SDR: gZkZ4LjM2eQjf4AYJ+9jrnYdtEY40KjpETmLhmEuDn8lKFIslLJwRCzspwhOXU8AtSiSUcfmtQ hlkloum0KSrg== X-IronPort-AV: E=McAfee;i="6000,8403,9737"; a="155578550" X-IronPort-AV: E=Sophos;i="5.76,405,1592895600"; d="scan'208";a="155578550" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Sep 2020 00:53:34 -0700 IronPort-SDR: Lc/zm005k7yrdUnx7QlCtDA4VMMT+tDSlHpIZvc0/tM0HebmZcVyalZU7FQHLXd4OPNSb2z/v3 gXbOLeLg8/cw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,405,1592895600"; d="scan'208";a="407058198" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga001.fm.intel.com with ESMTP; 08 Sep 2020 00:53:34 -0700 Received: from orsmsx604.amr.corp.intel.com (10.22.229.17) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 8 Sep 2020 00:53:34 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 8 Sep 2020 00:53:34 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.173) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Tue, 8 Sep 2020 00:53:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ECslMfOlkxuPXhGnsPLoqWqmXEVK7aBnhA4C629WQD9lvyTTwRH5e8m5knqKQdKPAon2RNLVysItozWSZyuPfM5WqVAiMFRVphKrxruuUBGuo/meGlnTZIh0BbCXceNsSwYNm66iFBkrQ3qOFCsY7WnuY2elYy8i1PCLN6Onb/9mmQSs6u+OxhDesQrd0ji0ySZbjnG2RBq7uDKwTHsM0MNJQic+pX9iQkwTeHCntIveQ3swg9Ec87bEtPsVlvsVNKL+O7hNeQM29O9fvvWg9kcuid0+QgMw/6ENvE/WU/q81jnBsEiBSEEDY4/a214XzMFchDvEZXycdsOLdZV8mg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ti0wQr5uPQWq71nLhP7LUL/c2y6QgaEJIRh2LRWby1k=; b=fdItA8SPc9JObmR7F2gXmFEbuyw3+MpBKAPCAcsPXD38dUGifN+TWbNDsoL0F93C5VqGM63SeVs2NsIkf0/BMLV9wWq6tZftILYRtU0OsE2GyGhRAK2IOHR2op8Hsah7jh1iWlZryz6qPfCxrAAe6xaMKNapx5yvhXQ4w294JnR87lz0RJbm1flCON2EuxrSZqbMbCkSHZtp3doEjWhJaJc0YAj1nAsQwXM/Xf42Mp3JljLnBEnxKfxtf0X5HJyPQYhqLZZT+j7goQGPf6Ft5Qc0m3JtxJK5/hfQEZhiaaJMwRPqfZ7U9+Uqi8Ip/4x2ie5P3LwazmtHzxgBMta/nA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ti0wQr5uPQWq71nLhP7LUL/c2y6QgaEJIRh2LRWby1k=; b=Bdv7XdXbY9hqjcnzCqp1zDZhOLK9kVPs5wTuZfHVler3jDDSl+tYx4EeWrKNQ00+wSvXKUfT7APGA4O1XvAFuRQWUdErPJQWTcPgKP+qg2H9BH4e7GQhrfy5izeFa8t4sFZcReJvPUbyvO9va9PHTLbkIIjKpZaz7e5Ar4awOeg= Received: from CY4PR1101MB2310.namprd11.prod.outlook.com (2603:10b6:910:1b::16) by CY4PR11MB1429.namprd11.prod.outlook.com (2603:10b6:910:9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3348.19; Tue, 8 Sep 2020 07:53:31 +0000 Received: from CY4PR1101MB2310.namprd11.prod.outlook.com ([fe80::64a7:149e:a731:4f3d]) by CY4PR1101MB2310.namprd11.prod.outlook.com ([fe80::64a7:149e:a731:4f3d%12]) with mapi id 15.20.3348.019; Tue, 8 Sep 2020 07:53:31 +0000 From: "Xu, Ting" To: "Yang, SteveX" , "dev@dpdk.org" CC: "Yang, Qiming" , "Wu, Jingjing" , "Xing, Beilei" , "Yang, SteveX" Thread-Topic: [dpdk-dev] [PATCH v3 5/6] net/iavf: fix multiple interrupts for VF Thread-Index: AQHWgo+eB3vwUNXD40uHV+UynrfYFaleYQiQ Date: Tue, 8 Sep 2020 07:53:31 +0000 Message-ID: References: <20200827011410.18401-1-stevex.yang@intel.com> <20200904072907.10648-1-stevex.yang@intel.com> <20200904072907.10648-6-stevex.yang@intel.com> In-Reply-To: <20200904072907.10648-6-stevex.yang@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.37] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 403e364e-3035-4b7a-c38a-08d853cc47d0 x-ms-traffictypediagnostic: CY4PR11MB1429: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5t4kyEWNAN0eV/d5l9dcku8DyD2AQWF/+InZsEnaeYnVk4UtplGPFgH5QW2Sj5TeVkXksFg1q/pjq0Chn0qMzm8g0H9OsHV0NYD4YeCiiuXuvP8JSv15YTfye/kVdmFKaTaAp5jX6I1Crhd7uqNGh+OYWlZEbkHCW1Bp+aQxnXPFFoqB91j76tXBE6Ham5uymGIOEfs8diGA07vUGsmqDew0GD34/CBUkuRVvA3XmA+pXbbYF0GOBpjLK9xjV3p89R97GGGpYTJ7+R2DsDFr7/7Cxul3rrs6zpV4ZgRmekmiZJLdIcgjcW+EbXZqRWKqzvE/L/fabt/NOTJuCvNm9g== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CY4PR1101MB2310.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(346002)(376002)(136003)(366004)(396003)(52536014)(8676002)(478600001)(9686003)(2906002)(316002)(8936002)(107886003)(6506007)(7696005)(53546011)(4326008)(86362001)(55016002)(186003)(26005)(54906003)(110136005)(5660300002)(33656002)(83380400001)(66556008)(71200400001)(66946007)(76116006)(66476007)(66446008)(64756008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: QrADUYrn4zogJTmNlPsu5/9zXVZx0vnLcNR5m9zBbqgzOQMbiFJXiEABjtMZ4Zc41gx7ES8wHuIaWgutfQuwfQK3ekSi5wff+AcfcmGbAvxHAXfaiM2PniXPhAo+1y0udQ2SUMSnBEdIU0+SSzlF+K0ZOp2ivFOkQxqf876Sx8l8Zfzh2nTkoc8Q1PUy9JmXVpnSucLGBQlS5izmT5y+bESq385cjohaGvuWz9wkJSv0rJ/Vf51J6hYmYnlYPgsDnj0nYYKtC9ywHFlqm/24P6sxWHZNSGaLncJixcVJ7TXrv31akRJoFWyPEY9Cs39+4Vy2vrUX5spiPme3ZdgFUj842WJPTTwYQsoP1ktKFrV+/Mp9eD+0AtMiXkt1WELA8Sj7R5nqCtSJUUWur4AODT1+WacWbqOUemxLgrlnSzgyS3+RXIWhniOpCrKXH2fw+pwLE584BltuH5ZVnnVzqP8Zj2Z84F1TgKSkqaLDIlhtf6PazfOs2XS1gjmCHxXwSIJCcOU4LQs9igO3pTGOcoQ3sQIoO6BnZvB40k6Xy2Hl8J1klNaj6lYBF6gax3p6elm22Jqvz1Th/OSLmNv0ivzMDlp4LVcES1fNf2e+Iha8WMy/yo/mA28udf4BFg9+tPw8sAZhGRE58dU8ZgZEoA== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR1101MB2310.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 403e364e-3035-4b7a-c38a-08d853cc47d0 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Sep 2020 07:53:31.2194 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: oWpV1Qzrk4bg/IprpfcW0mgNza6ahWfjJI2HcDwjCZZxMNWSrXHSUYdOxxfR6AemMU/RgnIj3Wyl6aojwjdQFw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1429 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v3 5/6] net/iavf: fix multiple interrupts for VF X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi, Steve, I am also coding on this part for large VF recently, and see that you sent = a fix patch, and I have some questions not quite clear, which are shown bel= ow in inline. Thanks! Best Regards, Xu Ting > -----Original Message----- > From: dev On Behalf Of SteveX Yang > Sent: Friday, September 4, 2020 3:29 PM > To: dev@dpdk.org > Cc: Yang, Qiming ; Wu, Jingjing > ; Xing, Beilei ; Yang, Stev= eX > > Subject: [dpdk-dev] [PATCH v3 5/6] net/iavf: fix multiple interrupts for = VF >=20 > Interrupt mapping should be 1:n queue(s).This patch fixes the logic of > interrupt bind by code reconstruction. >=20 > Fixes: 69dd4c3d0898 ("net/avf: enable queue and device") >=20 > Signed-off-by: SteveX Yang > --- > drivers/net/iavf/iavf_vchnl.c | 56 ++++++++++++++++++++++++++++------- > 1 file changed, 45 insertions(+), 11 deletions(-) >=20 > diff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.= c index > 33acea54a..614ea7e79 100644 > --- a/drivers/net/iavf/iavf_vchnl.c > +++ b/drivers/net/iavf/iavf_vchnl.c > @@ -18,6 +18,7 @@ > #include > #include > #include > +#include >=20 > #include "iavf.h" > #include "iavf_rxtx.h" > @@ -686,20 +687,53 @@ int > iavf_config_irq_map(struct iavf_adapter *adapter) { > struct iavf_info *vf =3D IAVF_DEV_PRIVATE_TO_VF(adapter); > + struct iavf_cmd_info args; > + uint8_t *cmd_buffer =3D NULL; > struct virtchnl_irq_map_info *map_info; > struct virtchnl_vector_map *vecmap; > - struct iavf_cmd_info args; > - int len, i, err; > + struct rte_eth_dev *dev =3D adapter->eth_dev; > + struct rte_pci_device *pci_dev =3D RTE_ETH_DEV_TO_PCI(dev); > + struct rte_intr_handle *intr_handle =3D &pci_dev->intr_handle; > + uint32_t vec, cmd_buffer_size, max_vectors, nb_msix, msix_base, i; > + uint16_t rxq_map[vf->vf_res->max_vectors]; > + int err; >=20 > - len =3D sizeof(struct virtchnl_irq_map_info) + > - sizeof(struct virtchnl_vector_map) * vf->nb_msix; > + memset(rxq_map, 0, sizeof(rxq_map)); > + if (dev->data->dev_conf.intr_conf.rxq && > + rte_intr_allow_others(intr_handle)) { > + msix_base =3D IAVF_RX_VEC_START; > + max_vectors =3D vf->vf_res->max_vectors - 1; > + nb_msix =3D RTE_MIN(max_vectors, intr_handle->nb_efd); > + > + vec =3D msix_base; > + for (i =3D 0; i < dev->data->nb_rx_queues; i++) { > + rxq_map[vec] |=3D 1 << i; > + intr_handle->intr_vec[i] =3D vec++; > + if (vec >=3D vf->vf_res->max_vectors) > + vec =3D msix_base; > + } > + } else { > + msix_base =3D IAVF_MISC_VEC_ID; > + nb_msix =3D 1; >=20 > - map_info =3D rte_zmalloc("map_info", len, 0); > - if (!map_info) > - return -ENOMEM; > + for (i =3D 0; i < dev->data->nb_rx_queues; i++) { > + rxq_map[msix_base] |=3D 1 << i; > + if (rte_intr_dp_is_en(intr_handle)) > + intr_handle->intr_vec[i] =3D msix_base; > + } > + } >=20 This part to configure parameters like nb_msix, msix_base and rxq_map, is a= lready done in the upper level function iavf_config_rx_queues_irqs, why sha= ll we do it again here? Or is it OK to change in that function directly if = necessary? > - map_info->num_vectors =3D vf->nb_msix; > - for (i =3D 0; i < vf->nb_msix; i++) { > + cmd_buffer_size =3D sizeof(struct virtchnl_irq_map_info) + > + sizeof(struct virtchnl_vector_map) * nb_msix; > + cmd_buffer =3D rte_zmalloc("iavf", cmd_buffer_size, 0); > + if (!cmd_buffer) { > + PMD_DRV_LOG(ERR, "Failed to allocate memory"); > + return IAVF_ERR_NO_MEMORY; > + } > + > + map_info =3D (struct virtchnl_irq_map_info *)cmd_buffer; > + map_info->num_vectors =3D nb_msix; > + for (i =3D 0; i < nb_msix; i++) { > vecmap =3D &map_info->vecmap[i]; > vecmap->vsi_id =3D vf->vsi_res->vsi_id; > vecmap->rxitr_idx =3D IAVF_ITR_INDEX_DEFAULT; @@ -709,8 Here is a line of code "vecmap->rxq_map =3D vf->rxq_map[vf->msix_base + i];= " not displayed. I noticed that this is not changed. That means we still us= e the bitmap configured in iavf_config_rx_queues_irqs, not the new one here= (although they may be the same) But it seems that the new rxq_map is not used. Do I miss something? Thank! > +743,8 @@ iavf_config_irq_map(struct iavf_adapter *adapter) > } >=20 > args.ops =3D VIRTCHNL_OP_CONFIG_IRQ_MAP; > - args.in_args =3D (u8 *)map_info; > - args.in_args_size =3D len; > + args.in_args =3D (u8 *)cmd_buffer; > + args.in_args_size =3D cmd_buffer_size; > args.out_buffer =3D vf->aq_resp; > args.out_size =3D IAVF_AQ_BUF_SZ; > err =3D iavf_execute_vf_cmd(adapter, &args); > -- > 2.17.1