git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

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