Re: [PATCH 00/10] implement DYNAMIC_DEBUG_RELATIVE_POINTERS

2019-05-06 Thread Segher Boessenkool
On Mon, May 06, 2019 at 09:34:55AM +0200, Rasmus Villemoes wrote: > I _am_ bending the C rules a bit with the "extern some_var; asm > volatile(".section some_section\nsome_var: blabla");". I should probably > ask on the gcc list whether this way of defining a local symbol in > inline assembly and

Re: [PATCH 00/10] implement DYNAMIC_DEBUG_RELATIVE_POINTERS

2019-05-06 Thread Ingo Molnar
* Rasmus Villemoes wrote: > I _am_ bending the C rules a bit with the "extern some_var; asm > volatile(".section some_section\nsome_var: blabla");". I should > probably ask on the gcc list whether this way of defining a local > symbol in inline assembly and referring to it from C is

Re: [PATCH 00/10] implement DYNAMIC_DEBUG_RELATIVE_POINTERS

2019-05-06 Thread Rasmus Villemoes
On 06/05/2019 09.05, Ingo Molnar wrote: > > > It's sad to see such nice data footprint savings go the way of the dodo > just because GCC 4.8 is buggy. > > The current compatibility cut-off is GCC 4.6: > > GNU C 4.6 gcc --version > > Do we know where the GCC

Re: [PATCH 00/10] implement DYNAMIC_DEBUG_RELATIVE_POINTERS

2019-05-06 Thread Ingo Molnar
* Rasmus Villemoes wrote: > On 09/04/2019 23.25, Rasmus Villemoes wrote: > > > While refreshing these patches, which were orignally just targeted at > > x86-64, it occured to me that despite the implementation relying on > > inline asm, there's nothing x86 specific about it, and indeed it

Re: [PATCH 00/10] implement DYNAMIC_DEBUG_RELATIVE_POINTERS

2019-05-06 Thread Rasmus Villemoes
On 09/04/2019 23.25, Rasmus Villemoes wrote: > While refreshing these patches, which were orignally just targeted at > x86-64, it occured to me that despite the implementation relying on > inline asm, there's nothing x86 specific about it, and indeed it seems > to work out-of-the-box for ppc64

[PATCH 00/10] implement DYNAMIC_DEBUG_RELATIVE_POINTERS

2019-04-09 Thread Rasmus Villemoes
Similar to CONFIG_GENERIC_BUG_RELATIVE_POINTERS that replaces (8 byte) const char* members by (4 byte) signed offsets from the bug_entry, this implements the similar thing for struct _ddebug, the descriptors underlying pr_debug() and friends in a CONFIG_DYNAMIC_DEBUG kernel. Since struct _ddebug