From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f44.google.com (mail-wg0-f44.google.com [74.125.82.44]) by dpdk.org (Postfix) with ESMTP id E745A7F58 for ; Fri, 7 Nov 2014 13:28:41 +0100 (CET) Received: by mail-wg0-f44.google.com with SMTP id x12so3606345wgg.17 for ; Fri, 07 Nov 2014 04:38:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=Mtp2pgZxuaMmAFyP6Tf2SHIWbPbHfbH7QNP4x3XPbts=; b=GRyIE4wm+Y6OPkVAXqICufyIcw+IbSDGtKfYMTJyDuP2vuhAk42KeTbk8X8+64na7a T+dTpARaSSWKbard+iZ3eRl1B/jpDRLf9PEN35NV7HoVdcz8PoxAib9sU3WhrnIf1SJZ IMLWaHjAgshF/6tvbJYM4N5lw7ewjHWVB2JhT9yCtqSc/jcernhYiqCgh7ywldwuAZiC VciMTefnSA65XVn+Xu6KUDwHP/Z094ephHoH9MuW8zujLV5dR1rfWpezCMAtmagDbPt6 kgkQwzBHmWE/Gt/M8QYOoEB611aCZj5tGZYE6Y9EmKn1VyJTd6N/pRN1M3I7SPleHc/K bywA== MIME-Version: 1.0 X-Received: by 10.194.63.79 with SMTP id e15mr16182808wjs.79.1415363893755; Fri, 07 Nov 2014 04:38:13 -0800 (PST) Received: by 10.27.86.144 with HTTP; Fri, 7 Nov 2014 04:38:13 -0800 (PST) In-Reply-To: <20141107094521.GB4628@bricha3-MOBL3> References: <1415194237-1219-1-git-send-email-jigsaw@gmail.com> <20141106092228.GA3056@bricha3-MOBL3> <9190772.1rnKUO3oNV@xps13> <545b6b74.a96db40a.26af.ffffe7fb@mx.google.com> <20141106135951.GB7252@bricha3-MOBL3> <20141107094521.GB4628@bricha3-MOBL3> Date: Fri, 7 Nov 2014 14:38:13 +0200 Message-ID: From: jigsaw To: Bruce Richardson Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] =?utf-8?b?562U5aSNOiAgW1BBVENIXSBBZGQgdXNlciBkZWZpbmVk?= =?utf-8?q?_tag_calculation_callback_tolibrte=5Fdistributor=2E?= X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Nov 2014 12:28:42 -0000 Hi Bruce, >> If a tag value of zero is ever passed in, then it will start matching against cores which are not doing any processing. Yes, this is true according to current bookkeeping of inflight tags. But if the slot in in_flight_tags is not a uint32_t but a struct which has a filed as indication of "on/off", and also with corresponding changes in looking for a matched tag, then the need for 1 bit mask can be eliminated. Of course this change requires a little bit more, O(n), memory space and costs O(n) more branch misses. But the benefit is a more free interface to user app. This is just another trade-off. Since I am in need of such freedom, I am more interested in the free use of 32bits. thx & rgds, -qinglai On Fri, Nov 7, 2014 at 11:45 AM, Bruce Richardson < bruce.richardson@intel.com> wrote: > On Thu, Nov 06, 2014 at 09:52:25PM +0200, jigsaw wrote: > > Hi Bruce, > > > > Actually IMHO it is good to leave the freedom to user to decide how to > > interpret the tag value, i.e. remove the OR 1 bit. > > If the tag value is zero, then we assume the programmer know what he is > > doing. Of course this shall be clearly documented in the comment/doxgen= . > > > > > > thx & > > rgds, > > -qinglai > > I don't believe that will work. If a tag value of zero is ever passed > in, then it will start matching against cores which are not doing any > processing. Then it will get queued up to get sent to those cores, and so > never get processed. > We need a bit somewhere inside the tag to permanently set - though it can > be configurable. > > /Bruce > > > > > On Thu, Nov 6, 2014 at 8:01 PM, jigsaw wrote: > > > > > Hi Bruce, > > > > > > In my use case, unfortunately the tag is not hash. And the tag can be > on > > > either low or high bits, depending on configuration. > > > I wonder if it is possible to let the user to decide which bit to mas= k, > > > i.e. to add another param to rte_distributor_create to define the mas= k. > > > > > > thx & > > > rgds, > > > -qinglai > > > > > > On Thu, Nov 6, 2014 at 3:59 PM, Bruce Richardson < > > > bruce.richardson@intel.com> wrote: > > > > > >> On Thu, Nov 06, 2014 at 02:36:09PM +0200, Qinglai Xiao wrote: > > >> > Hi Bruce, > > >> > > > >> > There is a subtle case in which tag values are 2 and 3, > respectively. > > >> Then these two tags cannot be distinguished. There should be a bette= r > way > > >> so as to handle this situation. > > >> > > >> It's not just in that, case, it's in any case where a pair of tags > differ > > >> by > > >> only a single bit. I've been assuming that the tag is likely to be a > hash > > >> value in most cases - given that it's only 32-bit - in which case it > just > > >> doesn't > > >> matter which bit we chose to permanently set to 1, but if there are > > >> scenarios > > >> where it's likely that the low bits are used but the high ones not > so, we > > >> can > > >> look to change which bit is set to 1. Either way, the distributor ju= st > > >> uses a > > >> 31-bit tag rather than a 32-bit one. > > >> > > >> /Bruce > > >> > > >> > > > >> > thx & > > >> > rgds > > >> > -qinglai > > >> > > > >> > -----=E5=8E=9F=E5=A7=8B=E9=82=AE=E4=BB=B6----- > > >> > =E5=8F=91=E4=BB=B6=E4=BA=BA: "Thomas Monjalon" > > >> > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: =E2=80=8E2014/=E2=80=8E11/= =E2=80=8E6 12:36 > > >> > =E6=94=B6=E4=BB=B6=E4=BA=BA: "Bruce Richardson" > > >> > =E6=8A=84=E9=80=81: "dev@dpdk.org" ; "jigsaw" > > >> > =E4=B8=BB=E9=A2=98: Re: [dpdk-dev] [PATCH] Add user defined tag ca= lculation callback > > >> tolibrte_distributor. > > >> > > > >> > 2014-11-06 09:22, Bruce Richardson: > > >> > > On Wed, Nov 05, 2014 at 07:24:13PM +0200, jigsaw wrote: > > >> > > > > > >> > http://dpdk.org/browse/dpdk/tree/lib/librte_distributor/rte_distributor.c= #n285 > > >> > > > > > >> > > > new_tag =3D (next_mb->hash.rss | 1); > > >> > > > > > >> > > > Why the logical OR is needed? > > >> > > > > >> > > That's needed to ensure that we never track a tag with an actual > > >> value of zero. > > >> > > We instead always force the low bit to be 1, so that we can use > zero > > >> as an > > >> > > "empty" value. > > >> > > > >> > Bruce, could you check how this code may be better commented pleas= e? > > >> > This discussion shows that the distributor library probably needs > more > > >> > explanations in the code or doxygen. > > >> > > > >> > Thanks > > >> > -- > > >> > Thomas > > >> > > > > > > >