On Tue, Nov 11, 2025 at 04:28:27PM +0530, Naman Jain wrote: > > > 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.
Sure, have at. Thanks!
