Re: [PATCH v3 00/25] arm/arm64: KVM: Rework the hyp-stub API

2017-03-17 Thread Russell King - ARM Linux
On Tue, Mar 14, 2017 at 04:09:44PM +, Marc Zyngier wrote:
> On 14/03/17 16:05, Russell King - ARM Linux wrote:
> > On Mon, Mar 06, 2017 at 02:24:33PM +, Marc Zyngier wrote:
> >> As noticed by RMK in this thread[1], the hyp-stub API on 32bit ARM
> >> could do with some TLC (it cannot perform a soft-restart at HYP, and
> >> has holes in the hyp-stub support in a number of places). In general,
> >> it would be desirable for the 32bit behaviour to align on 64bit, if
> >> only to ease maintenance.
> > 
> > What's the merge plan for this?
> 
> If you're happy with it (together with Christoffer, Will and Catalin), I
> plat to take it through the kvmarm tree.

Acked-by: Russell King 

Thanks.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.
___
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm


Re: [PATCH v3 00/25] arm/arm64: KVM: Rework the hyp-stub API

2017-03-14 Thread Marc Zyngier
On 14/03/17 16:05, Russell King - ARM Linux wrote:
> On Mon, Mar 06, 2017 at 02:24:33PM +, Marc Zyngier wrote:
>> As noticed by RMK in this thread[1], the hyp-stub API on 32bit ARM
>> could do with some TLC (it cannot perform a soft-restart at HYP, and
>> has holes in the hyp-stub support in a number of places). In general,
>> it would be desirable for the 32bit behaviour to align on 64bit, if
>> only to ease maintenance.
> 
> What's the merge plan for this?

If you're happy with it (together with Christoffer, Will and Catalin), I
plat to take it through the kvmarm tree.

Thanks,

M.
-- 
Jazz is not dead. It just smells funny...
___
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm


Re: [PATCH v3 00/25] arm/arm64: KVM: Rework the hyp-stub API

2017-03-14 Thread Russell King - ARM Linux
On Mon, Mar 06, 2017 at 02:24:33PM +, Marc Zyngier wrote:
> As noticed by RMK in this thread[1], the hyp-stub API on 32bit ARM
> could do with some TLC (it cannot perform a soft-restart at HYP, and
> has holes in the hyp-stub support in a number of places). In general,
> it would be desirable for the 32bit behaviour to align on 64bit, if
> only to ease maintenance.

What's the merge plan for this?

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.
___
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm


Re: [PATCH v3 00/25] arm/arm64: KVM: Rework the hyp-stub API

2017-03-14 Thread Nishanth Menon
On Tue, Mar 14, 2017 at 8:55 AM, Marc Zyngier  wrote:
[...]
>> Tested for kexec booting with the patch series applied on linux-next.
>>
>> kexec is working nicely with HYP and SVC modes. Tested for both modes by
>> using different u-boot for booting in HYP and SVC modes. Kexec works well.
>>
>> Tested on DRA7-EVM, AM57XX-EVM and KEYSTONE-K2E-EVM.
>>
>> Tested-by: Keerthy 
>
> Thanks a lot. I assume this Tested-by applies to the 32bit patches in
> this series?

Yes, the above platform list from Keerthy are all A15 32bit platforms.

---
Regards,
Nishanth Menon
___
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm


Re: [PATCH v3 00/25] arm/arm64: KVM: Rework the hyp-stub API

2017-03-14 Thread Marc Zyngier

On 14/03/17 13:38, Keerthy wrote:
> 
> 
> On Monday 06 March 2017 07:54 PM, Marc Zyngier wrote:
>> As noticed by RMK in this thread[1], the hyp-stub API on 32bit ARM
>> could do with some TLC (it cannot perform a soft-restart at HYP, and
>> has holes in the hyp-stub support in a number of places). In general,
>> it would be desirable for the 32bit behaviour to align on 64bit, if
>> only to ease maintenance.
>>
>> This series implements the following:
>> - Add HVC_[GS]ET_VECTORS and HVC_SOFT_RESTART to the 32bit code
>> - Add HVC_RESET_VECTORS to both arm and arm64, removing the need for
>>   __hyp_reset_vectors
>> - Implement add the stub entry points in the KVM init code, which
>>   didn't implement any so far
>> - Convert the HYP code to use the init code stubs directly
>> - Some general cleanup as a result of these changes (which includes
>>   killing HVC_GET_VECTORS)
>> - Add some API documentation that covers the above
>>
>> Patches 9 to 11 would be better squashed into 7 and 8, but I've kept
>> separate so that I can take the blame for everything I've broken.
> 
> Tested for kexec booting with the patch series applied on linux-next.
> 
> kexec is working nicely with HYP and SVC modes. Tested for both modes by
> using different u-boot for booting in HYP and SVC modes. Kexec works well.
> 
> Tested on DRA7-EVM, AM57XX-EVM and KEYSTONE-K2E-EVM.
> 
> Tested-by: Keerthy 

Thanks a lot. I assume this Tested-by applies to the 32bit patches in
this series?

Cheers,

M.
-- 
Jazz is not dead. It just smells funny...
___
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm


Re: [PATCH v3 00/25] arm/arm64: KVM: Rework the hyp-stub API

2017-03-14 Thread Keerthy


On Monday 06 March 2017 07:54 PM, Marc Zyngier wrote:
> As noticed by RMK in this thread[1], the hyp-stub API on 32bit ARM
> could do with some TLC (it cannot perform a soft-restart at HYP, and
> has holes in the hyp-stub support in a number of places). In general,
> it would be desirable for the 32bit behaviour to align on 64bit, if
> only to ease maintenance.
> 
> This series implements the following:
> - Add HVC_[GS]ET_VECTORS and HVC_SOFT_RESTART to the 32bit code
> - Add HVC_RESET_VECTORS to both arm and arm64, removing the need for
>   __hyp_reset_vectors
> - Implement add the stub entry points in the KVM init code, which
>   didn't implement any so far
> - Convert the HYP code to use the init code stubs directly
> - Some general cleanup as a result of these changes (which includes
>   killing HVC_GET_VECTORS)
> - Add some API documentation that covers the above
> 
> Patches 9 to 11 would be better squashed into 7 and 8, but I've kept
> separate so that I can take the blame for everything I've broken.

Tested for kexec booting with the patch series applied on linux-next.

kexec is working nicely with HYP and SVC modes. Tested for both modes by
using different u-boot for booting in HYP and SVC modes. Kexec works well.

Tested on DRA7-EVM, AM57XX-EVM and KEYSTONE-K2E-EVM.

Tested-by: Keerthy 

> 
> This has been tested on arm (Cubietruck, Jetson TK1) and arm64
> (Seattle), both as host and guest.
> 
> [1] 
> http://lists.infradead.org/pipermail/linux-arm-kernel/2016-December/473472.html
> 
> * From v2:
>   - Kill HVC_GET_VECTORS and the corresponding __hyp_get_vectors
> 
> * From v1:
>   - Fixed some glaring bugs (reported by Ard and James)
>   - Tidy up stub vector export on 32bit (Ard)
>   - Nicer VA/PA conversion on 32bit (Ard)
>   - Updated cpu_v7_reset documentation
>   - Cleaned up HYP reset on PM events
>   - Minor stub documentation update
> 
> Marc Zyngier (23):
>   arm64: hyp-stub: Implement HVC_RESET_VECTORS stub hypercall
>   arm64: KVM: Implement HVC_RESET_VECTORS stub hypercall
>   arm64: KVM: Implement HVC_GET_VECTORS in the init code
>   arm64: KVM: Allow the main HYP code to use the init hyp stub
> implementation
>   arm64: KVM: Convert __cpu_reset_hyp_mode to using __hyp_reset_vectors
>   arm64: KVM: Implement HVC_SOFT_RESTART in the init code
>   ARM: KVM: Convert KVM to use HVC_GET_VECTORS
>   ARM: Update cpu_v7_reset documentation
>   ARM: hyp-stub: Use r1 for the soft-restart address
>   ARM: Expose the VA/IDMAP offset
>   ARM: hyp-stub: Implement HVC_RESET_VECTORS stub hypercall
>   ARM: KVM: Implement HVC_RESET_VECTORS stub hypercall
>   ARM: KVM: Implement HVC_GET_VECTORS in the init code
>   ARM: KVM: Allow the main HYP code to use the init hyp stub
> implementation
>   ARM: KVM: Convert __cpu_reset_hyp_mode to using __hyp_reset_vectors
>   ARM: KVM: Implement HVC_SOFT_RESTART in the init code
>   arm/arm64: KVM: Use __hyp_reset_vectors() directly
>   arm/arm64: KVM: Remove kvm_get_idmap_start
>   arm/arm64: KVM: Use HVC_RESET_VECTORS to reinit HYP mode
>   ARM: decompressor: Remove __hyp_get_vectors usage
>   ARM: hyp-stub/KVM: Kill __hyp_get_vectors
>   arm64: hyp-stub/KVM: Kill __hyp_get_vectors
>   arm/arm64: Add hyp-stub API documentation
> 
> Russell King (2):
>   ARM: hyp-stub: improve ABI
>   ARM: soft-reboot into same mode that we entered the kernel
> 
>  Documentation/virtual/kvm/arm/hyp-abi.txt | 45 
>  arch/arm/boot/compressed/head.S   |  5 +++-
>  arch/arm/include/asm/kvm_asm.h|  2 --
>  arch/arm/include/asm/kvm_host.h   |  6 
>  arch/arm/include/asm/kvm_mmu.h|  1 -
>  arch/arm/include/asm/proc-fns.h   |  4 +--
>  arch/arm/include/asm/virt.h   | 12 +++-
>  arch/arm/kernel/hyp-stub.S| 39 +++-
>  arch/arm/kernel/reboot.c  |  7 +++--
>  arch/arm/kvm/arm.c| 25 ++--
>  arch/arm/kvm/hyp/hyp-entry.S  | 29 ++
>  arch/arm/kvm/init.S   | 49 
> ++-
>  arch/arm/kvm/interrupts.S |  4 ---
>  arch/arm/kvm/mmu.c|  5 
>  arch/arm/mm/mmu.c |  5 
>  arch/arm/mm/proc-v7.S | 15 ++
>  arch/arm64/include/asm/kvm_asm.h  |  1 -
>  arch/arm64/include/asm/kvm_host.h |  7 -
>  arch/arm64/include/asm/kvm_mmu.h  |  1 -
>  arch/arm64/include/asm/virt.h | 17 +++
>  arch/arm64/kernel/hyp-stub.S  | 26 
>  arch/arm64/kvm/hyp-init.S | 45 +---
>  arch/arm64/kvm/hyp.S  |  2 +-
>  arch/arm64/kvm/hyp/hyp-entry.S| 39 
>  24 files changed, 265 insertions(+), 126 deletions(-)
>  create mode 100644 Documentation/virtual/kvm/arm/hyp-abi.txt
>