[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 1/3] xen: add no_instrument_function attributes
On 7/29/24 10:55, Jan Beulich wrote: > On 29.07.2024 16:24, Stewart Hildebrand wrote: >> In preparation for using -finstrument-functions option, we need to tag a >> few functions that don't work well with such instrumentation. If we >> don't intervene, we would end up with linker errors such as undefined >> reference to __bad_cmpxchg. > > I can't spot mention of such a side effect from the documentation. Talk > there is of function calls being added at function entry and exit. > Nothing is being said that calls to other functions would also be > affected. Oddly, it seems the compiler fails remove the implementations of the affected functions from the object files even though they are not called in the generated code (because they were inlined). I can mention this in the commit message. For example, if no_instrument is omitted from __int_cmpxchg, feeding one of the object files through aarch64-none-linux-gnu-objdump -d yields for example: 0000000000000048 <__int_cmpxchg>: <snip> 16c: 94000000 bl 0 <__bad_cmpxchg> <snip> Yet, __int_cmpxchg is not called by anything. Even more oddly, this appears to be the case for both clang and gcc. >> --- a/xen/arch/arm/include/asm/arm64/cmpxchg.h >> +++ b/xen/arch/arm/include/asm/arm64/cmpxchg.h >> @@ -5,6 +5,7 @@ >> >> extern void __bad_xchg(volatile void *ptr, int size); >> >> +__attribute__((no_instrument_function)) > > I guess it would be nice to have > > #define no_instrument __attribute__((no_instrument_function)) > > in xen/compiler.h. I also don't think these annotations want placing > ahead of the entire declaration, but rather where other similar > annotations would also go. Will do, thanks for the suggestion.
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |