From: Thomas Monjalon <thomas.monjalon@6wind.com>
To: Neil Horman <nhorman@tuxdriver.com>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH v2] ABI: Add abi checking utility
Date: Wed, 04 Mar 2015 13:54:49 +0100 [thread overview]
Message-ID: <3858426.kLEMBMBQqi@xps13> (raw)
In-Reply-To: <20150304114951.GB5808@hmsreliant.think-freely.org>
Hi Neil,
I remove parts that I agree and reply to those which deserve more discussion.
2015-03-04 06:49, Neil Horman:
> On Tue, Mar 03, 2015 at 11:18:47PM +0100, Thomas Monjalon wrote:
> > 2015-02-02 13:18, Neil Horman:
> > > +# Validate that we have all the arguments we need
> > > +res=$(validate_args)
> > > +if [ -n "$res" ]
> > > +then
> > > + echo $res
> >
> > Should be redirected to stderr >&2
> >
> Why? this is eactly what I intended. All the other messages from log are
> directed to stdout, so should this be.
I'm wondering if there's some normal output which could be redirected for
further processing, and some error output.
My comment was not only for this log but also for every error message.
> > I guess this is the tool:
> > http://ispras.linuxbase.org/index.php/ABI_compliance_checker
>
> Correct.
So maybe you should add this URL in the commit log.
> > > +log "INFO" "We're going to check and make sure that applications built"
> > > +log "INFO" "against DPDK DSOs from tag $TAG1 will still run when executed"
> > > +log "INFO" "against DPDK DSOs built from tag $TAG2."
> > > +log "INFO" ""
> > > +if [ ! -d ./.git ]
> > > +then
> > > + log "WARN" "You must be in the root of the dpdk git tree"
> > > + log "WARN" "You are in $PWD"
> > > + cleanup_and_exit 1
> > > +fi
> >
> > Why not cd $(dirname $0)/.. instead of returning an error?
>
> Why would that help in finding the base of the git tree. Theres no guarantee
> that you are in a subdirectory of a git tree. I suppose we can try it
> recursively until we hit /, but it seems just as easy and clear to tell the user
> whats needed.
No I'm saying that you could avoid this check by going into the right
directory from the beginning.
We know that the root dir is $(dirname $0)/.. because this script is in
scripts/ directory.
> > > +# Make sure we configure SHARED libraries
> > > +# Also turn off IGB and KNI as those require kernel headers to build
> > > +sed -i -e"$ a\CONFIG_RTE_BUILD_SHARED_LIB=y" config/defconfig_$TARGET
> > > +sed -i -e"$ a\CONFIG_RTE_EAL_IGB_UIO=n" config/defconfig_$TARGET
> > > +sed -i -e"$ a\CONFIG_RTE_LIBRTE_KNI=n" config/defconfig_$TARGET
> >
> > Why not tuning configuration after make config in .config file?
> >
> Because this way we save a reconfig (from a developer viewpoint), you should run
> make config again after changing configs, and so this way you save doing that.
No, you run make config once and update .config file. That's the recommended
way to configure DPDK.
defconfig files are default configurations and should stay read-only.
> > > +for i in `ls *.so`
> >
> > I think ls is useless.
> >
> Um, I don't? Not sure what you're getting at here.
I think "for i in *.so" should work.
> > > + #compare the abi dumps
> > > + $ABICHECK -l $LIBNAME -old $ABI_DIR/$OLDNAME -new $ABI_DIR/$NEWNAME
> >
> > Do we need to do a visual check? I didn't try yet.
> >
> Yes, it generates an html report of all the symbols exported in a build and
> compares them with the alternate version. That needs manual review.
OK I think it's important to explain in the commit log.
> > So you compare the ABI dumps.
> > Do we also need to run an app from TAG2 with libs from TAG1?
>
> I started down that path, but its not really that helpful, as all it will do is
> refuse to run if there is a symbol missing from a later version. While that
> might be helpful, its no where near as through as the full report from the
> compliance checker.
>
> The bottom line is that real ABI compliance requires a developer to be aware of
> the changes going into the code and how they affect binary layout. A simple
> "does it still work" test isn't sufficient.
I hope we'll be able to integrate this kind of tool in an automated sanity
check in order to find obvious errors.
Thanks
next prev parent reply other threads:[~2015-03-04 12:55 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-30 21:16 [dpdk-dev] [PATCH] " Neil Horman
2015-02-02 18:18 ` [dpdk-dev] [PATCH v2] " Neil Horman
2015-02-27 13:48 ` Neil Horman
2015-02-27 13:55 ` Thomas Monjalon
2015-03-03 22:18 ` Thomas Monjalon
2015-03-04 11:49 ` Neil Horman
2015-03-04 12:54 ` Thomas Monjalon [this message]
2015-03-04 14:39 ` Neil Horman
2015-03-04 15:15 ` Thomas Monjalon
2015-03-04 15:42 ` Neil Horman
2015-03-04 16:15 ` Thomas Monjalon
2015-03-04 16:26 ` [dpdk-dev] [PATCH v3] " Neil Horman
2015-03-04 16:49 ` Thomas Monjalon
2015-03-05 16:57 ` Neil Horman
2015-03-11 19:36 ` Neil Horman
2015-03-13 8:51 ` Thomas Monjalon
2015-03-13 11:56 ` Kavanagh, Mark B
2015-03-13 14:10 ` Neil Horman
2015-03-13 14:25 ` Kavanagh, Mark B
2015-03-13 14:58 ` Neil Horman
2015-03-13 15:49 ` Kavanagh, Mark B
2015-03-13 14:09 ` [dpdk-dev] [PATCH v4] " Neil Horman
2015-03-17 15:42 ` Thomas Monjalon
2015-03-17 16:47 ` Thomas Monjalon
2015-03-17 18:08 ` Neil Horman
2015-03-17 18:08 ` [dpdk-dev] [PATCH v5] " Neil Horman
2015-03-17 21:17 ` Thomas Monjalon
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=3858426.kLEMBMBQqi@xps13 \
--to=thomas.monjalon@6wind.com \
--cc=dev@dpdk.org \
--cc=nhorman@tuxdriver.com \
/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).