Branch: refs/heads/next
Home: https://github.com/siemens/jailhouse
Commit: 3c52931d5c9d911127f89ebfe92e6e86490cc58f
https://github.com/siemens/jailhouse/commit/3c52931d5c9d911127f89ebfe92e6e86490cc58f
Author: Jan Kiszka <[email protected]>
Date: 2018-04-24 (Tue, 24 Apr 2018)
Changed paths:
M configs/x86/tiny-demo.c
M inmates/Makefile
A inmates/tests/arm/Makefile
A inmates/tests/arm64/Makefile
A inmates/tests/x86/Makefile
A inmates/tests/x86/mmio-access.c
Log Message:
-----------
inmates: x86: Add test case for MMIO accessing instructions
This lays the ground for systematic tests of the MMIO instruction parser
in x86. The test-case inmate uses the new MMIO access test device for
writing and reading with yet a small number of instructions variants.
This is supposed to expanded later on with further patterns - but it
already revealed several bugs in the handling of immediate writes.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: d0e79d43f7341be4abd34d0f2e7b89e8dc552d75
https://github.com/siemens/jailhouse/commit/d0e79d43f7341be4abd34d0f2e7b89e8dc552d75
Author: Jan Kiszka <[email protected]>
Date: 2018-04-24 (Tue, 24 Apr 2018)
Changed paths:
M hypervisor/arch/x86/mmio.c
Log Message:
-----------
x86: mmio: Fix instruction length calculation for write-immediate
This fixes one case around mov imm,<addr>: We read the immediate value
to be written, but we forgot to update inst_len. This fixes that issue
by moving the update from ctx.count to inst.inst_len to the very end
of the parser.
Fixes: 95202a038b9e ("x86,mmio: Add support for 1 more instructions on
the MMIO dispatcher")
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 443f9e0c612f38599ead34d516d27a7ebc6fe7ef
https://github.com/siemens/jailhouse/commit/443f9e0c612f38599ead34d516d27a7ebc6fe7ef
Author: Jan Kiszka <[email protected]>
Date: 2018-04-24 (Tue, 24 Apr 2018)
Changed paths:
M hypervisor/arch/x86/mmio.c
Log Message:
-----------
x86: mmio: Fix handling of displacement bytes when writing immediates
We only skipped over 32-bit displacements in mod 0 so far. But mod 1 and
2 can bring them as well. Moreover, we incremented inst_len even when
skipping via ctx_update, which accounted the displacement twice.
Fix this by pulling out the displacement skip, moving it before the
immediate retrieval. If there is no immediate to read, directly add the
displacement length to inst_len.
Fixes: 95202a038b9e ("x86,mmio: Add support for 1 more instructions on
the MMIO dispatcher")
Signed-off-by: Jan Kiszka <[email protected]>
Commit: da65f8de5661d1fd91b3af7b544269ee0af2cb15
https://github.com/siemens/jailhouse/commit/da65f8de5661d1fd91b3af7b544269ee0af2cb15
Author: Jan Kiszka <[email protected]>
Date: 2018-04-24 (Tue, 24 Apr 2018)
Changed paths:
M hypervisor/arch/x86/mmio.c
Log Message:
-----------
x86: mmio: Reliably identify mov immediate instructions
The opcode of mov imm,<mem> also consists of reg=0 in the ModR/M byte.
Make sure that we do not misinterpret an instruction.
Fixes: 95202a038b9e ("x86,mmio: Add support for 1 more instructions on
the MMIO dispatcher")
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 3fb8eb6de9dad39726143740bda4145e82a9641a
https://github.com/siemens/jailhouse/commit/3fb8eb6de9dad39726143740bda4145e82a9641a
Author: Jan Kiszka <[email protected]>
Date: 2018-04-24 (Tue, 24 Apr 2018)
Changed paths:
M hypervisor/arch/x86/mmio.c
Log Message:
-----------
x86: mmio: Sign-extend immediate of 64-bit mov
The immediate value of mov imm,<mem> is still 32-bit in case of a 64-bit
write, but it has to be sign-extended in that case. Add the missing
logic.
Fixes: 95202a038b9e ("x86,mmio: Add support for 1 more instructions on
the MMIO dispatcher")
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 528483ec46a86c40ea2ab0bf58043c1a9c8059e4
https://github.com/siemens/jailhouse/commit/528483ec46a86c40ea2ab0bf58043c1a9c8059e4
Author: Jan Kiszka <[email protected]>
Date: 2018-04-24 (Tue, 24 Apr 2018)
Changed paths:
M hypervisor/arch/x86/mmio.c
Log Message:
-----------
x86: mmio: Complete SIB + displacement support
The case of mod=1 or 2 and rm = 4 (SIB) is easy to handle because we do
not need to evaluate the SIB byte and can simply skip over it.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 64227a8bea8ae0a1a7770b9776263897983c31c0
https://github.com/siemens/jailhouse/commit/64227a8bea8ae0a1a7770b9776263897983c31c0
Author: Jan Kiszka <[email protected]>
Date: 2018-04-24 (Tue, 24 Apr 2018)
Changed paths:
M hypervisor/arch/x86/mmio.c
Log Message:
-----------
x86: mmio: Refactor code for mod=0 handling
This just improves readability and makes the code more compact. The
rm cases are now dispatched in ascending order.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 296e5d5491daf6b5150b688cce6b0d2944aa1d88
https://github.com/siemens/jailhouse/commit/296e5d5491daf6b5150b688cce6b0d2944aa1d88
Author: Jan Kiszka <[email protected]>
Date: 2018-04-24 (Tue, 24 Apr 2018)
Changed paths:
M hypervisor/arch/x86/apic.c
M hypervisor/arch/x86/include/asm/apic.h
M hypervisor/arch/x86/include/asm/mmio.h
M hypervisor/arch/x86/include/asm/vcpu.h
M hypervisor/arch/x86/mmio.c
M hypervisor/arch/x86/svm.c
M hypervisor/arch/x86/vcpu.c
M hypervisor/arch/x86/vmx.c
Log Message:
-----------
x86: Split up vcpu_vendor_get_execution_state
Rather than always pulling the four fields of vcpu_execution_state at
once, introduce individual accessor functions. This allows to reduce the
number of expensive vmcs_read operations on Intel to 2 for typical
hypercalls and all MMIO interceptions.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 83d0e5f5ba9e78c10fbd147ae7653d069dec9ab6
https://github.com/siemens/jailhouse/commit/83d0e5f5ba9e78c10fbd147ae7653d069dec9ab6
Author: Jan Kiszka <[email protected]>
Date: 2018-04-24 (Tue, 24 Apr 2018)
Changed paths:
M hypervisor/arch/x86/mmio.c
Log Message:
-----------
x86: mmio: Fix parsing for mov ax to/from mem in 64-bit mode
In long mode, we have 64-bit addresses by default, and so we need to
skip over 8 bytes of address for that instruction.
Fixes: ea43ce86f4e3 ("x86,mmio: Add support for 2 more instructions on
the MMIO dispatcher")
Signed-off-by: Jan Kiszka <[email protected]>
Commit: d3ecdcc6007bd38cd19ae4adcc1e74de77917582
https://github.com/siemens/jailhouse/commit/d3ecdcc6007bd38cd19ae4adcc1e74de77917582
Author: Jan Kiszka <[email protected]>
Date: 2018-04-24 (Tue, 24 Apr 2018)
Changed paths:
M hypervisor/arch/x86/mmio.c
Log Message:
-----------
x86: Remove misleading brackets from mmio instruction dump
The parser my bail out on opcode byte 0-2.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: b5238b0a6d39f60c5e1cbfa8db9c0b6a95ed11f0
https://github.com/siemens/jailhouse/commit/b5238b0a6d39f60c5e1cbfa8db9c0b6a95ed11f0
Author: Ralf Ramsauer <[email protected]>
Date: 2018-04-24 (Tue, 24 Apr 2018)
Changed paths:
M hypervisor/setup.c
Log Message:
-----------
core: amend misleading comment in entry()
The arch independent entry() routine isn't called directly by the kernel
driver, it's rather called by the arch_entry assembler stubs after
setting up the environment.
The current comment might be a bit misleading.
Signed-off-by: Ralf Ramsauer <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Commit: ab1a355b93babb2f9c596d667654eabb2f07f2f8
https://github.com/siemens/jailhouse/commit/ab1a355b93babb2f9c596d667654eabb2f07f2f8
Author: Jan Kiszka <[email protected]>
Date: 2018-04-24 (Tue, 24 Apr 2018)
Changed paths:
M hypervisor/control.c
Log Message:
-----------
core: Instrument failing DEBUG_CONSOLE_PUTC hypercall
If the guest doesn't print anything on the debug console although it
should and you are sure you did everything right, just enable
CONFIG_TRACE_ERROR, and the hypervisor may now tell you (indirectly)
that you forgot to configure this logging privilege in the cell config.
Reported-by: Francois-Frederic Ozog <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 54cb175d0223286c573c4eb09b2a9eab00db6658
https://github.com/siemens/jailhouse/commit/54cb175d0223286c573c4eb09b2a9eab00db6658
Author: Jan Kiszka <[email protected]>
Date: 2018-04-24 (Tue, 24 Apr 2018)
Changed paths:
M configs/Makefile
M hypervisor/Makefile
M inmates/Makefile
M tools/Makefile
Log Message:
-----------
build: Avoid evaluating linux/compiler_types.h
Since 4.17, kbuild pulls in linux/compiler_types.h via -include in a way
we cannot avoid as long as we are using kbuild. This is not only against
our intention to avoid kernel headers for everything but the driver
module, it also breaks the build as we do not provide a search path for
the headers that compiler_types.h includes itself.
Fortunately, we can avoid the evaluation of that header simply by
defining its include guard.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: b17ab13b575aabbbfbc94d3d487989e39ad5cdef
https://github.com/siemens/jailhouse/commit/b17ab13b575aabbbfbc94d3d487989e39ad5cdef
Author: Jan Kiszka <[email protected]>
Date: 2018-04-24 (Tue, 24 Apr 2018)
Changed paths:
M driver/pci.c
Log Message:
-----------
driver: Use pci_get_domain_bus_and_slot
pci_get_bus_and_slot was removed in 4.17 while the more powerful
alternative exists since 2.6 times.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 9c4362d60776469405b925820bc9700e96a9f244
https://github.com/siemens/jailhouse/commit/9c4362d60776469405b925820bc9700e96a9f244
Author: Jan Kiszka <[email protected]>
Date: 2018-04-24 (Tue, 24 Apr 2018)
Changed paths:
M hypervisor/Makefile
M hypervisor/arch/arm/Kbuild
M hypervisor/arch/arm64/Kbuild
M hypervisor/arch/x86/Kbuild
Log Message:
-----------
build: Switch to lib.a for architecture parts of hypervisor
We already use this pattern for the inmate library. Moreover, our
current pattern of generating build-in.o no longer works with 4.17.
Switching to a library build is straightforward for arm and arm64, we
just need more explicit rules on x86 because of the need to build two
libraries in the same folder which is not directly supported by kbuild.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 4d4e5b16d7ab5f870a0b2f75488bbd6e473674af
https://github.com/siemens/jailhouse/commit/4d4e5b16d7ab5f870a0b2f75488bbd6e473674af
Author: Jan Kiszka <[email protected]>
Date: 2018-04-25 (Wed, 25 Apr 2018)
Changed paths:
M configs/arm/dts/inmate-bananapi.dts
M configs/arm/dts/inmate-jetson-tk1.dts
M configs/arm/dts/inmate-orangepi0.dts
M configs/arm64/dts/inmate-espressobin.dts
M configs/arm64/dts/inmate-hikey.dts
M configs/arm64/dts/inmate-jetson-tx1.dts
M configs/arm64/dts/inmate-qemu-arm64.dts
M configs/arm64/dts/inmate-zynqmp-zcu102-2.dts
M configs/arm64/dts/inmate-zynqmp-zcu102.dts
M driver/pci.c
M driver/vpci_template.dts
Log Message:
-----------
configs, driver: Rename virtual PCI DT entries to "pci"
The dtc of 4.17+ checks if a device tree node of device_type "pci" is
also called "pci". Please it by renaming ours.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: a5f05f142ecfbfc32126a665ec12dda4af7c3891
https://github.com/siemens/jailhouse/commit/a5f05f142ecfbfc32126a665ec12dda4af7c3891
Author: Jan Kiszka <[email protected]>
Date: 2018-04-25 (Wed, 25 Apr 2018)
Changed paths:
M driver/pci.c
M driver/vpci_template.dts
Log Message:
-----------
driver: Rework vpci overlay management for 4.17 - and before
As the API of 4.17 changes, replacing of_fdt_unflatten_tree +
of_overlay_apply with just of_overlay_fdt_apply, we have to adjust our
vpci overlay management. We now register the incomplete template, but in
a disabled state. Then we apply the required changes on the live tree,
including the activation of the node. This pattern nicely works for both
newer and older kernels.
Along this, we fix our lifecycle management of the the changeset as well
as its registered properties. The old code pushed in static properties,
but the OF core was implicitly expecting dynamically allocated objects.
Probably only due to resource leakage issues, we so far didn't trigger
any lethal attempt to kfree stack objects.
The new code has been validated extensively via kmemleak and kasan. Note
that, at the time of writing, the of_overlay_fdt_apply has a built-in
resource leakage that we cannot fix from this code. A solutions are
being discussed upstream.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 07cdeca0a4471da6312f83c426516198f76aa44c
https://github.com/siemens/jailhouse/commit/07cdeca0a4471da6312f83c426516198f76aa44c
Author: Jan Kiszka <[email protected]>
Date: 2018-04-25 (Wed, 25 Apr 2018)
Changed paths:
M configs/arm/jetson-tk1.c
M configs/arm64/espressobin.c
M configs/arm64/hikey.c
M configs/arm64/jetson-tx1.c
M configs/arm64/qemu-arm64.c
M configs/arm64/zynqmp-zcu102.c
M include/jailhouse/cell-config.h
M tools/jailhouse-cell-linux
M tools/jailhouse-hardware-check
Log Message:
-----------
config: Add PCI domain number field to platform parameters
This encodes the domain number the virtual PCI host controller should
use. 0..0xfffe are explicitly assigned numbers, 0xffff (-1) is used to
encode the previous semantic: the guest assigns the number itself.
Set all configs with active virtual PCI controllers and known existence
of real PCI hosts to -1 in order to preserve the current behavior.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 156a93fcc02585d78d4418d3e6761cd72a65b359
https://github.com/siemens/jailhouse/commit/156a93fcc02585d78d4418d3e6761cd72a65b359
Author: Jan Kiszka <[email protected]>
Date: 2018-04-25 (Wed, 25 Apr 2018)
Changed paths:
M driver/pci.c
Log Message:
-----------
driver: Add linux,pci-domain property to DT overlay
If the system config contains a pci_domain value in the range 0..0xfffe,
expose this value via the linux,pci-domain property to the guest so that
the virtual controller will get a fixed domain number.
Signed-off-by: Jan Kiszka <[email protected]>
Compare:
https://github.com/siemens/jailhouse/compare/8288aefc87cb...156a93fcc025
--
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].
For more options, visit https://groups.google.com/d/optout.