From: "Marcin Kościelnicki" <koriakin@0x04.net>
To: Ulrich Weigand <uweigand@de.ibm.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 2/4 v2] IPA: Add alloc_jump_pad_buffer target hook.
Date: Tue, 29 Mar 2016 22:04:00 -0000 [thread overview]
Message-ID: <56FAFBFE.70005@0x04.net> (raw)
In-Reply-To: <20160329181849.A8017C9C7@oc7340732750.ibm.com>
On 29/03/16 20:18, Ulrich Weigand wrote:
> Marcin Kościelnicki wrote:
>
>> Targets may have various requirements on the required location of the jump
>> pad area. Currently IPA allocates it at the lowest possible address,
>> so that it is reachable by branches from the executable. However, this
>> fails on powerpc, which has executable link address (0x10000000) much
>> larger than branch reach (+/- 32MiB).
>>
>> This makes jump pad buffer allocation a target hook instead. The current
>> implementations are as follows:
>>
>> - i386: Branches can reach anywhere, so just mmap it. This avoids
>> the linear search dance.
>> - x86_64: Branches have +/-2GiB of reach, and executable is loaded low,
>> so just call mmap with MAP_32BIT. Likewise avoids the linear search.
>> - aarch64: Branches have +-128MiB of reach, executable loaded at 4MiB.
>> Do a linear search from 4MiB-size downwards to page_size.
>
> This makes sense to me, but I agree that this needs testing on the
> affected platforms, in particular aarch64.
Right. I've tested on i386 and x86_64. Unfortunately I have no means
of testing on aarch64 - could someone lend a hand here?
Also, since s390 tracepoints have just landed, I'll update the patch to
cover s390 and s390x as well.
>
>> +void *alloc_jump_pad_buffer (size_t size);
>> +#ifdef HAVE_GETAUXVAL
>> +unsigned long getauxval (unsigned long type);
>> +#endif
>
> Shouldn't this use a guard like
> #if !defined HAVE_GETAUXVAL && defined IN_PROCESS_AGENT
> just as in the source file?
Whoops, you're obviously right - I'm going to change the guard to
#ifndef HAVE_GETAUXVAL (since it's already inside #ifdef
IN_PROCESS_AGENT). I'll send this fix in v3 along with s390 support.
>
> Bye,
> Ulrich
>
next prev parent reply other threads:[~2016-03-29 22:04 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-13 2:31 [PATCH 0/3] gdbserver: Add powerpc fast tracepoint support Marcin Kościelnicki
2016-03-13 2:32 ` [PATCH 3/3] " Marcin Kościelnicki
2016-03-14 22:10 ` [PATCH 3/4 v2] " Marcin Kościelnicki
2016-03-16 16:58 ` Ulrich Weigand
2016-03-16 17:55 ` Marcin Kościelnicki
2016-03-17 6:30 ` Ulrich Weigand
2016-03-18 15:09 ` [PATCH v2 3/4] " Marcin Kościelnicki
2016-03-29 18:23 ` Ulrich Weigand
2016-03-30 14:52 ` Simon Marchi
2016-03-30 14:57 ` Ulrich Weigand
2016-03-30 15:24 ` Simon Marchi
2016-03-30 15:28 ` Simon Marchi
2016-03-30 15:35 ` Ulrich Weigand
2016-03-31 1:31 ` Marcin Kościelnicki
2016-03-31 11:39 ` Ulrich Weigand
2016-03-31 13:45 ` Marcin Kościelnicki
2016-03-13 2:32 ` [PATCH 1/3] gdbserver/IPA: Export some functions via global function pointers Marcin Kościelnicki
2016-03-14 14:41 ` Ulrich Weigand
2016-03-14 14:53 ` Marcin Kościelnicki
2016-03-14 17:49 ` Ulrich Weigand
2016-03-22 9:19 ` Marcin Kościelnicki
2016-03-29 18:08 ` Ulrich Weigand
2016-03-29 21:51 ` Pedro Alves
2016-03-30 11:30 ` Ulrich Weigand
2016-03-29 21:52 ` Marcin Kościelnicki
2016-03-30 11:32 ` Ulrich Weigand
2016-03-30 22:02 ` Marcin Kościelnicki
2016-03-31 18:22 ` Sergio Durigan Junior
2016-03-31 21:42 ` [PATCH obv] gdbserver: Fix C++ build errors in tracepoint.c Marcin Kościelnicki
2016-03-14 17:08 ` [PATCH 1/3] gdbserver/IPA: Export some functions via global function pointers Simon Marchi
2016-03-14 17:40 ` Ulrich Weigand
2016-03-13 2:32 ` [PATCH 2/3] IPA: Add alloc_jump_pad_buffer target hook Marcin Kościelnicki
2016-03-18 15:08 ` [PATCH 2/4 v2] " Marcin Kościelnicki
2016-03-29 18:18 ` Ulrich Weigand
2016-03-29 22:04 ` Marcin Kościelnicki [this message]
2016-03-30 11:38 ` Ulrich Weigand
2016-03-30 14:50 ` Yao Qi
2016-03-30 14:58 ` Ulrich Weigand
2016-03-31 7:34 ` Yao Qi
2016-03-31 11:37 ` Ulrich Weigand
2016-03-31 1:16 ` [PATCH 2/4 v3] " Marcin Kościelnicki
2016-03-31 11:38 ` Ulrich Weigand
2016-03-31 13:42 ` Marcin Kościelnicki
2016-04-01 14:43 ` Ulrich Weigand
2016-04-03 12:31 ` [PATCH] IPA: Fix build problem on !HAVE_GETAUXVAL Marcin Kościelnicki
2016-04-03 16:26 ` Ulrich Weigand
2016-04-03 16:28 ` Marcin Kościelnicki
2016-04-04 14:41 ` Ulrich Weigand
2016-04-05 13:33 ` [PATCH] IPA: Move getauxval out of #ifndef IN_PROCESS_AGENT Marcin Kościelnicki
2016-04-05 15:04 ` Ulrich Weigand
2016-04-05 16:55 ` Marcin Kościelnicki
2016-03-14 22:25 ` [PATCH 4/4] gdbserver: Add emit_ops for powerpc Marcin Kościelnicki
2016-03-16 17:16 ` Ulrich Weigand
2016-03-18 15:10 ` [PATCH v2 " Marcin Kościelnicki
2016-03-29 18:25 ` Ulrich Weigand
2016-03-31 13:45 ` Marcin Kościelnicki
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=56FAFBFE.70005@0x04.net \
--to=koriakin@0x04.net \
--cc=gdb-patches@sourceware.org \
--cc=uweigand@de.ibm.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