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 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.