All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dumitrescu, Cristian" <cristian.dumitrescu@intel.com>
To: Ali Alnubani <alialnu@nvidia.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
	NBU-Contact-Thomas Monjalon <thomas@monjalon.net>,
	Aaron Conole <aconole@redhat.com>
Subject: Re: [dpdk-dev] [PATCH 2/2] pipeline: autodetect endianness of action args
Date: Wed, 21 Apr 2021 15:10:48 +0000	[thread overview]
Message-ID: <DM6PR11MB2796EC50E22EAD482CF45A89EB479@DM6PR11MB2796.namprd11.prod.outlook.com> (raw)
In-Reply-To: <BN6PR12MB1459ABE9B91285C10FE387C7DA479@BN6PR12MB1459.namprd12.prod.outlook.com>

Hi Ali,

> -----Original Message-----
> From: Ali Alnubani <alialnu@nvidia.com>
> Sent: Wednesday, April 21, 2021 3:25 PM
> To: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>
> Cc: dev@dpdk.org; NBU-Contact-Thomas Monjalon
> <thomas@monjalon.net>; Aaron Conole <aconole@redhat.com>
> Subject: RE: [dpdk-dev] [PATCH 2/2] pipeline: autodetect endianness of
> action args
> 
> Hi Cristian,
> 
> > -----Original Message-----
> > From: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>
> > Sent: Wednesday, April 21, 2021 4:58 PM
> > To: Ali Alnubani <alialnu@nvidia.com>; NBU-Contact-Thomas Monjalon
> > <thomas@monjalon.net>; Aaron Conole <aconole@redhat.com>
> > Cc: dev@dpdk.org
> > Subject: RE: [dpdk-dev] [PATCH 2/2] pipeline: autodetect endianness of
> > action args
> >
> >
> >
> > > -----Original Message-----
> > > From: Ali Alnubani <alialnu@nvidia.com>
> > > Sent: Wednesday, April 21, 2021 8:50 AM
> > > To: NBU-Contact-Thomas Monjalon <thomas@monjalon.net>;
> Dumitrescu,
> > > Cristian <cristian.dumitrescu@intel.com>; Aaron Conole
> > > <aconole@redhat.com>
> > > Cc: dev@dpdk.org
> > > Subject: RE: [dpdk-dev] [PATCH 2/2] pipeline: autodetect endianness of
> > > action args
> > >
> > > Hi,
> > >
> > > > -----Original Message-----
> > > > From: dev <dev-bounces@dpdk.org> On Behalf Of Thomas Monjalon
> > > > Sent: Tuesday, April 20, 2021 10:58 PM
> > > > To: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
> > > > Cc: dev@dpdk.org
> > > > Subject: Re: [dpdk-dev] [PATCH 2/2] pipeline: autodetect endianness
> of
> > > > action args
> > > >
> > > > 12/04/2021 01:23, Cristian Dumitrescu:
> > > > > Each table entry is made up of match fields and action data, with the
> > > > > latter made up of the action ID and the action arguments. The
> approach
> > > > > of having the user specify explicitly the endianness of the action
> > > > > arguments is difficult to be picked up by P4 compilers, as the P4
> > > > > compiler is generally unaware about this aspect.
> > > > >
> > > > > This commit introduces the auto-detection of the endianness of the
> > > > > action arguments by examining the endianness of the their
> destination:
> > > > > network byte order (NBO) when they get copied to headers and host
> > > byte
> > > > > order (HBO) when they get copied to packet meta-data or mailboxes.
> > > > >
> > > > > The endianness specification of each action argument as part of the
> > > > > rule specification, e.g. H(...) and N(...) is removed from the rule
> > > > > file and auto-detected based on their destination. The DMA
> instruction
> > > > > scope is made internal, so mov instructions need to be used. The
> > > > > pattern of transferring complete headers from table entry action args
> > > > > to headers is detected, and the associated set of mov instructions
> > > > > plus header validate is internally detected and replaced with the
> > > > > internal-only DMA instruction to preserve performance.
> > > > >
> > > > > Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
> > > >
> > > > Series applied, thanks
> > > >
> > > >
> > >
> > > I believe this patchset is causing the build failures in
> > > https://bugs.dpdk.org/show_bug.cgi?id=683.
> > >
> > > Regards,
> > > Ali
> >
> > Hi Ali,
> >
> > I checked this issue and here are my findings:
> >
> > 1. The compiler warnings are NOT caused by this patch, all of them are
> > triggered by older code.
> 
> Git-bisect pointed to this patch. The errors didn't reproduce without it.

