From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <luca.boccassi@gmail.com>
Received: from mail-wm0-f67.google.com (mail-wm0-f67.google.com [74.125.82.67])
 by dpdk.org (Postfix) with ESMTP id 186157CE1
 for <dev@dpdk.org>; Thu, 24 Aug 2017 11:55:47 +0200 (CEST)
Received: by mail-wm0-f67.google.com with SMTP id b79so2221409wmf.0
 for <dev@dpdk.org>; Thu, 24 Aug 2017 02:55:47 -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=ogHHefyYywFwerZir5Bi89Ig0Pe2C/iFtGoGpQ+VIe4=;
 b=Wgy8RsjsQoa6hPXZcnzxtr1ymHPMFXmG7jF80w7bxxE1oG4hBTa0QGYc6GH+2g6Vzd
 3pdkCLkudp4PYSYWO+9DlfJ6T6fpUvZ5Y9P2RnZ4wokgNp1CrZhHfFPpCghqwqpPXQ8K
 pSbiMCfepnzW3FUon4HpkvFp5VT3uUrhI2VIEfUbSOQJdaieaRmTfDgp/oy152SryxjC
 sWQunn25aeY0riZomfmzbD6S/purzV/uP26Jqpo/7Wz++krWIc3zfhleSsryOOV1M3Iw
 gX6bmmCQM9yd+h3lvTvDRQFpT+2UjVwota3f6GvCYVhnnoP7ywmI+JXKpIyN05CrSsCj
 xW/Q==
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=ogHHefyYywFwerZir5Bi89Ig0Pe2C/iFtGoGpQ+VIe4=;
 b=sJH7Wf0D2WKTkQXJr0icp94P5iB3KtkTv2+800vsWkU3OAbT98BJU569Fsl5NPBJfY
 yiByAPvCmaZCROXPtj2Z326nUGolu31Zh+o+fynGGdlATtIldH6OpJYpR3CH/kY9aWJR
 R7gphRK5uZUyp32wT4+WEZD4cmccR25yDhlS1gB5cT7vobP+9rAmpOhLtrIXilC6SSkG
 ySHNyusOX+qRhzb4XYKXQUzzwvKfgEU/VvAtraBfPMgRQUxLP1xWTcdh9j37R2OClu2H
 NffWijUJz5KFkxgvJeQrgr/AFoGRDHcfZS0P5Diw7U1Eylor1jxwnIdTeu9HX5rNpjkP
 k60g==
X-Gm-Message-State: AHYfb5jUG7A3HPSWn1EfbXFTVgg7Le986+8qOwMDzmKCRlRkw58GZShb
 vtGhNYVtltkJzqXhXGw=
X-Received: by 10.28.6.208 with SMTP id 199mr4030126wmg.55.1503568547401;
 Thu, 24 Aug 2017 02:55:47 -0700 (PDT)
Received: from localhost ([213.251.34.151])
 by smtp.gmail.com with ESMTPSA id f9sm2777033wmf.18.2017.08.24.02.55.45
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Thu, 24 Aug 2017 02:55:45 -0700 (PDT)
Message-ID: <1503568544.12733.4.camel@gmail.com>
From: Luca Boccassi <luca.boccassi@gmail.com>
To: Ferruh Yigit <ferruh.yigit@intel.com>, Yipeng Wang <yipeng1.wang@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Date: Thu, 24 Aug 2017 10:55:44 +0100
In-Reply-To: <51975604-23a5-ad97-eb0a-62716cb764df@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>
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 <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Aug 2017 09:55:48 -0000

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 <yipeng1.wang@intel.com>
> > > ---
> > > =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 rights r=
eserved.
> > > +#=C2=A0=C2=A0=C2=A0All rights reserved.
> > > +#
> > > +#=C2=A0=C2=A0=C2=A0Redistribution and use in source and binary forms=
, with or
> > > without
> > > +#=C2=A0=C2=A0=C2=A0modification, are permitted provided that the fol=
lowing
> > > 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 cond=
itions 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 cond=
itions 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 Corporati=
on nor the names of
> > > its
> > > +#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0contributors may be used =
to endorse or promote products
> > > derived
> > > +#=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0from this software withou=
t specific prior written
> > > permission.
> > > +#
> > > +#=C2=A0=C2=A0=C2=A0THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER=
S AND
> > > CONTRIBUTORS
> > > +#=C2=A0=C2=A0=C2=A0"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, IN=
CLUDING,
> > > BUT
> > > NOT
> > > +#=C2=A0=C2=A0=C2=A0LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABI=
LITY AND
> > > FITNESS FOR
> > > +#=C2=A0=C2=A0=C2=A0A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT =
SHALL THE
> > > COPYRIGHT
> > > +#=C2=A0=C2=A0=C2=A0OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, I=
NDIRECT,
> > > INCIDENTAL,
> > > +#=C2=A0=C2=A0=C2=A0SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INC=
LUDING, BUT
> > > NOT
> > > +#=C2=A0=C2=A0=C2=A0LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SE=
RVICES;
> > > LOSS OF
> > > USE,
> > > +#=C2=A0=C2=A0=C2=A0DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEV=
ER CAUSED
> > > AND
> > > ON ANY
> > > +#=C2=A0=C2=A0=C2=A0THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT =
LIABILITY,
> > > OR
> > > TORT
> > > +#=C2=A0=C2=A0=C2=A0(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN AN=
Y WAY OUT
> > > OF
> > > THE USE
> > > +#=C2=A0=C2=A0=C2=A0OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBIL=
ITY 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?

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

> > > +EXPORT_MAP :=3D rte_member_version.map
> > > +
> > > +LIBABIVER :=3D 1
> > > +
> > > +# all source are stored in SRCS-y
> > > +SRCS-$(CONFIG_RTE_LIBRTE_MEMBER) +=3D=C2=A0=C2=A0rte_member.c
> > > +# install includes
> > > +SYMLINK-$(CONFIG_RTE_LIBRTE_MEMBER)-include :=3D rte_member.h
> > > +
> > > +include $(RTE_SDK)/mk/rte.lib.mk
>=20
>=20

--=20
Kind regards,
Luca Boccassi