From: Ted Ts'o <tytso@mit.edu>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, Andi Kleen <ak@linux.intel.com>,
Clemens Buchacher <drizzd@aon.at>
Subject: Re: [PATCH, RFC] Fix build problems related to profile-directed optimization
Date: Thu, 2 Feb 2012 15:12:26 -0500 [thread overview]
Message-ID: <20120202201226.GA1032@thunk.org> (raw)
In-Reply-To: <7vvcnpuhpo.fsf@alter.siamese.dyndns.org>
On Thu, Feb 02, 2012 at 12:02:27PM -0800, Junio C Hamano wrote:
>
> Thanks for a patch. How does this compare with what was discussed in the
> other thread?
>
> http://thread.gmane.org/gmane.comp.version-control.git/188992/focus=189172
I wasn't aware of this other approach when I created this patch (I
must have missed the e-mail thread, sorry).
One of the reasons why I did it this way was for more flexibility. I
wanted to be able to do:
$ make PROFILE_GEN=YesPlease PROFILE_DIR=/var/cache/FDO all
# make PROFILE_GEN=YesPlease PROFILE_DIR=/var/cache/FDO install
run a bunch of git commands on various git repositories to get
real-life usage...
Then do...
$ make PROFILE_USE=YesPlease PROFILE_DIR=/var/cache/FDO all
# make PROFILE_GEN=YesPlease PROFILE_DIR=/var/cache/FDO install
But for many people they would probably be satisfied with something
that builds git using a single magic recipe, even if they give up some
fractional performance improvement (keep in mind that the feedback
directed optimization seems to buy you only a single digit percentage
improvement according according to Andi's original experiment; I just
got interested in this more for amusement value than any thought that
it would save me serious amounts of time).
> I would wish a solution ideally would support
>
> make PROFILE_BUILD=YesPlease
> make PROFILE_BUILD=YesPlease install
At least in theory, it should be possible to have something which
supports both PROFILE_GEN/PROFILE_USE as well as a combined
PROFILE_BUILD.
The hard part is that PROFILE_BUILD requires a multi-pass process; you
need to build with one set of CFLAGS, then run the sample workload to
get the data for your feedback directed optimizations, and then re-run
the build with another set of CFLAGS. I think what we could to check
for PROFILE_BUILD, and if it is set, do the first PROFILE_GEN / make
test commands as part of the top-level Makefile's all: rule, and then
do the normal build after that.
It's a little kludgy, but does that sound acceptable to you?
- Ted
next prev parent reply other threads:[~2012-02-02 20:12 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-02 19:03 [PATCH, RFC] Fix build problems related to profile-directed optimization Theodore Ts'o
2012-02-02 20:02 ` Junio C Hamano
2012-02-02 20:12 ` Ted Ts'o [this message]
2012-02-02 20:14 ` Ted Ts'o
2012-02-03 0:58 ` Junio C Hamano
2012-02-03 2:07 ` Ted Ts'o
2012-02-03 6:00 ` Junio C Hamano
2012-02-03 18:19 ` Theodore Tso
2012-02-03 19:58 ` Junio C Hamano
2012-02-06 0:44 ` [PATCH] " Theodore Ts'o
2012-02-06 4:18 ` Jeff King
2012-02-06 5:57 ` Ted Ts'o
2012-02-06 6:00 ` Theodore Ts'o
2012-02-08 18:53 ` Ted Ts'o
2012-02-09 4:03 ` Junio C Hamano
2012-02-09 8:22 ` Johannes Sixt
2012-02-09 18:22 ` Junio C Hamano
2012-02-03 18:39 ` [PATCH, RFC] " Andi Kleen
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=20120202201226.GA1032@thunk.org \
--to=tytso@mit.edu \
--cc=ak@linux.intel.com \
--cc=drizzd@aon.at \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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).