[gem5-users] Re: Speeding up the Edit, Compile, Debug cycle

2021-04-16 Thread gabriel.busnot--- via gem5-users
Hi Gabe,

Such configuration tool would be great, indeed!
I buy the performance argument for using static linking in release builds.
But for debug builds, it is slightly less convincing to me ;)

In the mean time, if you have any tip you are using to speed up the Edit, 
Compile, Debug cycle, I would love to know about it.
And if you have a couple of pointers for me to start looking at the build logic 
and try to put together a shared library based debug target, I would definitely 
take a look at it and give you feedback.

Thanks,
Gabriel
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s


[gem5-users] Re: Speeding up the Edit, Compile, Debug cycle

2021-04-15 Thread Gabe Black via gem5-users
Hi Gabriel. One big reason not to use shared libraries is performance,
although that doesn't mean the idea is without merit. In the long term, I
would like to give gem5 a kconfig like configuration mechanism, where you
could specify things to be built into gem5 itself, things to be excluded,
and things that would be loadable at run time. Things get a bit complicated
with gem5's python integration and SimObjects, but I'm hoping it will be
doable. There are a lot of steps between here and there and some things
need to be prioritized over others, but this is something I'm hoping to
improve in the long run.

Gabe

On Thu, Apr 15, 2021 at 4:05 AM gabriel.busnot--- via gem5-users <
gem5-users@gem5.org> wrote:

> Hi all,
>
> I would like to know what is your favorite way to run the ECD cycle with
> this gem5.debug beast of a binary.
>
> I am currently developing a pretty large Ruby protocol and use 2 build
> configurations: debug and fasta for "fast with asserts". I've defined the
> fasta build target myself and detail it bellow.
> I've carefully seasoned my code with asserts in order to catch as many
> bugs as possible without relying on gdb. I catch about 2/3 of the bugs that
> way I would say.
> The rest of the time, which is often more than 20 times a day, I must fall
> back to the debug target to have gem5 debug flags enabled and usable gdb
> information.
>
> So, what is the fasta target? It is the regular fast target...
> - with asserts (because segfault-based debugging sucks)
> - without LTO and stripping (for much faster link time)
> - without -Werror (because I don't want "unused variable errors" while
> developing).
> How does it perform? 20s compile time and close-ish to "fast" binary
> speeds.
>
> Now, why not use only the debug target? 1'40" compile time, 10"
> uncompressible platform elaboration time, 20" to load symbols in gdb: 2'+
> uncompressible time to compile and run gem5 under GDB.
> Why not use the opt target instead? ~3min compile time due to LTO and
> unusable gdb due to optimization, anyway.
>
> This brings me to the question: why doesn't gem5 make use of shared
> libraries, at least to speedup build time in debug mode?
> Ideally, one could even specify which modules need debug info and which
> don't. In my case, I would only include ruby-related debug info for
> instance.
> "Compile+Run in GDB" time could shrink down to less than 5s total that way.
>
> What do you think of it?
> I don't know much about SCons but with a few pointers to start, I could
> take a look at it and eventually submit a patch if I am happy with the
> results.
>
> Cheers,
> Gabriel Busnot
> ___
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s