|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 04/70] x86/pv-shim: Don't modify the hypercall table
On 17.02.22 11:20, Jan Beulich wrote: On 16.02.2022 23:17, Andrew Cooper wrote:On 14/02/2022 13:56, Jan Beulich wrote:On 14.02.2022 14:50, Andrew Cooper wrote:On 14/02/2022 13:33, Jan Beulich wrote:On 14.02.2022 13:50, Andrew Cooper wrote:From: Juergen Gross <jgross@xxxxxxxx> When running as pv-shim the hypercall is modified today in order to replace the functions for __HYPERVISOR_event_channel_op and __HYPERVISOR_grant_table_op hypercalls. Change this to call the related functions from the normal handlers instead when running as shim. The performance implications are not really relevant, as a normal production hypervisor will not be configured to support shim mode, so the related calls will be dropped due to optimization of the compiler. Note that for the CONFIG_PV_SHIM_EXCLUSIVE case there is a dummy wrapper do_grant_table_op() needed, as in this case grant_table.c isn't being built. Signed-off-by: Juergen Gross <jgross@xxxxxxxx> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>I don't think you sync-ed this with Jürgen's v3. There were only minor changes but having a stale version sent two months later isn't very nice.I did resync. What do you think is missing?A few likely() / unlikely() as far as I could see.Oh those two. I appear to have forgot to email. They're wrong - observe they're in an ifndef block, not an ifdef block.I don't see how the (unrelated) #ifndef matters here: The #ifndef is about grant table availability. The two likely() are about running as shim. I'm of the firm opinion that a binary built without PV_SHIM_EXCLUSIVE is far more likely to be used as a bare metal hypervisor. And for a PV_SHIM_EXCLUSIVE hypervisor the conditions are constant anyway, and hence the unlikely() has no effect. And if your way should really be followed, why did you deem the two unlikely() in do_event_channel_op() and do_grant_table_op() okay?--- a/xen/common/compat/multicall.c +++ b/xen/common/compat/multicall.c @@ -5,7 +5,7 @@ EMIT_FILE;#include <xen/types.h>-#include <xen/multicall.h> +#include <xen/hypercall.h> #include <xen/trace.h>#define COMPAT The main blocking point currently is that Julien would like me to let all hypercalls return an int (apart from the ones which really need a long). This will affect lot of common code and I need to have more time for that endeavor. An alternative to that would be to not rework the Arm side of the hypercall logic. Juergen Attachment:
OpenPGP_0xB0DE9DD628BF132F.asc Attachment:
OpenPGP_signature
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |