From: Tyler Retzlaff <roretzla@linux.microsoft.com>
To: "Morten Brørup" <mb@smartsharesystems.com>
Cc: Thomas Monjalon <thomas@monjalon.net>,
dev@dpdk.org, david.marchand@redhat.com
Subject: Re: [PATCH v2 1/2] eal: provide leading and trailing zero bit count abstraction
Date: Thu, 5 Jan 2023 17:04:46 -0800 [thread overview]
Message-ID: <20230106010446.GA18805@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> (raw)
In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35D8762D@smartserver.smartshare.dk>
On Fri, Jan 06, 2023 at 12:10:45AM +0100, Morten Brørup wrote:
> > From: Tyler Retzlaff [mailto:roretzla@linux.microsoft.com]
> > Sent: Thursday, 5 January 2023 23.06
> >
> > doesn't create a new kind of mess.
> >
> > so i fudged around a bit to see if i could get a happy medium. i ended
> > up with this.
> >
> > remove include of rte_debug.h from rte_bitops.h
> >
> > * had to remove the RTE_ASSERT from existing rte_bitops.h functions
> > * this breaks a good piece of the cycle debug -> log -> common ->
> > bitops -> debug
> > * deal breaker? i don't think it was right that we were getting all
> > of log, common just for using bitops anyway.
> >
> > move pow2 functions from rte_common.h -> rte_pow2ops.h
> > * new header includes rte_bitops.h
> >
> > move log2 functions from rte_common.h -> rte_log2ops.h
> > * new header includes rte_bitops.h, rte_pow2ops.h
> >
> > include rte_bitops.h, rte_pow2ops.h and rte_log2ops.h back into
> > rte_common.h
> >
> > * this is done to reduce the impact of compatibility break by
> > continuing to expose the pow2/log2/bitops via rte_common.h
> >
> > so we end up with 3 standalone headers, where the whole tree builds
> > without having to add a pile of includes for the new headers. we can
> > later deprecate the exposure of the inline functions when including
> > rte_common.h
> >
> > * one caveat is that there was some contamination coming in via the
> > removed rte_debug.h where rte_bitops.h was used. so technically
> > a break of api too.
> >
> > objections?
> >
> > if this is no good i'll just fold my new functions into rte_common.h
> > and
> > leave the mess for the next person, though i am trying not to do that.
> >
> > thanks for the discussion.
>
> Here's some long term thinking: EAL has grown into a trashcan where too much is thrown in. It should only be a thin shim to abstract the underlying hardware and O/S environment. A step in that direction could be splitting the current EAL into a true EAL and a Utils library. Not now, but perhaps some day in a rosy future.
>
> Your proposal effectively makes rte_common.h even bigger by including rte_bitops.h (which was intended for accessing hardware). I am not sure it is a step in the right direction. On the other hand, introducing yet another header file for bit-mathematical functions is probably worse than adding them to rte_bitops.h.
>
> I can't come up with something good myself, but I lean towards simply adding your functions to rte_common.h and live with the existing mess. If you think your proposal is better, I will not object. I'm only voicing my thoughts.
it's hard when we are starting with something monolithic and trying to
split it. you always end up with these iterative transitions toward what
you want because you have to keep some kind of compat.
>
> @Thomas may have another perspective on the matter.
Thomas any last word after this back and forth? This change isn't
necessarily blocking me but is a distraction i'd like to finish/offload.
>
> Thanks for all the work you put into this.
np, it is somewhat out of necessity since i need this stuff to be
portable. but having it move in the right direction at the same time is
a benefit for anyone who comes later.
ty
next prev parent reply other threads:[~2023-01-06 1:04 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-23 22:14 [PATCH 0/2] eal: provide leading and trailing zero bit count Tyler Retzlaff
2022-11-23 22:14 ` [PATCH 1/2] eal: provide leading and trailing zero bit count abstraction Tyler Retzlaff
2023-04-03 21:46 ` Mattias Rönnblom
2022-11-23 22:14 ` [PATCH 2/2] test/bitcount: add bitcount tests Tyler Retzlaff
2022-11-23 23:43 ` [PATCH v2 0/2] eal: provide leading and trailing zero bit count Tyler Retzlaff
2022-11-23 23:43 ` [PATCH v2 1/2] eal: provide leading and trailing zero bit count abstraction Tyler Retzlaff
2022-11-24 10:17 ` Morten Brørup
2022-11-28 17:13 ` Tyler Retzlaff
2022-11-28 17:22 ` Morten Brørup
2022-11-28 17:27 ` Tyler Retzlaff
2023-01-05 9:04 ` Thomas Monjalon
2023-01-05 17:23 ` Tyler Retzlaff
2023-01-05 17:27 ` Tyler Retzlaff
2023-01-05 20:57 ` Tyler Retzlaff
2023-01-05 21:34 ` Morten Brørup
2023-01-05 22:06 ` Tyler Retzlaff
2023-01-05 23:10 ` Morten Brørup
2023-01-06 1:04 ` Tyler Retzlaff [this message]
2023-01-06 10:09 ` Thomas Monjalon
2023-01-06 10:00 ` Thomas Monjalon
2023-01-05 7:09 ` Morten Brørup
2023-01-05 9:01 ` Thomas Monjalon
2023-01-05 17:21 ` Tyler Retzlaff
2023-01-06 0:32 ` Stephen Hemminger
2023-01-06 11:48 ` Bruce Richardson
2023-01-06 12:41 ` Morten Brørup
2023-01-06 13:40 ` Thomas Monjalon
2023-01-06 18:58 ` Tyler Retzlaff
2023-01-06 20:51 ` Thomas Monjalon
2023-01-10 9:18 ` Ferruh Yigit
2023-01-06 18:47 ` Tyler Retzlaff
2023-01-09 8:50 ` Bruce Richardson
2023-04-04 21:23 ` Tyler Retzlaff
2023-04-05 8:44 ` Bruce Richardson
2023-04-05 15:22 ` Tyler Retzlaff
2023-04-05 15:51 ` Bruce Richardson
2023-04-05 17:25 ` Tyler Retzlaff
2022-11-23 23:43 ` [PATCH v2 2/2] test/bitcount: add bitcount tests Tyler Retzlaff
2023-01-04 23:46 ` [PATCH v2 0/2] eal: provide leading and trailing zero bit count Tyler Retzlaff
2023-01-09 17:36 ` [PATCH v4 0/2] eal: provide leading and trailing zero bit count abstraction Tyler Retzlaff
2023-01-09 17:36 ` [PATCH v4 1/2] eal: move bit operation functions from common to bitops header Tyler Retzlaff
2023-01-10 13:56 ` Ferruh Yigit
2023-01-09 17:36 ` [PATCH v4 2/2] eal: provide leading and trailing zero bit count abstraction Tyler Retzlaff
2023-01-10 13:55 ` Ferruh Yigit
2023-01-10 17:34 ` Tyler Retzlaff
2023-01-10 18:37 ` Tyler Retzlaff
2023-01-10 13:56 ` [PATCH v4 0/2] " Ferruh Yigit
2023-01-06 22:01 ` [PATCH v3 0/3] eal: provide leading and trailing zero bit count Tyler Retzlaff
2023-01-06 22:01 ` [PATCH v3 1/3] eal: move bit functions from common to bitops header Tyler Retzlaff
2023-01-06 22:01 ` [PATCH v3 2/3] eal: provide leading and trailing zero bit count abstraction Tyler Retzlaff
2023-01-06 22:01 ` [PATCH v3 3/3] test/bitcount: add bitcount tests Tyler Retzlaff
2023-01-07 8:15 ` Thomas Monjalon
2023-01-09 16:57 ` Tyler Retzlaff
2023-01-09 17:26 ` Tyler Retzlaff
2023-01-07 13:40 ` Morten Brørup
2023-01-09 8:51 ` [PATCH v3 0/3] eal: provide leading and trailing zero bit count Bruce Richardson
2023-01-10 19:38 ` [PATCH v5 0/2] eal: provide leading and trailing zero bit count abstraction Tyler Retzlaff
2023-01-10 19:38 ` [PATCH v5 1/2] eal: move bit operation common to bitops header Tyler Retzlaff
2023-01-10 19:38 ` [PATCH v5 2/2] eal: provide leading and trailing zero bit count abstraction Tyler Retzlaff
2023-01-10 19:46 ` [PATCH v6 0/2] " Tyler Retzlaff
2023-01-10 19:46 ` [PATCH v6 1/2] eal: move bit operation common to bitops header Tyler Retzlaff
2023-01-10 19:46 ` [PATCH v6 2/2] eal: provide leading and trailing zero bit count abstraction Tyler Retzlaff
2023-01-20 22:14 ` [PATCH v6 0/2] " Tyler Retzlaff
2023-02-02 9:14 ` David Marchand
2023-02-02 10:56 ` David Marchand
2023-02-02 15:57 ` Tyler Retzlaff
2023-02-03 9:14 ` David Marchand
2023-02-02 15:56 ` Tyler Retzlaff
2023-02-03 9:21 ` David Marchand
2023-04-01 0:45 ` [PATCH v7 0/4] eal: provide abstracted bit counting functions Tyler Retzlaff
2023-04-01 0:45 ` [PATCH v7 1/4] eal: move bit count functions to bitops header Tyler Retzlaff
2023-04-01 0:45 ` [PATCH v7 2/4] eal: provide abstracted bit count functions Tyler Retzlaff
2023-04-01 0:45 ` [PATCH v7 3/4] pipeline: add include of bitops Tyler Retzlaff
2023-04-01 0:45 ` [PATCH v7 4/4] maintainers: add bitcount test under EAL API and common code Tyler Retzlaff
2023-04-01 7:08 ` [PATCH v7 0/4] eal: provide abstracted bit counting functions Morten Brørup
2023-04-04 0:11 ` [PATCH v8 0/3] " Tyler Retzlaff
2023-04-04 0:11 ` [PATCH v8 1/3] eal: move bit count functions to bitops header Tyler Retzlaff
2023-04-04 0:11 ` [PATCH v8 2/3] eal: provide abstracted bit count functions Tyler Retzlaff
2023-04-04 0:11 ` [PATCH v8 3/3] maintainers: add bitcount test under EAL API and common code Tyler Retzlaff
2023-04-04 8:27 ` [PATCH v8 0/3] eal: provide abstracted bit counting functions Bruce Richardson
2023-08-25 8:41 ` David Marchand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230106010446.GA18805@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net \
--to=roretzla@linux.microsoft.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=mb@smartsharesystems.com \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).