public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "jakub at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug sanitizer/55309] gcc's address-sanitizer 66% slower than clang's
Date: Tue, 12 Feb 2013 08:40:00 -0000	[thread overview]
Message-ID: <bug-55309-4-Ck9RhSy1mj@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-55309-4@http.gcc.gnu.org/bugzilla/>


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55309

--- Comment #34 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-02-12 08:39:33 UTC ---
(In reply to comment #32)
> Good news, 0x7fff8000 seems great: 
> There is another suggestion (from dvyukov) to use -Wl,-Ttext-segment=0x40000000
> together with zerobase (pie is not required) which is worth investigating.

Glad to hear that.  The disadvantage of 
-Wl,-Ttext-segment=0x40000000 is that it requires special command line option
for building the executable, i.e. you can't e.g. just build some shared library
with -fsanitize=address and leave the main executable non-instrumented.
Plus, I don't see how can 
-Wl,-Ttext-segment=0x40000000 be used for x86_64, where you need 16TB of shadow
memory for >> 3 scale.  For zero shadow offset you'd need to place the
executable above 16TB, and that implies non-small model.
If -Ttext-segment is meant for 32-bit programs, then it could allow zero shadow
offset, but with the disadvantage of special building of executables, and on
i?86 the offset already fits into the immediates, so it is basically the
0x7fff8000 case for x86_64 already.

(In reply to comment #33)
> > , it might be better to have the scale
> > and offset as arguments of __asan_init?  
>
> We did this in the very early version, but it did not work in general. 
> Consider you are linking your program with a third-party object 
> not built with asan. It may have constructor functions called before main and
> before __asan_init, and those functions call malloc which has to 
> call __asan_init, but can not pass arguments.

I see, but then you could use the global vars (perhaps weak ones in libasan
with some default), combined together with arguments to __asan_init (or some
alternative name of the same function for compatibility).  All that it would do
beyond normal initialization would be complain if the requested scale/offset
pair is different from the chosen one.


  parent reply	other threads:[~2013-02-12  8:40 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-13 10:01 [Bug other/55309] New: " markus at trippelsdorf dot de
2012-11-13 21:10 ` [Bug other/55309] " konstantin.s.serebryany at gmail dot com
2012-11-13 21:31 ` markus at trippelsdorf dot de
2012-11-14  7:52 ` jakub at gcc dot gnu.org
2012-11-14 16:38 ` jakub at gcc dot gnu.org
2012-11-14 17:03 ` markus at trippelsdorf dot de
2013-02-05  9:22 ` [Bug sanitizer/55309] " kcc at gcc dot gnu.org
2013-02-05  9:43 ` kcc at gcc dot gnu.org
2013-02-05  9:56 ` jakub at gcc dot gnu.org
2013-02-05 10:31 ` kcc at gcc dot gnu.org
2013-02-05 10:42 ` kcc at gcc dot gnu.org
2013-02-05 10:55 ` jakub at gcc dot gnu.org
2013-02-05 11:18 ` markus at trippelsdorf dot de
2013-02-05 11:24 ` jakub at gcc dot gnu.org
2013-02-05 11:26 ` jakub at gcc dot gnu.org
2013-02-05 12:23 ` kcc at gcc dot gnu.org
2013-02-06 10:56 ` dodji at gcc dot gnu.org
2013-02-06 11:19 ` kcc at gcc dot gnu.org
2013-02-06 12:25 ` kcc at gcc dot gnu.org
2013-02-06 12:39 ` rguenth at gcc dot gnu.org
2013-02-06 12:43 ` kcc at gcc dot gnu.org
2013-02-06 12:49 ` jakub at gcc dot gnu.org
2013-02-06 15:03 ` dodji at gcc dot gnu.org
2013-02-07  5:02 ` kcc at gcc dot gnu.org
2013-02-07 17:01 ` jakub at gcc dot gnu.org
2013-02-07 17:18 ` dvyukov at google dot com
2013-02-08  6:31 ` kcc at gcc dot gnu.org
2013-02-08  9:02 ` jakub at gcc dot gnu.org
2013-02-08  9:13 ` kcc at gcc dot gnu.org
2013-02-08  9:25 ` jakub at gcc dot gnu.org
2013-02-11 14:43 ` kcc at gcc dot gnu.org
2013-02-11 15:03 ` jakub at gcc dot gnu.org
2013-02-12  6:48 ` kcc at gcc dot gnu.org
2013-02-12  7:03 ` kcc at gcc dot gnu.org
2013-02-12  8:40 ` jakub at gcc dot gnu.org [this message]
2013-02-12  8:47 ` dvyukov at google dot com
2013-02-12  8:59 ` kcc at gcc dot gnu.org
2013-02-12 11:18 ` kcc at gcc dot gnu.org
2013-02-12 11:31 ` kcc at gcc dot gnu.org
2013-02-12 11:42 ` jakub at gcc dot gnu.org
2013-02-12 14:00 ` howarth at nitro dot med.uc.edu
2013-02-12 14:12 ` jakub at gcc dot gnu.org
2013-02-12 14:42 ` howarth at nitro dot med.uc.edu
2013-02-22  7:11 ` kcc at gcc dot gnu.org
2013-02-22  8:31 ` Joost.VandeVondele at mat dot ethz.ch
2013-02-22  8:36 ` kcc at gcc dot gnu.org
2013-02-22 13:09 ` jakub at gcc dot gnu.org
2013-02-22 13:52 ` kcc at gcc dot gnu.org
2013-02-22 13:55 ` Joost.VandeVondele at mat dot ethz.ch
2013-02-22 14:30 ` kcc at gcc dot gnu.org
2013-02-22 14:54 ` kcc at gcc dot gnu.org
2013-02-22 15:01 ` jakub at gcc dot gnu.org
2013-02-22 15:04 ` jakub at gcc dot gnu.org
2013-02-22 15:06 ` kcc at gcc dot gnu.org
2013-02-22 15:14 ` jakub at gcc dot gnu.org
2013-02-22 16:11 ` joseph at codesourcery dot com
2013-02-26  7:43 ` kcc at gcc dot gnu.org
2013-02-28 11:32 ` kcc at gcc dot gnu.org
2014-01-27  8:22 ` trippels at gcc dot gnu.org

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=bug-55309-4-Ck9RhSy1mj@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /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 read-only IMAP folder(s) and NNTP newsgroup(s).