[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 08/12] x86/hyperv: provide Hyper-V hypercall functions
On Thu, Jan 30, 2020 at 03:47:04PM +0100, Roger Pau Monné wrote: > On Thu, Jan 30, 2020 at 02:25:26PM +0000, Wei Liu wrote: > > On Thu, Jan 30, 2020 at 03:22:01PM +0100, Roger Pau Monné wrote: > > > On Thu, Jan 30, 2020 at 12:39:20PM +0000, Wei Liu wrote: > > > > On Thu, Jan 30, 2020 at 01:32:26PM +0100, Roger Pau Monné wrote: > > > > > On Thu, Jan 30, 2020 at 12:28:36PM +0000, Wei Liu wrote: > > > > > > On Thu, Jan 30, 2020 at 01:08:07PM +0100, Roger Pau Monné wrote: > > > > > > > > > > > > > > > +} > > > > > > > > + > > > > > > > > /* > > > > > > > > * Local variables: > > > > > > > > * mode: C > > > > > > > > diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S > > > > > > > > index 97f9c07891..8e02b4c648 100644 > > > > > > > > --- a/xen/arch/x86/xen.lds.S > > > > > > > > +++ b/xen/arch/x86/xen.lds.S > > > > > > > > @@ -329,6 +329,10 @@ SECTIONS > > > > > > > > efi = .; > > > > > > > > #endif > > > > > > > > > > > > > > > > +#ifdef CONFIG_HYPERV_GUEST > > > > > > > > + hv_hcall_page = ABSOLUTE(__fix_x_to_virt(1)); > > > > > > > > > > > > > > I assume there's no way to use FIX_X_HYPERV_HCALL because it's an > > > > > > > enum? > > > > > > > > > > > > > > > > > > > Yes. > > > > > > > > > > > > And the trick to generate a symbol didn't work either. > > > > > > > > > > And you must define that symbol in the linker script? It doesn't seem > > > > > to be used at link time. > > > > > > > > > > > > > I don't follow. I wish I could define and use a symbol in the linker > > > > script but couldn't. > > > > > > It's likely my fault, as I haven't been following the patch series in > > > that much detail. I assume this is done in order to generate better > > > code, rather than doing something like: > > > > > > void *hv_hcall_page = fix_x_to_virt(FIX_X_HYPERV_HCALL); > > > > > > In a C file somewhere when the hypercall page is setup? > > > > Andrew wanted badly to be able to use direct call in the hypercall > > functions. This is what we managed to come up with so far. > > > > I think what you wrote will still result in an indirect call. > > > > (The majority of my time spent on this series has been extending Xen to > > do more than it could before.) > > Ack, sorry to bother you with questions you have already answered. Not No worries. I value your feedback. And having more people understand what is going on is important to the project. > sure whether defining hv_hcall_page as a global const would make much > difference. Could you maybe use something like alternative_vcall > patching to get rid of the indirection? Tried that and didn't work either. :-( > > I have to admit I find this all quite hard to follow and reason about, > likely because of the mix of C, assembly, and linker script to build > this machinery, but that doesn't mean this isn't the best way. > Yes, a lot of trickeries are used to make this work. Not the most elegant combination I would say, but it does achieve what is desired. Wei. > Thanks, Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |