From: Anthony Liguori <anthony@codemonkey.ws>
To: Zachary Amsden <zach@vmware.com>
Cc: linux-kernel@vger.kernel.org, Jeremy Fitzhardinge <jeremy@goop.org>
Subject: Re: [RFC] Use para_fill instead of vmi_get_function for APIC ops
Date: Mon, 26 Feb 2007 18:49:54 -0600 [thread overview]
Message-ID: <45E38032.3020704@codemonkey.ws> (raw)
In-Reply-To: <45E37EB5.7070100@vmware.com>
Zachary Amsden wrote:
> Anthony Liguori wrote:
>> Hi Zach,
>>
>> It seems to me that the APIC paravirt_ops should be filled by
>> para_fill() instead of vmi_get_function(). vmi_get_function()
>> returns a nop when the relocation type is NONE. para_fill() leaves
>> the native code in place.
>>
>> The native version of the apic write ops is more or less *(APIC_BASE
>> + reg) = value. APIC_BASE is unknown to the ROM so it's impossible
>> to simulate this in the ROM.
>>
>> This means that a ROM has no choice but to do APIC emulation (or jump
>> through seriously hairy loops to get the APIC mapped in it's address
>> space). Was this the intention?
>
> No, but certainly the effect. Actually, it is very easy to get the
> APIC mapped in the ROM address space without jumping through seriously
> hairy loops - we do it today in our hypervisor.
>
>>
>> N.B. attached patch is just to illustrate the point. Has not even
>> been compile tested.
>
>
> Patch looks good, thanks. But the whole para_fill / vmi_get_function
> stuff could probably be done even cleaner. It was just a helper at
> first to work around the awkward syntax, and it is still a bit ugly,
> but I haven't come up with a better solution yet, mostly because with
> the new inlining work Jeremy is doing, we might want to start doing
> selective inlining, in which case I'll have to go back over the code
> anyway to clean everything to get the logic right in all cases.
It would be really great if one could write a ROM by just specifying a
GetRelocationInfo function that always returns rel.type == NONE. Right
now, there are a half a dozen or so ops that have to be implemented b/c
of the vmi_get_function stuff.
> I assume this patch is signed-off-by you? If so, I'll add it to my
> patch queue.
Yeah, but please make sure to test it. I haven't at all.
Signed-off-by: Anthony Liguori <anthony@codemonkey.ws>
Thanks,
Anthony Liguori
> Zach
>
next prev parent reply other threads:[~2007-02-27 0:50 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-27 0:06 [RFC] Use para_fill instead of vmi_get_function for APIC ops Anthony Liguori
2007-02-27 0:43 ` Zachary Amsden
2007-02-27 0:49 ` Anthony Liguori [this message]
2007-02-27 1:00 ` Zachary Amsden
2007-02-27 1:36 ` Jeremy Fitzhardinge
2007-02-27 16:17 ` Anthony Liguori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45E38032.3020704@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=zach@vmware.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox