[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v4 3/7] x86/hyperv: provide Hyper-V hypercall functions



On 22.01.2020 22:57, Andrew Cooper wrote:
> On 22/01/2020 20:23, Wei Liu wrote:
>> These functions will be used later to make hypercalls to Hyper-V.
>>
>> Signed-off-by: Wei Liu <liuwe@xxxxxxxxxxxxx>
> 
> After some experimentation,
> 
> diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
> index cbc5701214..3708a60b5c 100644
> --- a/xen/arch/x86/xen.lds.S
> +++ b/xen/arch/x86/xen.lds.S
> @@ -329,6 +329,8 @@ SECTIONS
>    efi = .;
>  #endif
>  
> +  hv_hcall_page = ABSOLUTE(0xffff82d0bfffe000);
> +
>    /* Sections to be discarded */
>    /DISCARD/ : {
>         *(.exit.text)
> 
> in the linker script lets direct calls work correctly:
> 
> ffff82d080637935:       b9 01 00 00 40          mov    $0x40000001,%ecx
> ffff82d08063793a:       0f 30                   wrmsr 
> ffff82d08063793c:       ba 21 03 00 00          mov    $0x321,%edx
> ffff82d080637941:       bf 01 00 00 00          mov    $0x1,%edi
> ffff82d080637946:       e8 ac 4f c7 ff          callq  ffff82d0802ac8f7
> <__set_fixmap_x>
> ffff82d08063794b:       41 b8 00 00 00 00       mov    $0x0,%r8d
> ffff82d080637951:       b9 ff ff 00 00          mov    $0xffff,%ecx
> ffff82d080637956:       ba 00 00 00 00          mov    $0x0,%edx
> ffff82d08063795b:       e8 a0 66 9c 3f          callq  ffff82d0bfffe000
> <hv_hcall_page>
> ffff82d080637960:       66 83 f8 02             cmp    $0x2,%ax
> 
> but it does throw:
> 
> Difference at .init:00032edf is 0xc0000000 (expected 0x40000000)
> Difference at .init:00032edf is 0xc0000000 (expected 0x40000000)
> 
> as a diagnostic presumably from the final link  (both with a standard
> Debian 2.28 binutils, and upstream 2.33 build).  I'm not sure what its
> trying to complain about, as both xen.gz and xen.efi have correctly
> generated code.
> 
> Depending on whether they are benign or not, a linker-friendly
> fix_to_virt() should be all we need to keep these strictly as direct calls.

They're benign in the particular case of them actually resulting
from relative CALLs, which hence require no relocation to be
recorded in xen.efi's .reloc section. But they should nevertheless
be silenced. We've been discussing this on irc, iirc. The absolute
address used wants to move by 1Gb for the $(ALT_BASE) intermediate
linking step.

Jan

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.