tile: provide traceability for hypervisor calls
authorChris Metcalf <cmetcalf@tilera.com>
Wed, 7 Aug 2013 20:03:08 +0000 (16:03 -0400)
committerChris Metcalf <cmetcalf@tilera.com>
Tue, 13 Aug 2013 20:26:31 +0000 (16:26 -0400)
commit9ae09838470a68edf0245cd60c623df2d5993a8f
treef5b71e4c830d729900b10035f0f525b85ca634ed
parentfad052dc4be7b1d9e7ff40ccd8ba2b8216823b51
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>
12 files changed:
arch/tile/Kconfig.debug
arch/tile/kernel/Makefile
arch/tile/kernel/head_32.S
arch/tile/kernel/head_64.S
arch/tile/kernel/hvglue.S [new file with mode: 0644]
arch/tile/kernel/hvglue.lds [deleted file]
arch/tile/kernel/hvglue_trace.c [new file with mode: 0644]
arch/tile/kernel/intvec_32.S
arch/tile/kernel/intvec_64.S
arch/tile/kernel/vmlinux.lds.S
arch/tile/mm/migrate_32.S
arch/tile/mm/migrate_64.S