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

Re: [Minios-devel] [UNIKRAFT RFC PATCH 2/5] plat/kvm: arm64: Enable the fp/simd at the starting point





On 20/12/2019 13:10, Santiago Pagani wrote:
Hi Julien,

Hi,

Thank you for not top-posting, but please configure your e-mail client to avoid quoting with tab. After a few e-mails the thread will be a nightmare to read.


On 20.12.19, 08:50, "Julien Grall" <julien@xxxxxxx> wrote:
I've been thinking a bit more about this, and I do not think we can do what you 
suggest. Namely, in Unikraft there is no difference between a kernel and an 
application. This is not Linux, where we have user space and applications and 
kernel space.

The concept of Unikraft is not much different from drivers/code in Linux kernel (such as crypto) able to use FPSIMD but not the rest of the kernel (see kernel_neon_{begin, end}).

While your application and kernel is linked in the same binary, you still have some boundary between kernel and application code. So you could decide when to enable/disable FPSIMD.

Everything gets compiled as a single image, running in flat memory space, everything with the same privileges and 
properties. We could compile the "application" files without the -mgeneral-regs-only flag, and the 
"kernel" files with it, but that does not guarantee that there will not be corruption in an exception, as the 
exception could occur when running "application code", and it is directly handled without going through the 
"kernel".

Well if your exception is free of FPSIMD instructions then you don't have any corruption problem.


Therefore, when we are compiling an image that has floating point support, then 
yes, every will need to save/restore all registers that could potentially get 
corrupted, and this should be added by Justin to his patch.
>

So it means that every time you receive an interrupt, you will have to save/restore the FPSIMD. That's going to increase to increase quite a bit the cost of receiving an interrupt.

If that's acceptable for you, then fine.

However, we need consistency for a given imagen, and we cannot have different 
parts of the image compiled with/without the -mgeneral-regs-only flag.

Why so? It is just a matter how you define your boundary.

Cheers,

--
Julien Grall

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

 


Rackspace

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