This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, testsuite] Add effective target stack_size


On 06/12/2017 02:28 PM, Christophe Lyon wrote:
Hi Tom,

On 9 June 2017 at 17:25, Mike Stump <mikestump@comcast.net> wrote:
On Jun 9, 2017, at 7:24 AM, Tom de Vries <Tom_deVries@mentor.com> wrote:
this patch adds effective target stack_size.

OK for trunk if x86_64 and nvptx testing succeeds?

Ok.

The only last issue in this area that I know about is that there are a few more test cases that need up to 48 MB to run, the problem is that targets might have substantially less memory.  Stack size is one of the ways this problem can be exposed.  The failure to load case is or can be handled in other ways, but the dynamic allocation case I think is relatively poorly handled.  On my machine, I just punted by running on a virtual simulator that I pushed memory up to 48 MB and ignored the issue.  If anyone wants to try their hand at it, I'd be happy to review some patches.  For those on demand virtual memory systems, of course, the problem is invisible.  I didn't have any good ideas in this area.  Marking large memory test cases with size information, and then just trimming based upon size was my only thought.  Not exactly portable, as the exact size of any test case is of course target dependent; but, if we get close enough, it can provide enough of a solution I think.

If people have better ideas in this area, even if you don't want to implement them, it'd be nice to hear about them.

After this commit (r249090), I've noticed that badalloc1.C fails at
execution on aarch64 and arm bare-metal targets.

It is compiled with -DSTACK_SIZE=16384, maybe that's too small?

I think that what's going on is the following:
- your board description file for aarch64 and arm bare-metal sets
  gcc,stack_size
- before I committed the patch, STACK_SIZE was not defined when
  compiling this testcase, because the activated .exp files do not
  define it
- after I committed the patch, STACK_SIZE started to be defined, and
  the test started to fail

I'm not sure if this test was ever compiled with STACK_SIZE defined.

Either way, the test-case uses the presence of STACK_SIZE, not the actual value, so changing the value of gcc,stack_size won't make a difference.

Ideally you'd find out what the exact reason for the failure is, and update the test-case accordingly.

The easiest thing we can do is to remove the STACK_SIZE setting in the test-case (and to avoid confusion, remove all the dead STACK_SIZE-enabled code), which returns the status quo of before the patch.

Thanks,
- Tom


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]