On 11/11/2025 1:43 PM, Peter Zijlstra wrote:
On Tue, Nov 11, 2025 at 12:25:54PM +0530, Naman Jain wrote:
This would have been the cleanest approach. We discussed this before and
unfortunately it didn't work. Please find the link to this discussion:
https://lore.kernel.org/all/[email protected]/
To summarize above discussion, I see below compilation error with this from
objtool. You may have CONFIG_X86_KERNEL_IBT enabled in your workspace, which
would have masked this.
IBT isn't the problem, the thing is running objtool on vmlinux.o vs the
individual translation units. vmlinux.o will have that symbol, while
your .S file doesn't.
AS arch/x86/hyperv/mshv_vtl_asm.o
arch/x86/hyperv/mshv_vtl_asm.o: error: objtool: static_call: can't find
static_call_key symbol: __SCK____mshv_vtl_return_hypercall
Right, and I said you had to do that ADDRESSABLE thing. So I added a
DECLARE_STATIC_CALL() and a static_call() in hv.c, compiled it so .s and
stole the bits.
And then you get something like the below. See symbol 5, that's the
entry we need.
# readelf -sW defconfig-build/arch/x86/hyperv/mshv_vtl_asm.o
Symbol table '.symtab' contains 8 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 0000000000000000 8 OBJECT LOCAL DEFAULT 6
__UNIQUE_ID_addressable___SCK____mshv_vtl_return_hypercall_662.0
2: 0000000000000000 0 SECTION LOCAL DEFAULT 4 .noinstr.text
3: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND
__SCT____mshv_vtl_return_hypercall
4: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND __x86_return_thunk
5: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND
__SCK____mshv_vtl_return_hypercall
6: 0000000000000010 179 FUNC GLOBAL DEFAULT 4
__mshv_vtl_return_call
7: 0000000000000000 16 FUNC GLOBAL DEFAULT 4
__pfx___mshv_vtl_return_call
---
Thanks a lot for sharing the changes. I tested this and it works fine. I
can create a separate patch for the include/linux/* changes and add it
as the first patch in the next version of my patch series.
Please let me know if this is fine and if I can add your Signed-off-by
in that patch.
Regards,
Naman