From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bruce Richardson Subject: Re: =?utf-8?b?562U5aSNOiAgW1BBVENIXSBBZGQgdXNlciBkZWZpbmVk?= =?utf-8?q?_tag_calculation_callback_tolibrte=5Fdistributor=2E?= Date: Thu, 6 Nov 2014 13:59:52 +0000 Message-ID: <20141106135951.GB7252@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> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: dev-VfR2kkLFssw@public.gmane.org To: Qinglai Xiao Return-path: Content-Disposition: inline In-Reply-To: <545b6b74.a96db40a.26af.ffffe7fb-ATjtLOhZ0NVl57MIdRCFDg@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" On Thu, Nov 06, 2014 at 02:36:09PM +0200, Qinglai Xiao wrote: > Hi Bruce, >=20 > There is a subtle case in which tag values are 2 and 3, respectively. T= hen these two tags cannot be distinguished. There should be a better 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 scena= rios 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 just us= es a 31-bit tag rather than a 32-bit one. /Bruce >=20 > thx & > rgds > -qinglai >=20 > -----=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=8E= 6 12:36 > =E6=94=B6=E4=BB=B6=E4=BA=BA: "Bruce Richardson" > =E6=8A=84=E9=80=81: "dev-VfR2kkLFssw@public.gmane.org" ; "jigsaw" > =E4=B8=BB=E9=A2=98: Re: [dpdk-dev] [PATCH] Add user defined tag calcula= tion callback tolibrte_distributor. >=20 > 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_distrib= utor.c#n285 > > >=20 > > > new_tag =3D (next_mb->hash.rss | 1); > > >=20 > > > Why the logical OR is needed? > >=20 > > That's needed to ensure that we never track a tag with an actual valu= e of zero. > > We instead always force the low bit to be 1, so that we can use zero = as an > > "empty" value. >=20 > Bruce, could you check how this code may be better commented please? > This discussion shows that the distributor library probably needs more > explanations in the code or doxygen. >=20 > Thanks > --=20 > Thomas