2019-06-04 20:32:46

by Ali Saidi

[permalink] [raw]
Subject: [PATCH 0/3] Add support for Graviton TRNG

AWS Graviton based systems provide an Arm SMC call in the vendor defined
hypervisor region to read random numbers from a HW TRNG and return them to the
guest.

We've observed slower guest boot and especially reboot times due to lack of
entropy and providing access to a TRNG is meant to address this.

Ali Saidi (3):
arm/arm64: Add smccc hypervisor service identifiers
arm64: export acpi_psci_use_hvc
hwrng: Add support for AWS Graviton TRNG

MAINTAINERS | 6 ++
arch/arm64/kernel/acpi.c | 1 +
drivers/char/hw_random/Kconfig | 13 ++++
drivers/char/hw_random/Makefile | 1 +
drivers/char/hw_random/graviton-rng.c | 123 ++++++++++++++++++++++++++++++++++
include/linux/arm-smccc.h | 2 +
6 files changed, 146 insertions(+)
create mode 100644 drivers/char/hw_random/graviton-rng.c

--
2.15.3.AMZN


2019-06-05 12:21:42

by Will Deacon

[permalink] [raw]
Subject: Re: [PATCH 0/3] Add support for Graviton TRNG

On Tue, Jun 04, 2019 at 08:30:57PM +0000, Ali Saidi wrote:
> AWS Graviton based systems provide an Arm SMC call in the vendor defined
> hypervisor region to read random numbers from a HW TRNG and return them to the
> guest.
>
> We've observed slower guest boot and especially reboot times due to lack of
> entropy and providing access to a TRNG is meant to address this.

Curious, but why this over something like virtio-rng?

Will

2019-06-07 13:13:18

by Ali Saidi

[permalink] [raw]
Subject: Re: [PATCH 0/3] Add support for Graviton TRNG



On 6/5/19, 7:20 AM, "Will Deacon" <[email protected]> wrote:

On Tue, Jun 04, 2019 at 08:30:57PM +0000, Ali Saidi wrote:
> AWS Graviton based systems provide an Arm SMC call in the vendor defined
> hypervisor region to read random numbers from a HW TRNG and return them to the
> guest.
>
> We've observed slower guest boot and especially reboot times due to lack of
> entropy and providing access to a TRNG is meant to address this.

Curious, but why this over something like virtio-rng?

This interface allows us to provide the functionality from both EL2 and EL3 and support multiple different types of our instances which we unfortunately can't do with virt-io.

Ali


2019-06-28 18:05:31

by Ali Saidi

[permalink] [raw]
Subject: Re: [PATCH 0/3] Add support for Graviton TRNG

On 6/7/19, 7:59 AM, " Ali Saidi" <[email protected]> wrote:



On 6/5/19, 7:20 AM, "Will Deacon" <[email protected]> wrote:

On Tue, Jun 04, 2019 at 08:30:57PM +0000, Ali Saidi wrote:
> AWS Graviton based systems provide an Arm SMC call in the vendor defined
> hypervisor region to read random numbers from a HW TRNG and return them to the
> guest.
>
> We've observed slower guest boot and especially reboot times due to lack of
> entropy and providing access to a TRNG is meant to address this.

Curious, but why this over something like virtio-rng?

This interface allows us to provide the functionality from both EL2 and EL3 and support multiple different types of our instances which we unfortunately can't do with virt-io.

Will,

Any additional comments?

Mark,

Do you know when you'll have a chance to rebase arm64/smccc-cleanup?

Thanks,
Ali


2019-07-01 08:34:24

by Will Deacon

[permalink] [raw]
Subject: Re: [PATCH 0/3] Add support for Graviton TRNG

[Note: this was in my spam folder]

On Fri, Jun 28, 2019 at 06:05:10PM +0000, Saidi, Ali wrote:
> On 6/7/19, 7:59 AM, " Ali Saidi" <[email protected]> wrote:
> On 6/5/19, 7:20 AM, "Will Deacon" <[email protected]> wrote:
> On Tue, Jun 04, 2019 at 08:30:57PM +0000, Ali Saidi wrote:
> > AWS Graviton based systems provide an Arm SMC call in the vendor defined
> > hypervisor region to read random numbers from a HW TRNG and return them to the
> > guest.
> >
> > We've observed slower guest boot and especially reboot times due to lack of
> > entropy and providing access to a TRNG is meant to address this.
>
> Curious, but why this over something like virtio-rng?
>
> This interface allows us to provide the functionality from both EL2
> and EL3 and support multiple different types of our instances which we
> unfortunately can't do with virt-io.
>
> Any additional comments?
> Do you know when you'll have a chance to rebase arm64/smccc-cleanup?

Sorry, Ali, this slipped through the cracks. Marc and I will chat today and
look at respinning what we had before; it should then hopefully be
straightforward enough for you to take that as a base for what you want to
do.

Will

2019-07-01 17:07:14

by Will Deacon

[permalink] [raw]
Subject: Re: [PATCH 0/3] Add support for Graviton TRNG

[+Marc]

On Mon, Jul 01, 2019 at 09:28:06AM +0100, Will Deacon wrote:
> [Note: this was in my spam folder]
>
> On Fri, Jun 28, 2019 at 06:05:10PM +0000, Saidi, Ali wrote:
> > On 6/7/19, 7:59 AM, " Ali Saidi" <[email protected]> wrote:
> > On 6/5/19, 7:20 AM, "Will Deacon" <[email protected]> wrote:
> > On Tue, Jun 04, 2019 at 08:30:57PM +0000, Ali Saidi wrote:
> > > AWS Graviton based systems provide an Arm SMC call in the vendor defined
> > > hypervisor region to read random numbers from a HW TRNG and return them to the
> > > guest.
> > >
> > > We've observed slower guest boot and especially reboot times due to lack of
> > > entropy and providing access to a TRNG is meant to address this.
> >
> > Curious, but why this over something like virtio-rng?
> >
> > This interface allows us to provide the functionality from both EL2
> > and EL3 and support multiple different types of our instances which we
> > unfortunately can't do with virt-io.
> >
> > Any additional comments?
> > Do you know when you'll have a chance to rebase arm64/smccc-cleanup?
>
> Sorry, Ali, this slipped through the cracks. Marc and I will chat today and
> look at respinning what we had before; it should then hopefully be
> straightforward enough for you to take that as a base for what you want to
> do.

Ok, I hacked on this a bit today and hopefully you can use this as a
starting point:

https://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git/log/?h=kvm/hvc

I haven't given it any real testing, so apologies for the bugs.

Will