This is strange, as code that your patch (as well as mine) "fixed" was not modified by this "pipeline: autodetect endianness ..." patch (easy to check).

Likely this patch triggered some bad memories in the "mind" of the compiler, but TBH I don't think we need to debug it at this point :)

> 
> > 2. Why were they not triggered before? Either this is the first time CentOS
> 7
> > is run or the compiler has a mind of its own (my vote goes to the former).
> 
> The check ci/iol-testing contains an image with gcc 4.8.5 (RHEL 7), and I see
> now that it reproduced the errors in recent patches. See the failing build
> check in https://lab.dpdk.org/results/dashboard/patchsets/16682/ (under
> dpdk_meson_compile).
> 
> > 3. These are all 100% fake issues that are probably triggered by the old GCC
> > version from CentOS 7.
> >
> > I just sent a patch now (you are copied on it) with some harmless local
> > variable initializations in the hope it will stop these warnings on CentOS 7.
> As I
> > don't have access to a CentOS 7 machine, can you please confirm whether
> > the warnings are fixed?
> >
> 
> I submitted a patch and updated the status of the Bugzilla ticket a few hours
> ago. See https://bugs.dpdk.org/show_bug.cgi?id=683#c4.
> 

Cool, thank you for looking at this issue and doing the work to fix it.

I did not see your patch in time, as for some reasons it landed in the bin folder as opposed to my usual DPDK folder.

> > As the warnings are triggered selectively for just more occurrences of a
> > common pattern as opposed to all occurrences, I am trying to fix all
> > occurrences of this pattern in order to prevent the same warnings showing
> > up again.
> >
> 
> I only initialized occurrences of dst_struct_id and src_struct_id to resolve it
> though, maybe rebase and update your patch if you think initializing the rest
> is necessary?
> 

There are a few others that might be triggered at some point, but difficult to have a full list now, maybe it is better to wait for now.

> Thanks,
> Ali

Thanks,
Cristian

      reply	other threads:[~2021-04-21 15:12 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-11 23:23 [dpdk-dev] [PATCH 1/2] pipeline: modularize the instruction optimizer Cristian Dumitrescu
2021-04-11 23:23 ` [dpdk-dev] [PATCH 2/2] pipeline: autodetect endianness of action args Cristian Dumitrescu
2021-04-20  0:48   ` Thomas Monjalon
2021-04-20 10:04     ` Dumitrescu, Cristian
2021-04-20 10:06       ` Thomas Monjalon
2021-04-20 10:20         ` Dumitrescu, Cristian
2021-04-20 14:48           ` Aaron Conole
2021-04-20 19:57   ` Thomas Monjalon
2021-04-21  7:49     ` Ali Alnubani
2021-04-21 12:57       ` Aaron Conole
2021-04-21 13:03         ` Ali Alnubani
2021-04-21 13:21           ` Aaron Conole
2021-04-21 13:58       ` Dumitrescu, Cristian
2021-04-21 14:24         ` Ali Alnubani
2021-04-21 15:10           ` Dumitrescu, Cristian [this message]

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=DM6PR11MB2796EC50E22EAD482CF45A89EB479@DM6PR11MB2796.namprd11.prod.outlook.com \
    --to=cristian.dumitrescu@intel.com \
    --cc=aconole@redhat.com \
    --cc=alialnu@nvidia.com \
    --cc=dev@dpdk.org \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.