From mboxrd@z Thu Jan 1 00:00:00 1970 From: santosh Subject: Re: [PATCH v4 2/2] ethdev: get the supported pools for a port Date: Fri, 29 Sep 2017 06:00:13 +0100 Message-ID: <385a9723-9831-e5c0-6d4a-ecd69d0f34e3@caviumnetworks.com> References: <20170815080717.9413-1-santosh.shukla@caviumnetworks.com> <20170911151837.25092-1-santosh.shukla@caviumnetworks.com> <20170911151837.25092-3-santosh.shukla@caviumnetworks.com> <20170925073728.auchwn7mxx63b32j@platinum> <8b832367-e8fa-077a-1732-50627e977f9c@caviumnetworks.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: dev@dpdk.org, thomas@monjalon.net, jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com To: Olivier MATZ Return-path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0044.outbound.protection.outlook.com [104.47.40.44]) by dpdk.org (Postfix) with ESMTP id 5E9042B9A for ; Fri, 29 Sep 2017 07:00:27 +0200 (CEST) In-Reply-To: <8b832367-e8fa-077a-1732-50627e977f9c@caviumnetworks.com> 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 Olivier, On Monday 25 September 2017 10:52 PM, santosh wrote: > Hi Olivier, > > > On Monday 25 September 2017 08:37 AM, Olivier MATZ wrote: >>> +{ >>> + struct rte_eth_dev *dev; >>> + const char *tmp; >>> + >>> + RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV); >>> + >>> + if (pool == NULL) >>> + return -EINVAL; >>> + >>> + dev = &rte_eth_devices[port_id]; >>> + >>> + if (*dev->dev_ops->pools_ops_supported == NULL) { >>> + tmp = rte_eal_mbuf_default_mempool_ops(); >>> + if (!strcmp(tmp, pool)) >>> + return 0; >>> + else >>> + return -ENOTSUP; >> I don't understand why we are comparing with >> rte_eal_mbuf_default_mempool_ops(). >> >> It means that the result of the function would be influenced >> by the parameter given by the user. > But that will be only for ops not supported case and in that case, > function _must_ make sure that if inputted param is _default_ops_name > then function should return ops supported correct info (whether > returning '0' : Best ops or '1': ops does support > , this part is arguable.. meaning One can say that default_ops ='handle-name' is best possible handle Or > one of handle which platform supports). > >> I think that a PMD that does not implement ->pools_ops_supported >> should always return 1 (mempool is supported). > Return 1 says: PMD support this ops.. > > So if ops is not supported and func returns with 1, then which ops application will use? > If that ops is default_ops.. then How application will distinguish when to use default ops or > param ops?.. as because in both cases func will return with value 1. > > The approach in the patch takes care of that condition and func will return -ENOTSUP > if (ops not support || inputted param not matching with default ops) otherwise will return > 0 or 1. > > At application side; > For error case: In case of -ENOTSUP, its upto application to use _default_ops or exit. > For good case: 0 or 1 case, func gaurantee that handle is either best handle for pool or pool supports > that handle.. However in your suggestion if ops not supported case returns 1 then application is not > sure which ops to use.. default_ops Or input ops given to func. > > make sense? Ping? Are you fine with said explanation if not then would you share your thought in case if ops not supported returns simply 1 if then how application differentiate whether to use default_ops Or inputted param ops.. as return value 1 holds true for both cases, so how application will pick and choose which ops to use? Can we pl. close on this? need to send v5 for -rc1 release. Thanks.