From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 006B442A09; Wed, 26 Apr 2023 18:55:11 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E5E79410FA; Wed, 26 Apr 2023 18:55:11 +0200 (CEST) Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2048.outbound.protection.outlook.com [40.107.100.48]) by mails.dpdk.org (Postfix) with ESMTP id A283E4068E for ; Wed, 26 Apr 2023 18:55:10 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eRIuOOj+PtaB7dgxBVn+riD7BcJHHH8g6E4IwDeEC2idBk87dP7DV7qaFo4nP3i9KpdyHZQBAQWoe45xqd0MDll5lVIUn54/teridtrQz4jP5hJUUHi2RyjzjV25P/bh8q+cKBkn+BRslZMvMhMwp8WgXBvMofvaBYsYf97Ip3ytVU0y6vYmBKaH6zsep9hUIGNx2SB+Vfgn3Kf9kl6Off8lcdHKBkmt5iULxkU5DANaJtk7PgxwMzcqipg/u9MU9WlqL7GDlu5o3Kwp/wM5sgnLglDCKRTcgiKX/hE8Auv8riuqizTwJmDjL5AFamCbtWlf9R/YtXq2PBboqyccCg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=xEgjklJiX3L8u7ayZi7aD2Z9rVA/ecpkOB5Uhz1uTuA=; b=JFW/EDVHQcc2ERL8MEKtyNrxJ+vnVlQbYHn2qc9iOngwlo9mCu39sEZ5wbRp2PFQ9t/TiEdbu3NpHHBBboRffwzTGpePdBdDX2don6ElO82zH4eK9RZ6182fsvBxwoVq79tP6w1SfObiBXVB7BxYvfQIL8qtslybOirnVAxphQljF/4iIxppFw8PzkoUOuDDl6tlbKyo31yZcrzMuJPVJ8UJpqE7r2itUG3ITw6qng3wjRwKOz//6SZSFN+otE7mnyfgYuHvKzwsHhPfqgZAJJAEeVHZiZsut3w/118qnIdycSH8NgNpWGKF/JtUE+V7WlnKMvevc0Y5NctCRp4jPg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xEgjklJiX3L8u7ayZi7aD2Z9rVA/ecpkOB5Uhz1uTuA=; b=N+VYpFcvAkhnErH69qqI9wSbcTQ99HWu7J1dZA1xeWyYKaYCiJDY7fOpPHcsMKh/92Pjs0bcXEbgEyd+4HbNG5v+mGSWoFmosSbfVmBTeFZ+rOEGE47CAR6ezBOwy8E+Tj04fbtYpSpzIMV6SjwaZEnlvlcNHNDnYtgldEz/Z4Q= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB4301.namprd12.prod.outlook.com (2603:10b6:208:1d4::22) by CH3PR12MB7713.namprd12.prod.outlook.com (2603:10b6:610:14d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.21; Wed, 26 Apr 2023 16:55:08 +0000 Received: from MN2PR12MB4301.namprd12.prod.outlook.com ([fe80::6f2d:9990:c8b5:714a]) by MN2PR12MB4301.namprd12.prod.outlook.com ([fe80::6f2d:9990:c8b5:714a%6]) with mapi id 15.20.6340.021; Wed, 26 Apr 2023 16:55:08 +0000 Message-ID: Date: Wed, 26 Apr 2023 17:55:03 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Content-Language: en-US To: Ronak Doshi , Jochen Behrens , Thomas Monjalon , Andrew Rybchenko Cc: dev@dpdk.org References: <20230412162636.30843-1-doshir@vmware.com> <20230412162636.30843-3-doshir@vmware.com> From: Ferruh Yigit Subject: Re: [PATCH next 2/7] vmxnet3: add support for capability registers In-Reply-To: <20230412162636.30843-3-doshir@vmware.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO6P123CA0029.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:313::14) To MN2PR12MB4301.namprd12.prod.outlook.com (2603:10b6:208:1d4::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN2PR12MB4301:EE_|CH3PR12MB7713:EE_ X-MS-Office365-Filtering-Correlation-Id: ce8d2d14-427c-4cf6-b389-08db4676fe14 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: etdlVTf/jRGmOgoQ+BGB5KJ0JWSxuKsMcHiwG8xoLz3F/atKQEWeinBfrFaEsfZyEl2sBhAsp4ldXp24WxalyOsXqLusFkEA89z29BWMHSet/0u5tqups73maLRp2hfVVqRkfqi8wzt51M+6Uze8nDVO4DlOdeT7O6iutdCi+mJNUY2Kyc6tdZawCoV6BgSiPjpo37tXXWJCMpQDzZ2S91FxFXHA4+p5L44Ggfa3xxkA9hSClyMr4zwH1WD2LjTl10tzo1qSqsrrsOf7L1gr9h8+z0zWq1FGJc7qtTwuIZrCKImJgq50xDdyYHsQdzX3nrqsCus4iP4C0LM/BO2erewT45pebZlB0IvKMe+S9bG+ecwCxce1oZd4OTVxvAgP9N96JcM861cTgdmrTxpMm/mNRUAOw3OK5OIymFEHnPIuIKep/tuNoruBYV87R64kcxbkbkjeiQAXsRuWaMlz8LJw1tr/DeZ1av7ggNmj198VTttAglbfL3Nq9wOepIxOIusqoWiq7KiV3dZESXUHORj2wEikN90gvx0rTsuYgfBVM0f7FbqFQJ/fCKFmO7pHWjnwd4U3JwcXd1Td6NpQRPGIUosDLqn7gzGc0Xyd25F3nOiyUFe4ScNJENaTdaB962RnSNJL0DwnbCySDY+sgg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB4301.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(376002)(39860400002)(366004)(396003)(136003)(346002)(451199021)(31686004)(26005)(6506007)(6512007)(38100700002)(6486002)(478600001)(66476007)(66556008)(41300700001)(66946007)(31696002)(36756003)(86362001)(6666004)(4326008)(110136005)(316002)(2616005)(83380400001)(186003)(53546011)(8676002)(2906002)(8936002)(5660300002)(44832011)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Vm82QmZxc2J5L0E4b0IwRHQydWRpNDFKb3BxOENSWXljcjZYdG02MlFCZEtY?= =?utf-8?B?T1MxNE4rNlU0RzMzRmtjRHQ0aEZSYnNxbkZjQjRrdVYwbkJzVnlOdUVtYUZh?= =?utf-8?B?Vy9xRktrWDhIYjdQUTdUNFNNN3pOVjlEMTQyRjVsc3duQ2Ewb2dBLzgzeVhz?= =?utf-8?B?RWZRcG5jc0VnaHRibTArTCtLMTZabTkwMGttaVI3bG9yMjdtdXZtblhoOXgv?= =?utf-8?B?ZHJWMmZhSXFvUWd0bW0rb2VRNk85dk81UHZ4OHdnN2RCdGQ1ZzUrTXA4cG00?= =?utf-8?B?QmJwUzRoR1lsM3VtS0FrL0Mya2UxSWFuMmJRZ0lINThNbHBIcGtlZjQxRU5H?= =?utf-8?B?bVZOSGR5T1J6MmNITnRZd3kvWktRcVpGdTFKbCt3akc3SjVYc2gyVDRUM01t?= =?utf-8?B?emp6dzdTbS9wek9CVk9mdGdMWnVFSDlvZm40QTQwc0pIZ0IxUnhCUkptY0Jh?= =?utf-8?B?WW5zRG5wb3hscHZib3FMWFNpdUJFcEt2aUIvVFVTbGZ1cGZnL3F0V1BYdVlY?= =?utf-8?B?dDNRYytVTU5hcGlKV1hHRG9VZlRpMU96eDZiWUI4WFJLU1krMHhGSVAxV0lM?= =?utf-8?B?T3BwaTFOK2JRY2Vsa05iWUdPcFBMcjV2ZlVQSlo2bGR4Mitvd0k0c3ptT0FZ?= =?utf-8?B?QjN3V3FaYktmQ3JHMHBFQllRSEo3ZDVrakFsRnVxc2Fwc3Q0MTNmMXpKdjQ2?= =?utf-8?B?OUgvdkQwQS9DS1ZFY2hXMzNZemxIS3o4VHQwWFp2eWZucm1zYzFzS3ZjeEw5?= =?utf-8?B?V2RSWUtURkp5dmxDM3FBT2o4ekI4RFg2Mjh5dGpuVWVEWkhKaWJkWWl3ci9C?= =?utf-8?B?ckNFQWdhdnZ6bk9TdGw0TkVVV2UxRkZuQXBQMHFneEN2emxaOXYvR0ZWbDJZ?= =?utf-8?B?b243OGtwRjBPSWRkUmY3VE1EL2QvcFdPUExMS3ErV1hJUVJ3QzkxTTRjNXZV?= =?utf-8?B?UDYyQzRVWDBGQmF1THp1T09OOFZUUGZnTUlFR2VlNlBVQXBTeHNRUElFSVIw?= =?utf-8?B?dGhYVnJtT2dKWm1DMldIY3ZDWUZCWnVydG45b0V3cDdjbjVpK0dVOWczc0hm?= =?utf-8?B?VHNRTU5wRndvRXFoQVBMcGJPRlFFVHZiekR4ekVhcThmZ0c2VlZoSFpoanBU?= =?utf-8?B?Q21QaEhDMDJOTGVlYlMwZERVVVpJZFFpNklKTFBuV0pOb3BxdFg5MTdhdVpT?= =?utf-8?B?SCtTWmJscnhnSGREUmZsOXFtdGlrYXFOWklHT0lWYXQwNFVkVlprRVB5VWpH?= =?utf-8?B?SWpFS3NhZ3JhemR5NWdYU1VoaVBWdXdESVZVTXFGT3hXcWRNVUkvRjZOeUlG?= =?utf-8?B?U3NRcXZyWDRPcEVQenhEMEdIN3U5QzBoTzFkRkh2eXRHSCtneHFSRkdaNWdW?= =?utf-8?B?UmRSUWE1ZHlxbWo2aGlmVGJZbVFJaTErZ3ZCTW1hNitZaEpRdURETEcrWTVs?= =?utf-8?B?dVBCSGpHV2p4a2FHckxtUzBVVUY3dzNUd3RYSW1Sa3VraWtUV0ozbHpKeDh6?= =?utf-8?B?ZGN3bTNnK0EwNU9ndEVSMDRaZHlLY09wSFQ5N0pYQVg5Ymo3UUxlZlYvb052?= =?utf-8?B?VWxQYSs3WlN0aFJrd2V6MjE0U2NVb0xXS3YvRlFZcnA5RTNPd3RuWWc1ZjdU?= =?utf-8?B?UUxHQUpVbndEUG9OTHFYOUJpVldNN1Z4dlFOaWkzTm14RmlSWWhzNUJuQ1lB?= =?utf-8?B?cmZaSlYwVXNIcDBmdnZUejlDa0JCUDBtSEFObmdUU0dZbXYzU0grdXBybitU?= =?utf-8?B?R2laMjMrZkJaQ2pDemhNNFAwakVGNHYxV1pPOTlOMkY1alZSelhuRThVK2d6?= =?utf-8?B?bFNnWllmVDAzaHRoVE9rZ09oR0ZMU1BlYm0vUEt3MmpmU01FdlVEdWF1YkYv?= =?utf-8?B?YmJwVVJQTnJwMUtRdk94MGxTcm1XV2l3SGJDSkFHZU56WE5wSUJlT3E3cXVO?= =?utf-8?B?Qzc2Si9yZnhwQ0hac090VWRMSDhZVlR2aW5JVUZXaTFoMWQ5YVRNWDZOWHZs?= =?utf-8?B?ZzlUYy82YUU4SDRuV2t5UGxsYWhJZWN4K3A3UDAzSUlYdCsrNXRxR21YbXlQ?= =?utf-8?B?RWw0UUgwdWtYZ3EzSWQxQXI3Ym1WZmg3bEZGVXk3WFc2bnV3bHJLWW1PNEc3?= =?utf-8?Q?GgCuVPBSGQpHXomiE2FFGhwkg?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: ce8d2d14-427c-4cf6-b389-08db4676fe14 X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB4301.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2023 16:55:08.7938 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: kQi0iQXI7hD/Dlqt3zaf3nVkkaZ253IufQJaXb9E3GFNzWb8OL0nTHX4lY4nfUqY X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7713 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On 4/12/2023 5:26 PM, Ronak Doshi wrote: > This patch enhances vmxnet3 to suuport capability registers which s/suuport/support/ > allows it to enable features selectively. The DCR register tracks > the capabilities vmxnet3 device supports. The PTCR register states > the capabilities that the passthrough device supports. > > With the help of these registers, vmxnet3 can enable only those > features which the passthrough device supoprts. This allows s/supoprts/supports/ > smooth trasition to Uniform-Passthrough (UPT) mode if the virtual s/trasition/transition/ > nic requests it. If PTCR register returns nothing or error it means s/nic/NIC/ > UPT is not being requested and vnic will continue in emulation mode. > > Signed-off-by: Ronak Doshi > Acked-by: Jochen Behrens <...> > +static int > +eth_vmxnet3_setup_capabilities(struct vmxnet3_hw *hw, > + struct rte_eth_dev *eth_dev) > +{ > + uint32_t dcr, ptcr, value; > + struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev); > + > + VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_CMD, > + VMXNET3_CMD_GET_MAX_CAPABILITIES); > + value = VMXNET3_READ_BAR1_REG(hw, VMXNET3_REG_CMD); > + hw->max_capabilities[0] = value; > + dcr = VMXNET3_READ_BAR1_REG(hw, VMXNET3_REG_DCR); > + hw->DCR_capabilities[0] = dcr; > + hw->used_DCR_capabilities[0] = 0; > + ptcr = VMXNET3_READ_BAR1_REG(hw, VMXNET3_REG_PTCR); > + hw->PTCR_capabilities[0] = ptcr; > + hw->used_PTCR_capabilities[0] = 0; > + > + if (hw->uptv2_enabled && !(ptcr & (1 << VMXNET3_DCR_ERROR))) { > + PMD_DRV_LOG(NOTICE, "UPTv2 enabled"); > + hw->used_PTCR_capabilities[0] = ptcr; > + } else { > + /* Use all DCR capabilities, but disable large bar */ > + hw->used_DCR_capabilities[0] = dcr & > + (~(1UL << VMXNET3_CAP_LARGE_BAR)); > + PMD_DRV_LOG(NOTICE, "UPTv2 disabled"); > + } > + if (hw->DCR_capabilities[0] & (1UL << VMXNET3_CAP_OOORX_COMP) && > + hw->PTCR_capabilities[0] & (1UL << VMXNET3_CAP_OOORX_COMP)) { > + if (hw->uptv2_enabled) { > + hw->used_PTCR_capabilities[0] |= > + (1UL << VMXNET3_CAP_OOORX_COMP); > + } > + } > + if (hw->used_PTCR_capabilities[0]) { > + VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_DCR, > + hw->used_PTCR_capabilities[0]); > + } else if (hw->used_DCR_capabilities[0]) { > + VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_DCR, > + hw->used_DCR_capabilities[0]); > + } > + VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_CMD, VMXNET3_CMD_GET_DCR0_REG); > + dcr = VMXNET3_READ_BAR1_REG(hw, VMXNET3_REG_CMD); > + hw->used_DCR_capabilities[0] = dcr; > + PMD_DRV_LOG(NOTICE, "Dev "PCI_PRI_FMT", vmxnet3 v%d, UPT enabled: %s, " Checkpatch complains about syntax: HECK:CONCATENATED_STRING: Concatenated strings should use spaces between elements #200: FILE: drivers/net/vmxnet3/vmxnet3_ethdev.c:346: + PMD_DRV_LOG(NOTICE, "Dev "PCI_PRI_FMT", vmxnet3 v%d, UPT enabled: %s, " > + "DCR0=0x%08x, used DCR=0x%08x, " > + "PTCR=0x%08x, used PTCR=0x%08x", > + pci_dev->addr.domain, pci_dev->addr.bus, > + pci_dev->addr.devid, pci_dev->addr.function, hw->version, > + hw->uptv2_enabled ? "true" : "false", > + hw->DCR_capabilities[0], hw->used_DCR_capabilities[0], > + hw->PTCR_capabilities[0], hw->used_PTCR_capabilities[0]); This log level is NOTICE, making it visible by default. And this function always called when vesion >= 7. Are you sure to make log this verbose? Or can it be DEBUG level? <...> > --- a/lib/ethdev/rte_ethdev.h > +++ b/lib/ethdev/rte_ethdev.h > @@ -1606,6 +1606,8 @@ struct rte_eth_conf { > #define RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP RTE_BIT64(3) > /** Device supports keeping shared flow objects across restart. */ > #define RTE_ETH_DEV_CAPA_FLOW_SHARED_OBJECT_KEEP RTE_BIT64(4) > +/**< (vmxnet3) Device supports smart NIC pass through queues */ > +#define RTE_ETH_DEV_CAPA_PASS_THRU RTE_BIT64(5) 'dev_info->dev_capa' is for generic device capabilities, we can't have device specific capability here. Can you please describe why it is required to expose this capability to user, what user should do with this information?