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

Re: [Xen-devel] RT Xen on ARM - R-Car series



Hi Stefano,

On 1/31/19 9:56 PM, Stefano Stabellini wrote:
On Thu, 31 Jan 2019, Julien Grall wrote:
On 31/01/2019 12:00, Andrii Anisov wrote:
Hello Julien,

On 31.01.19 13:37, Julien Grall wrote:
On my side I just commented out that printk, because it renders a debug
build unusable.

... if it is unusable, why don't you try to tackle the problem?
Because of...

This is in my long ever growing list of things to

... be done.

Some of things get solutions, some WAs.

I can't see a good workaround for this. At some point someone would have to
pick it up rather than building a house of cards.

I ran into this problem as well not too long ago too. It is very
annoying and it is basically impossible to work-around, the only thing
possible would be to suppress the warning, but that doesn't even count
as a work-around :-)

I am sure I will regret to have said that, but I will for fairness :).

If security is not a concern within the guest, then you can disable kpti (either via Kconfig or command line). All the errors should go away for Linux guest.


The way forward is to modify the existing
VCPUOP_register_runstate_memory_area interface. I liked Julien's idea in
https://lists.xenproject.org/archives/html/xen-devel/2018-03/msg00227.html:
we don't necessarily need to change the parameters of the hypercalls
from a guest virtual address to a guest physical address. It should be
enough to convert the guest virtual address into a guest physical
address in Xen when VCPUOP_register_runstate_memory_area is called
(xen/common/domain.c:VCPUOP_register_runstate_memory_area), then store
the guest physical address or its mapping in v->runstate_guest (the type
of runstate_guest needs to change) and always use the guest physical
address for future updates on the runstate memory area.

I would love to say it is that easy :). However, there are some research to do regarding how this is used by guests today. The hypercall is taking a virtual address, so technically it would be possible for a guest to pass a non page-aligned virtual address. So this would span onto two buffers (it seems to happen on older Linux).

Furthermore, because this is a virtual address, a guess would be free to modify the mapping at any time.

So if we want to use guest physical address in Xen, we need to know if it will not break any current guest. This would also probably needs to be documented in the interface.

With the current interface workaround, we are still playing with devil (see [2]). So it would be nice to get a new interface that does not use virtual address.


It doesn't seem too difficult.

Even with my comments above, I agree :).

Cheers,

[2] <9fa77816-a25c-c19b-cc26-e0d28cc2e160@xxxxxxxxxx>



--
Julien Grall

_______________________________________________
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®.