Re: [PATCH v3] xen/evtchn: Introduce new IOCTL to bind static evtchn

From: Oleksandr Tyshchenko
Date: Tue Jul 18 2023 - 10:50:44 EST




On 18.07.23 14:31, Rahul Singh wrote:


Hello Rahul


> Xen 4.17 supports the creation of static evtchns. To allow user space
> application to bind static evtchns introduce new ioctl
> "IOCTL_EVTCHN_BIND_STATIC". Existing IOCTL doing more than binding
> that’s why we need to introduce the new IOCTL to only bind the static
> event channels.
>
> Static evtchns to be available for use during the lifetime of the
> guest. When the application exits, __unbind_from_irq() ends up being
> called from release() file operations because of that static evtchns
> are getting closed. To avoid closing the static event channel, add the
> new bool variable "is_static" in "struct irq_info" to mark the event
> channel static when creating the event channel to avoid closing the
> static evtchn.
>
> Also, take this opportunity to remove the open-coded version of the
> evtchn close in drivers/xen/evtchn.c file and use xen_evtchn_close().
>
> Signed-off-by: Rahul Singh <rahul.singh@xxxxxxx>
> ---
> v3:
> * Remove the open-coded version of the evtchn close in drivers/xen/evtchn.c

Thanks!

Looks like there is one unmentioned change in change-log since v2:
* Make sure that evtchn hasn't been added yet before binding it in
evtchn_ioctl():case IOCTL_EVTCHN_BIND_STATIC

Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>

> v2:
> * Use bool in place u8 to define is_static variable.
> * Avoid closing the static evtchns in error path.
> ---

[snip]