Branch: refs/heads/next
Home: https://github.com/siemens/jailhouse
Commit: 564f354155a3a21e95041c1b8fb79605356abf65
https://github.com/siemens/jailhouse/commit/564f354155a3a21e95041c1b8fb79605356abf65
Author: Jan Kiszka <[email protected]>
Date: 2020-03-06 (Fri, 06 Mar 2020)
Changed paths:
M hypervisor/arch/x86/apic.c
M hypervisor/arch/x86/control.c
Log Message:
-----------
x86: Add proper fence before sending IPIs
Since 2017, the Intel manual suggests to use mfence plus lfence as
barrier to make data changes visible triggering an interrupt via the
x2APIC interface. Jailhouse was so far not using any barrier
consistently in those cases, neither for internal NMI IPIs, nor for
those triggered via the ivshmem doorbell interface.
This adds the recommended mfence;lfence sequence to all IPIs triggered
via apic_send_irq or apic_send_ipi, at the risk of having more than
needed, e.g. when issuing an IPI on behalf of a guest that already used
a barrier itself. Compared to the risk of missing a cases and given the
overhead that the intercepted IPI submission comes with anyway, this is
the preferable option.
Note that this also ensures proper serialization of data writes and
kicks for the ivshmem doorbell interface on x86. Such a property is
going to be demanded by the ivshmem specification.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: cb8d79bbc2caee07fbc2d9ed86af15e040a70c35
https://github.com/siemens/jailhouse/commit/cb8d79bbc2caee07fbc2d9ed86af15e040a70c35
Author: Jan Kiszka <[email protected]>
Date: 2020-03-06 (Fri, 06 Mar 2020)
Changed paths:
M hypervisor/arch/arm-common/ivshmem.c
Log Message:
-----------
arm-common: Add memory barrier before ivshmem interrupt submission
This ensures that a guest will not see its data lagging behind the
signal when triggering the ivshmem doorbell. We are going to demand this
property from the ivshmem interface.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: dbfeb6d8711fc0e1fd8140d4d3d4aa6ea5c6e4fd
https://github.com/siemens/jailhouse/commit/dbfeb6d8711fc0e1fd8140d4d3d4aa6ea5c6e4fd
Author: Jan Kiszka <[email protected]>
Date: 2020-03-06 (Fri, 06 Mar 2020)
Changed paths:
M hypervisor/arch/arm-common/psci.c
M hypervisor/control.c
Log Message:
-----------
core, arm-common: Clarify role of spin_unlock before event submission
On ARM, the spin_unlock is sufficient to provide a memory barrier before
calling arch_send_event / arm_cpu_kick. On other archs, the
implementation of arch_send_event has to take care of this. Clarify this
at the respective call sites.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 851ae85813884f50580535b076f4b97ca5dbf360
https://github.com/siemens/jailhouse/commit/851ae85813884f50580535b076f4b97ca5dbf360
Author: Jan Kiszka <[email protected]>
Date: 2020-03-06 (Fri, 06 Mar 2020)
Changed paths:
M hypervisor/arch/arm-common/control.c
M hypervisor/arch/arm-common/include/asm/control.h
M hypervisor/arch/arm-common/psci.c
M hypervisor/arch/x86/include/asm/control.h
M hypervisor/include/jailhouse/control.h
Log Message:
-----------
arm-common: Get rid of arm_cpu_kick
Implement arch_send_event directly and switch psci to this. Makes things
more straightforward - and provides the chance to properly document
arch_send_event.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: e72a8edaa1ebf7b4a00c43ecb988cb94c882d12d
https://github.com/siemens/jailhouse/commit/e72a8edaa1ebf7b4a00c43ecb988cb94c882d12d
Author: Jan Kiszka <[email protected]>
Date: 2020-03-06 (Fri, 06 Mar 2020)
Changed paths:
M hypervisor/arch/arm-common/include/asm/irqchip.h
M hypervisor/arch/arm-common/irqchip.c
M hypervisor/arch/arm-common/ivshmem.c
Log Message:
-----------
arm-common: Factor out irqchip_trigger_external_irq
This replaces the non-intuitive special case of
irqchip_set_pending(NULL, ...) with an explicit one.
The only case where irqchip_set_pending() was called like this was
arch_ivshmem_trigger_interrupt(). All others already passed in a
cpu_public pointer guaranteed to be non-NULL.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 266ebe6decbf3062120a164e2bb24a4a874b01ae
https://github.com/siemens/jailhouse/commit/266ebe6decbf3062120a164e2bb24a4a874b01ae
Author: Jan Kiszka <[email protected]>
Date: 2020-03-06 (Fri, 06 Mar 2020)
Changed paths:
M Documentation/ivshmem-v2-specification.md
Log Message:
-----------
Documentation: ivshmem: Require that doorbell writes act as memory barriers
This avoids that the guest has to be aware of how the doorbell interrupt
is internally sent to the target CPU because to add the corresponding
memory barrier explicitly. The implementation in Jailhouse already
fulfills this new requirement.
Signed-off-by: Jan Kiszka <[email protected]>
Compare:
https://github.com/siemens/jailhouse/compare/ca7123a5c58d...266ebe6decbf
--
You received this message because you are subscribed to the Google Groups
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jailhouse-dev/siemens/jailhouse/push/refs/heads/next/ca7123-266ebe%40github.com.