From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by dpdk.org (Postfix) with ESMTP id 4D6C97CDE for ; Sat, 2 Sep 2017 14:55:25 +0200 (CEST) Received: by mail-wm0-f66.google.com with SMTP id l19so2435975wmi.1 for ; Sat, 02 Sep 2017 05:55:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=message-id:subject:from:to:cc:date:in-reply-to:references :content-transfer-encoding:mime-version; bh=pW2/am3OYCCgthj/2HNaBLg56u7LmtJQBT1IrgCdS7o=; b=i6oIlY7gq6XLFP7N1W6RtDt9R6KKI2PPWpK6N266cokVdpJ0xBWyxMQGggKiZVOp2g 9ZcG9plvY1FSUKXAF51sx+l/WgT8bOXxlTtLHFSDueSEukHDqgwHs4ofue33F1sGeheN 5my7glgmlsXI8AkqvpoPEEh3I9nwO17tBZvkpdQaYzkobh/xvmGCHX/Ou+QktGdCofY9 HTORcnm3L0GujdnomE0auXsKMTb+OiuKtzup+s0BCt+h979H5xRSsONkryKhxbWV0FT4 g82U47Ga+6mEmNDsyAL/4dJEnuE0sjDVWYO/lEZWT8kx9Z8XdSfXlNoa1IoSMyaGe77F Qq4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:content-transfer-encoding:mime-version; bh=pW2/am3OYCCgthj/2HNaBLg56u7LmtJQBT1IrgCdS7o=; b=EekDRXbtkhtvEqBJ3Doocvl0ZAEp5JbptKj5Gjta3veaFh5ORT7OkScr0apAwEpI6X PXnics8qcpAx9TmWyswnj34lFSH+AsPJk4DfZ6lgEw5rdhxPLse4JhfwYayOnONxrPgi fY8QFHv9jAuY73bSzWwsWSznVLbcgaN9dI8oyy64ito/NGtlRgMUB0/50SrqCL7YExUl NGg/G6EyARWNZVWmzlhSjxQDGAWbXr4kTzsvJFJcH59j/YoEVRSmfzboFkgeP0WkGRaE vlR8XJLP8BQaxSogBbQ2QLXQqofwk10EGw1RxkngK0TxmlwAbUACsfDqBprXPPKZ5b0y zwZw== X-Gm-Message-State: AHPjjUjhecL8jTeCXw79vLfaarryd2PGbBWRegDm38w31DgQvSY6Gz+P 1q0yyaLHE6SBTRL1BpL87g== X-Google-Smtp-Source: ADKCNb64nyJdQ1w5oEGshXgWUUB0YNXuCAQ9MzSzZc/aDoYzMfBYs/U5bxEHSpxYnxn4zqtnL9gqJw== X-Received: by 10.28.71.88 with SMTP id u85mr930661wma.22.1504356925535; Sat, 02 Sep 2017 05:55:25 -0700 (PDT) Received: from localhost ([2a00:23c5:bef3:400:4a51:b7ff:fe0b:4749]) by smtp.gmail.com with ESMTPSA id 76sm2212490wmf.0.2017.09.02.05.55.24 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 02 Sep 2017 05:55:24 -0700 (PDT) Message-ID: <1504356923.26853.4.camel@gmail.com> From: Luca Boccassi To: Ferruh Yigit , Yipeng Wang Cc: "dev@dpdk.org" Date: Sat, 02 Sep 2017 13:55:23 +0100 In-Reply-To: <02c6c322-a35e-c674-9f3c-c270dfe54e54@intel.com> References: <1503361193-36699-1-git-send-email-yipeng1.wang@intel.com> <1503361193-36699-2-git-send-email-yipeng1.wang@intel.com> <1503396136.6638.1.camel@gmail.com> <51975604-23a5-ad97-eb0a-62716cb764df@intel.com> <1503568544.12733.4.camel@gmail.com> <02c6c322-a35e-c674-9f3c-c270dfe54e54@intel.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Evolution 3.22.6-1 Mime-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 1/7] member: implement main API 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: Sat, 02 Sep 2017 12:55:26 -0000 On Thu, 2017-08-24 at 11:32 +0100, Ferruh Yigit wrote: > On 8/24/2017 10:55 AM, Luca Boccassi wrote: > > On Thu, 2017-08-24 at 10:35 +0100, Ferruh Yigit wrote: > > > On 8/22/2017 11:02 AM, Luca Boccassi wrote: > > > > On Mon, 2017-08-21 at 17:19 -0700, Yipeng Wang wrote: > > > > > Membership library is an extension and generalization of a > > > > > traditional > > > > > filter (for example Bloom Filter) structure. In general, the > > > > > Membership > > > > > library is a data structure that provides a "set-summary" and > > > > > responds > > > > > to set-membership queries of whether a certain element > > > > > belongs to > > > > > a > > > > > set(s). A membership test for an element will return the set > > > > > this > > > > > element > > > > > belongs to or not-found if the element is never inserted into > > > > > the > > > > > set-summary. > > > > >=20 > > > > > The results of the membership test is not 100% accurate. > > > > > Certain > > > > > false positive or false negative probability could exist. > > > > > However, > > > > > comparing to a "full-blown" complete list of elements, a > > > > > "set- > > > > > summary" > > > > > is memory efficient and fast on lookup. > > > > >=20 > > > > > This patch add the main API definition. > > > > >=20 > > > > > Signed-off-by: Yipeng Wang > > > > > --- > > > > > =C2=A0lib/Makefile=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A02 = + > > > > > =C2=A0lib/librte_eal/common/eal_common_log.c=C2=A0=C2=A0=C2=A0|= =C2=A0=C2=A0=C2=A01 + > > > > > =C2=A0lib/librte_eal/common/include/rte_log.h=C2=A0=C2=A0|=C2=A0= =C2=A0=C2=A01 + > > > > > =C2=A0lib/librte_member/Makefile=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A048 ++= + > > > > > =C2=A0lib/librte_member/rte_member.c=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0| 357 > > > > > +++++++++++++++++++++ > > > > > =C2=A0lib/librte_member/rte_member.h=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0| 518 > > > > > +++++++++++++++++++++++++++++++ > > > > > =C2=A0lib/librte_member/rte_member_version.map |=C2=A0=C2=A015 + > > > > > =C2=A07 files changed, 942 insertions(+) > > > > > =C2=A0create mode 100644 lib/librte_member/Makefile > > > > > =C2=A0create mode 100644 lib/librte_member/rte_member.c > > > > > =C2=A0create mode 100644 lib/librte_member/rte_member.h > > > > > =C2=A0create mode 100644 lib/librte_member/rte_member_version.map > > > > >=20 > > > > > diff --git a/lib/librte_member/Makefile > > > > > b/lib/librte_member/Makefile > > > > > new file mode 100644 > > > > > index 0000000..997c825 > > > > > --- /dev/null > > > > > +++ b/lib/librte_member/Makefile > > > > > @@ -0,0 +1,48 @@ > > > > > +#=C2=A0=C2=A0=C2=A0BSD LICENSE > > > > > +# > > > > > +#=C2=A0=C2=A0=C2=A0Copyright(c) 2017 Intel Corporation. All righ= ts > > > > > reserved. > > > > > +#=C2=A0=C2=A0=C2=A0All rights reserved. > > > > > +# > > > > > +#=C2=A0=C2=A0=C2=A0Redistribution and use in source and binary f= orms, with > > > > > or > > > > > without > > > > > +#=C2=A0=C2=A0=C2=A0modification, are permitted provided that the= following > > > > > conditions > > > > > +#=C2=A0=C2=A0=C2=A0are met: > > > > > +# > > > > > +#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* Redistributions of source code = must retain the above > > > > > copyright > > > > > +#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0notice, this list of = conditions and the following > > > > > disclaimer. > > > > > +#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* Redistributions in binary form = must reproduce the > > > > > above > > > > > copyright > > > > > +#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0notice, this list of = conditions and the following > > > > > disclaimer > > > > > in > > > > > +#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0the documentation and= /or other materials provided > > > > > with > > > > > the > > > > > +#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0distribution. > > > > > +#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* Neither the name of Intel Corpo= ration nor the names > > > > > of > > > > > its > > > > > +#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0contributors may be u= sed to endorse or promote > > > > > products > > > > > derived > > > > > +#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0from this software wi= thout specific prior written > > > > > permission. > > > > > +# > > > > > +#=C2=A0=C2=A0=C2=A0THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HO= LDERS AND > > > > > CONTRIBUTORS > > > > > +#=C2=A0=C2=A0=C2=A0"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES= , > > > > > INCLUDING, > > > > > BUT > > > > > NOT > > > > > +#=C2=A0=C2=A0=C2=A0LIMITED TO, THE IMPLIED WARRANTIES OF MERCHAN= TABILITY > > > > > AND > > > > > FITNESS FOR > > > > > +#=C2=A0=C2=A0=C2=A0A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EV= ENT SHALL > > > > > THE > > > > > COPYRIGHT > > > > > +#=C2=A0=C2=A0=C2=A0OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIREC= T, > > > > > INDIRECT, > > > > > INCIDENTAL, > > > > > +#=C2=A0=C2=A0=C2=A0SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES = (INCLUDING, > > > > > BUT > > > > > NOT > > > > > +#=C2=A0=C2=A0=C2=A0LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS O= R SERVICES; > > > > > LOSS OF > > > > > USE, > > > > > +#=C2=A0=C2=A0=C2=A0DATA, OR PROFITS; OR BUSINESS INTERRUPTION) H= OWEVER > > > > > CAUSED > > > > > AND > > > > > ON ANY > > > > > +#=C2=A0=C2=A0=C2=A0THEORY OF LIABILITY, WHETHER IN CONTRACT, STR= ICT > > > > > LIABILITY, > > > > > OR > > > > > TORT > > > > > +#=C2=A0=C2=A0=C2=A0(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING I= N ANY WAY > > > > > OUT > > > > > OF > > > > > THE USE > > > > > +#=C2=A0=C2=A0=C2=A0OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSS= IBILITY OF > > > > > SUCH > > > > > DAMAGE. > > > > > + > > > > > +include $(RTE_SDK)/mk/rte.vars.mk > > > > > + > > > > > +# library name > > > > > +LIB =3D librte_member.a > > > > > + > > > > > +CFLAGS +=3D $(WERROR_FLAGS) -I$(SRCDIR) -O3 > > > > > + > > > >=20 > > > > This breaks reproducibility as the output directory will be > > > > included > > > > before the source directory, causing a race - please do > > > > something > > > > like: > > > >=20 > > > > CFLAGS :=3D -I$(SRCDIR) $(CFLAGS) > > > > CFLAGS +=3D $(WERROR_FLAGS) -O3 > > >=20 > > > Can we remove "-I$(SRCDIR)" completely by first installing > > > headers > > > and > > > later compiling objects, all using $(RTE_OUT) only? > > >=20 > > > Do you think can this work? > >=20 > > I'm not sure, it might - but given Bruce's effort to port to Meson > > I'm > > not sure it's worth spending a lot of time doing big refactoring of > > the > > existing build system >=20 > Not big refactoring, following seems worked for me, if you would like > to > test: >=20 > diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk > index 13115d146..643da47da 100644 > --- a/mk/rte.lib.mk > +++ b/mk/rte.lib.mk > @@ -59,14 +59,19 @@ endif >=20 >=20 > =C2=A0_BUILD =3D $(LIB) > -_INSTALL =3D $(INSTALL-FILES-y) $(SYMLINK-FILES-y) > $(RTE_OUTPUT)/lib/$(LIB) > +PREINSTALL =3D $(SYMLINK-FILES-y) > +_INSTALL =3D $(INSTALL-FILES-y) $(RTE_OUTPUT)/lib/$(LIB) > =C2=A0_CLEAN =3D doclean >=20 > =C2=A0.PHONY: all > =C2=A0all: install >=20 > =C2=A0.PHONY: install > +ifeq ($(SYMLINK-FILES-y),) > =C2=A0install: build _postinstall > +else > +install: _preinstall build _postinstall > +endif >=20 > =C2=A0_postinstall: build Easier than I would have thought :-) I'll give that patch a spin through the repro build grinder next week, thanks. --=20 Kind regards, Luca Boccassi