From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f195.google.com (mail-wr0-f195.google.com [209.85.128.195]) by dpdk.org (Postfix) with ESMTP id A7CC44F93 for ; Tue, 27 Mar 2018 15:04:27 +0200 (CEST) Received: by mail-wr0-f195.google.com with SMTP id p53so14813232wrc.10 for ; Tue, 27 Mar 2018 06:04:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=cdnbSRf6WAF+WMz0uAtKYRxuXCgcMPPgEmV2YePtO5g=; b=y5eB4/+Y1pPshWOemK6mo9GpXASnClgr0JVuA+pBWoPNZh4cnvI9KA+EU7+rNahb8E SOxVFWVqZVBOhq0PDPiUJxYBrYDt22aELesT6dqRqLexUm/NDThloC1p8pSG955l7ZzB ct9k8qsaG4JUPNQOeJAJ8jYBVPpVyFbC3x1u3T1FgddijlfrPeY3P637uF0B3j+VY058 nnO0jeOYtxRDRL91MxzKE9l2omRc5k/S9c3yQ1F/rpaES+5/M/UHRcTlpHyogUPjAJ/h igy2/iOeK7F/Z3eNmhdg6Jp/QVFYh0dWWV1Bbdeh8ojGkTc796OkwkN21QLkOR3il8pq fvAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=cdnbSRf6WAF+WMz0uAtKYRxuXCgcMPPgEmV2YePtO5g=; b=IR5zuzWvf6rh4SL9UJTX3t5d++0yP1gmet+gRyTYYwk06d/MT+hJ1cRQGynaRHlbSl OnvHMmIIIo4c/rNs1S5PqirSgEN7s/9rVam2Cf71gbczmV9JfE7f57vILzBonRNoyNV8 a+Yb3q9ACXY6UvLZqaqE2yzQGWIC1bsiTGwbFG92F9asOQ7v7UETQEKQ8mmXoqGw2fSl 2ZjLOsKnCzcjls7uTkK4gKtGy6PdrwxPr0/fNmSmvKcEqAWbAcMJcdiXGefdWp5VWOvp y1heLw9bZgx2zq7mr+cP9TNVsy8zczMPjskdP+lVRImRv7cxUgszrVclvNrjvA4ZHPlv 9jDQ== X-Gm-Message-State: AElRT7He1ebLMTafOVrXjum+wuogRu0zLrG/eQ3/U1PUbPAYMYfJpLYy zeukE79KYSOOfUrQxB4nbB6q0gET X-Google-Smtp-Source: AG47ELtw8irNSj7LEPJZyfVPeaXiyUmpIsFUFF0cO2aZcrGksYNGOoxqspJAFgufGqdvtEh5rVBAcQ== X-Received: by 10.223.161.25 with SMTP id o25mr23541200wro.137.1522155867177; Tue, 27 Mar 2018 06:04:27 -0700 (PDT) Received: from bidouze.vm.6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id h197sm1326802wmd.3.2018.03.27.06.04.26 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 27 Mar 2018 06:04:26 -0700 (PDT) Date: Tue, 27 Mar 2018 15:04:13 +0200 From: =?iso-8859-1?Q?Ga=EBtan?= Rivet To: Neil Horman Cc: dev@dpdk.org, "Wiles, Keith" Message-ID: <20180327130413.s2waw6udjfehu77t@bidouze.vm.6wind.com> References: <20180327114750.GA30585@hmswarspite.think-freely.org> <20180327124000.6n63hpng53tm3bil@bidouze.vm.6wind.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180327124000.6n63hpng53tm3bil@bidouze.vm.6wind.com> User-Agent: NeoMutt/20170113 (1.7.2) Subject: Re: [dpdk-dev] [PATCH v3 10/20] eal/dev: implement device iteration initialization 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: , X-List-Received-Date: Tue, 27 Mar 2018 13:04:27 -0000 On Tue, Mar 27, 2018 at 02:40:00PM +0200, Gaëtan Rivet wrote: > On Tue, Mar 27, 2018 at 07:47:50AM -0400, Neil Horman wrote: > > On Tue, Mar 27, 2018 at 01:18:34AM +0200, Gaetan Rivet wrote: > > > Parse a device description. > > > Split this description in their relevant part for each layers. > > > No dynamic allocation is performed. > > > > > > Cc: Neil Horman > > > Cc: "Wiles, Keith" > > > Signed-off-by: Gaetan Rivet > > > --- > > > > > > This version uses librte_kvargs. > > > > > > lib/Makefile | 1 + > > > lib/librte_eal/bsdapp/eal/Makefile | 1 + > > > lib/librte_eal/common/eal_common_dev.c | 147 ++++++++++++++++++++++++++++++++ > > > lib/librte_eal/common/include/rte_dev.h | 23 +++++ > > > lib/librte_eal/linuxapp/eal/Makefile | 1 + > > > lib/librte_eal/rte_eal_version.map | 1 + > > > 6 files changed, 174 insertions(+) > > > > > > diff --git a/lib/Makefile b/lib/Makefile > > > index fc7a55a37..1b17526f7 100644 > > > --- a/lib/Makefile > > > +++ b/lib/Makefile > > > @@ -6,6 +6,7 @@ include $(RTE_SDK)/mk/rte.vars.mk > > > DIRS-y += librte_compat > > > DIRS-$(CONFIG_RTE_LIBRTE_KVARGS) += librte_kvargs > > > DIRS-$(CONFIG_RTE_LIBRTE_EAL) += librte_eal > > > +DEPDIRS-librte_eal := librte_kvargs > > > DIRS-$(CONFIG_RTE_LIBRTE_PCI) += librte_pci > > > DEPDIRS-librte_pci := librte_eal > > > DIRS-$(CONFIG_RTE_LIBRTE_RING) += librte_ring > > > diff --git a/lib/librte_eal/bsdapp/eal/Makefile b/lib/librte_eal/bsdapp/eal/Makefile > > > index 17ff1ac45..f6cea7fc2 100644 > > > --- a/lib/librte_eal/bsdapp/eal/Makefile > > > +++ b/lib/librte_eal/bsdapp/eal/Makefile > > > @@ -18,6 +18,7 @@ CFLAGS += $(WERROR_FLAGS) -O3 > > > LDLIBS += -lexecinfo > > > LDLIBS += -lpthread > > > LDLIBS += -lgcc_s > > > +LDLIBS += -lrte_kvargs > > > > > > EXPORT_MAP := ../../rte_eal_version.map > > > > > > diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c > > > index cd071442f..1f6df2351 100644 > > > --- a/lib/librte_eal/common/eal_common_dev.c > > > +++ b/lib/librte_eal/common/eal_common_dev.c > > > @@ -10,9 +10,12 @@ > > > > > > #include > > > #include > > > +#include > > > #include > > > #include > > > #include > > > +#include > > > +#include > > > #include > > > > > > #include "eal_private.h" > > > @@ -207,3 +210,147 @@ rte_eal_hotplug_remove(const char *busname, const char *devname) > > > rte_eal_devargs_remove(busname, devname); > > > return ret; > > > } > > > + > > > +static size_t > > > +dev_layer_count(const char *s) > > > +{ > > > + size_t i = s ? 1 : 0; > > > + > > > + while (s != NULL && s[0] != '\0') { > > > + i += s[0] == '/'; > > > + s++; > > > + } > > > + return i; > > > +} > > > + > > So the above code really just counts the number characters in the string, > > omitting the delimiter character '/', right? If thats all you want to do, you can just > > use strtok and strnlen for that, cant you? > > Will do. > Answered too quickly. No, this function only counts the number of occurences of '/' in the text. strtok could be used however in the main function. Will see for a simpler implementation using it. > > > > Otherwise, this looks pretty good to me > > Please look into the librte_kvargs compatibility patch as well (quite > short). I'm very unhappy about the logging hack. > There is always the solution of setting a function pointer on rte_log > with the proper loglevels and so on. > Ideally rte_log could be made independent (starting skimming EAL from > all the fat), but this is much less trivial. > > This implementation relies on librte_kvargs being available. If this is > not the case, there isn't much point to it. > > -- > Gaëtan Rivet > 6WIND -- Gaëtan Rivet 6WIND