tile: provide traceability for hypervisor calls

This change adds infrastructure (CONFIG_TILE_HVGLUE_TRACE) that
provides C code wrappers for the calls the kernel makes to the Tilera
hypervisor.  This allows standard kernel infrastructure like FTRACE to
be able to instrument hypervisor calls.

To allow direct calls to the true API, we export their names with a
leading underscore as well.  This is important for the few contexts
where we need to make hypervisor calls without touching the stack.

As part of this change, we also switch from creating the symbols
with linker magic to creating them with assembler magic.  This lets
us provide a symbol type and generally make them appear more as symbols
and less as just random values in the Elf namespace.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Цей коміт міститься в:
Chris Metcalf
2013-08-07 16:03:08 -04:00
джерело fad052dc4b
коміт 9ae0983847
12 змінених файлів з 368 додано та 76 видалено

Переглянути файл

@@ -24,4 +24,12 @@ config DEBUG_EXTRA_FLAGS
size and build time noticeably. Such flags are often
helpful if the main use of debug info is line number info.
config TILE_HVGLUE_TRACE
bool "Provide wrapper functions for hypervisor ABI calls"
default n
help
Provide wrapper functions for the hypervisor ABI calls
defined in arch/tile/kernel/hvglue.S. This allows tracing
mechanisms, etc., to have visibility into those calls.
endmenu