From: Cornelia Huck <cohuck@redhat.com>
To: Shaoqin Huang <shahuang@redhat.com>,
qemu-devel@nongnu.org, qemu-arm@nongnu.org
Cc: oliver.upton@linux.dev, salil.mehta@huawei.com,
james.morse@arm.com, gshan@redhat.com,
Shaoqin Huang <shahuang@redhat.com>,
Peter Maydell <peter.maydell@linaro.org>,
Paolo Bonzini <pbonzini@redhat.com>,
kvm@vger.kernel.org
Subject: Re: [PATCH v1 4/5] arm/kvm: add skeleton implementation for userspace SMCCC call handling
Date: Tue, 04 Jul 2023 11:17:03 +0200 [thread overview]
Message-ID: <877crghw8g.fsf@redhat.com> (raw)
In-Reply-To: <20230626064910.1787255-5-shahuang@redhat.com>
On Mon, Jun 26 2023, Shaoqin Huang <shahuang@redhat.com> wrote:
> The SMCCC call filtering provide the ability to forward the SMCCC call
> to userspace, so we provide a new option `user-smccc` to enable handling
> SMCCC call in userspace, the default value is off.
>
> And add the skeleton implementation for userspace SMCCC call
> initialization and handling.
>
> Signed-off-by: Shaoqin Huang <shahuang@redhat.com>
> ---
> docs/system/arm/virt.rst | 4 +++
> hw/arm/virt.c | 21 ++++++++++++++++
> include/hw/arm/virt.h | 1 +
> target/arm/kvm.c | 54 ++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 80 insertions(+)
>
> diff --git a/docs/system/arm/virt.rst b/docs/system/arm/virt.rst
> index 1cab33f02e..ff43d52f04 100644
> --- a/docs/system/arm/virt.rst
> +++ b/docs/system/arm/virt.rst
> @@ -155,6 +155,10 @@ dtb-randomness
> DTB to be non-deterministic. It would be the responsibility of
> the firmware to come up with a seed and pass it on if it wants to.
>
> +user-smccc
> + Set ``on``/``off`` to enable/disable handling smccc call in userspace
> + instead of kernel.
> +
> dtb-kaslr-seed
> A deprecated synonym for dtb-randomness.
>
> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> index 9b9f7d9c68..767720321c 100644
> --- a/hw/arm/virt.c
> +++ b/hw/arm/virt.c
> @@ -42,6 +42,7 @@
> #include "hw/vfio/vfio-amd-xgbe.h"
> #include "hw/display/ramfb.h"
> #include "net/net.h"
> +#include "qom/object.h"
> #include "sysemu/device_tree.h"
> #include "sysemu/numa.h"
> #include "sysemu/runstate.h"
> @@ -2511,6 +2512,19 @@ static void virt_set_oem_table_id(Object *obj, const char *value,
> strncpy(vms->oem_table_id, value, 8);
> }
>
> +static bool virt_get_user_smccc(Object *obj, Error **errp)
> +{
> + VirtMachineState *vms = VIRT_MACHINE(obj);
> +
> + return vms->user_smccc;
> +}
> +
> +static void virt_set_user_smccc(Object *obj, bool value, Error **errp)
> +{
> + VirtMachineState *vms = VIRT_MACHINE(obj);
> +
> + vms->user_smccc = value;
> +}
>
> bool virt_is_acpi_enabled(VirtMachineState *vms)
> {
> @@ -3155,6 +3169,13 @@ static void virt_machine_class_init(ObjectClass *oc, void *data)
> "in ACPI table header."
> "The string may be up to 8 bytes in size");
>
> + object_class_property_add_bool(oc, "user-smccc",
> + virt_get_user_smccc,
> + virt_set_user_smccc);
> + object_class_property_set_description(oc, "user-smccc",
> + "Set on/off to enable/disable "
> + "handling smccc call in userspace");
> +
> }
>
> static void virt_instance_init(Object *obj)
This knob pretty much only makes sense for KVM guests, and we'll ignore
it with tcg -- would it make sense to check that we are actually using
KVM before we proceed (like we do for the tcg-only props?)
next prev parent reply other threads:[~2023-07-04 9:17 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-26 6:49 [PATCH v1 0/5] target/arm: Handle psci calls in userspace Shaoqin Huang
2023-06-26 6:49 ` [PATCH v1 1/5] linux-headers: Update to v6.4-rc7 Shaoqin Huang
2023-06-26 6:49 ` [PATCH v1 2/5] linux-headers: Import arm-smccc.h from Linux v6.4-rc7 Shaoqin Huang
2023-07-04 9:05 ` Cornelia Huck
2023-06-26 6:49 ` [PATCH v1 3/5] target/arm: make psci call can be used by kvm Shaoqin Huang
2023-06-26 6:49 ` [PATCH v1 4/5] arm/kvm: add skeleton implementation for userspace SMCCC call handling Shaoqin Huang
2023-07-04 9:17 ` Cornelia Huck [this message]
2023-06-26 6:49 ` [PATCH v1 5/5] arm/kvm: add support for userspace psci calls handling Shaoqin Huang
2023-06-26 13:42 ` [PATCH v1 0/5] target/arm: Handle psci calls in userspace Salil Mehta
2023-06-26 13:42 ` Salil Mehta via
2023-06-27 2:34 ` Shaoqin Huang
2023-07-04 9:58 ` Salil Mehta
2023-07-04 9:58 ` Salil Mehta via
2023-07-13 0:27 ` Gavin Shan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877crghw8g.fsf@redhat.com \
--to=cohuck@redhat.com \
--cc=gshan@redhat.com \
--cc=james.morse@arm.com \
--cc=kvm@vger.kernel.org \
--cc=oliver.upton@linux.dev \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=salil.mehta@huawei.com \
--cc=shahuang@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.