From: Dongwon Kim <dongwon.kim@intel.com> To: linux-kernel@vger.kernel.org, linaro-mm-sig@lists.linaro.org, xen-devel@lists.xenproject.org Cc: dri-devel@lists.freedesktop.org, dongwon.kim@intel.com, mateuszx.potrola@intel.com, sumit.semwal@linaro.org Subject: [RFC PATCH v2 9/9] hyper_dmabuf: threaded interrupt in Xen-backend Date: Tue, 13 Feb 2018 17:50:08 -0800 [thread overview] Message-ID: <20180214015008.9513-10-dongwon.kim@intel.com> (raw) In-Reply-To: <20180214015008.9513-1-dongwon.kim@intel.com> Use threaded interrupt intead of regular one because most part of ISR is time-critical and possibly sleeps Signed-off-by: Dongwon Kim <dongwon.kim@intel.com> --- .../hyper_dmabuf/backends/xen/hyper_dmabuf_xen_comm.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/drivers/dma-buf/hyper_dmabuf/backends/xen/hyper_dmabuf_xen_comm.c b/drivers/dma-buf/hyper_dmabuf/backends/xen/hyper_dmabuf_xen_comm.c index 30bc4b6304ac..65af5ddfb2d7 100644 --- a/drivers/dma-buf/hyper_dmabuf/backends/xen/hyper_dmabuf_xen_comm.c +++ b/drivers/dma-buf/hyper_dmabuf/backends/xen/hyper_dmabuf_xen_comm.c @@ -332,11 +332,14 @@ int xen_be_init_tx_rbuf(int domid) } /* setting up interrupt */ - ret = bind_evtchn_to_irqhandler(alloc_unbound.port, - front_ring_isr, 0, - NULL, (void *) ring_info); + ring_info->irq = bind_evtchn_to_irq(alloc_unbound.port); - if (ret < 0) { + ret = request_threaded_irq(ring_info->irq, + NULL, + front_ring_isr, + IRQF_ONESHOT, NULL, ring_info); + + if (ret != 0) { dev_err(hy_drv_priv->dev, "Failed to setup event channel\n"); close.port = alloc_unbound.port; @@ -348,7 +351,6 @@ int xen_be_init_tx_rbuf(int domid) } ring_info->rdomain = domid; - ring_info->irq = ret; ring_info->port = alloc_unbound.port; mutex_init(&ring_info->lock); @@ -535,9 +537,10 @@ int xen_be_init_rx_rbuf(int domid) if (!xen_comm_find_tx_ring(domid)) ret = xen_be_init_tx_rbuf(domid); - ret = request_irq(ring_info->irq, - back_ring_isr, 0, - NULL, (void *)ring_info); + ret = request_threaded_irq(ring_info->irq, + NULL, + back_ring_isr, IRQF_ONESHOT, + NULL, (void *)ring_info); return ret; -- 2.16.1
WARNING: multiple messages have this Message-ID (diff)
From: Dongwon Kim <dongwon.kim@intel.com> To: linux-kernel@vger.kernel.org, linaro-mm-sig@lists.linaro.org, xen-devel@lists.xenproject.org Cc: dongwon.kim@intel.com, dri-devel@lists.freedesktop.org, mateuszx.potrola@intel.com Subject: [RFC PATCH v2 9/9] hyper_dmabuf: threaded interrupt in Xen-backend Date: Tue, 13 Feb 2018 17:50:08 -0800 [thread overview] Message-ID: <20180214015008.9513-10-dongwon.kim@intel.com> (raw) In-Reply-To: <20180214015008.9513-1-dongwon.kim@intel.com> Use threaded interrupt intead of regular one because most part of ISR is time-critical and possibly sleeps Signed-off-by: Dongwon Kim <dongwon.kim@intel.com> --- .../hyper_dmabuf/backends/xen/hyper_dmabuf_xen_comm.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/drivers/dma-buf/hyper_dmabuf/backends/xen/hyper_dmabuf_xen_comm.c b/drivers/dma-buf/hyper_dmabuf/backends/xen/hyper_dmabuf_xen_comm.c index 30bc4b6304ac..65af5ddfb2d7 100644 --- a/drivers/dma-buf/hyper_dmabuf/backends/xen/hyper_dmabuf_xen_comm.c +++ b/drivers/dma-buf/hyper_dmabuf/backends/xen/hyper_dmabuf_xen_comm.c @@ -332,11 +332,14 @@ int xen_be_init_tx_rbuf(int domid) } /* setting up interrupt */ - ret = bind_evtchn_to_irqhandler(alloc_unbound.port, - front_ring_isr, 0, - NULL, (void *) ring_info); + ring_info->irq = bind_evtchn_to_irq(alloc_unbound.port); - if (ret < 0) { + ret = request_threaded_irq(ring_info->irq, + NULL, + front_ring_isr, + IRQF_ONESHOT, NULL, ring_info); + + if (ret != 0) { dev_err(hy_drv_priv->dev, "Failed to setup event channel\n"); close.port = alloc_unbound.port; @@ -348,7 +351,6 @@ int xen_be_init_tx_rbuf(int domid) } ring_info->rdomain = domid; - ring_info->irq = ret; ring_info->port = alloc_unbound.port; mutex_init(&ring_info->lock); @@ -535,9 +537,10 @@ int xen_be_init_rx_rbuf(int domid) if (!xen_comm_find_tx_ring(domid)) ret = xen_be_init_tx_rbuf(domid); - ret = request_irq(ring_info->irq, - back_ring_isr, 0, - NULL, (void *)ring_info); + ret = request_threaded_irq(ring_info->irq, + NULL, + back_ring_isr, IRQF_ONESHOT, + NULL, (void *)ring_info); return ret; -- 2.16.1 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2018-02-14 1:52 UTC|newest] Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-02-14 1:49 [RFC PATCH v2 0/9] hyper_dmabuf: Hyper_DMABUF driver Dongwon Kim 2018-02-14 1:49 ` Dongwon Kim 2018-02-14 1:50 ` [RFC PATCH v2 1/9] hyper_dmabuf: initial upload of hyper_dmabuf drv core framework Dongwon Kim 2018-02-14 1:50 ` Dongwon Kim 2018-04-10 8:53 ` [RFC, v2, " Oleksandr Andrushchenko 2018-04-10 10:47 ` [Xen-devel] " Julien Grall 2018-04-10 11:04 ` Oleksandr Andrushchenko 2018-04-10 11:04 ` Oleksandr Andrushchenko 2018-04-10 11:04 ` Oleksandr Andrushchenko 2018-04-10 10:47 ` Julien Grall 2018-04-10 8:53 ` Oleksandr Andrushchenko 2018-02-14 1:50 ` [RFC PATCH v2 " Dongwon Kim 2018-02-14 1:50 ` [RFC PATCH v2 2/9] hyper_dmabuf: architecture specification and reference guide Dongwon Kim 2018-02-14 1:50 ` Dongwon Kim 2018-02-23 16:15 ` [Xen-devel] " Roger Pau Monné 2018-02-23 16:15 ` Roger Pau Monné 2018-02-23 19:02 ` Dongwon Kim 2018-02-23 19:02 ` [Xen-devel] " Dongwon Kim 2018-02-23 19:02 ` Dongwon Kim 2018-04-10 9:52 ` [RFC, v2, " Oleksandr Andrushchenko 2018-04-10 9:52 ` Oleksandr Andrushchenko 2018-04-10 9:52 ` Oleksandr Andrushchenko 2018-02-14 1:50 ` [RFC PATCH v2 " Dongwon Kim 2018-02-14 1:50 ` [RFC PATCH v2 3/9] MAINTAINERS: adding Hyper_DMABUF driver section in MAINTAINERS Dongwon Kim 2018-02-14 1:50 ` Dongwon Kim 2018-02-14 1:50 ` Dongwon Kim 2018-02-14 1:50 ` [RFC PATCH v2 4/9] hyper_dmabuf: user private data attached to hyper_DMABUF Dongwon Kim 2018-02-14 1:50 ` Dongwon Kim 2018-04-10 9:59 ` [RFC, v2, " Oleksandr Andrushchenko 2018-04-10 9:59 ` Oleksandr Andrushchenko 2018-04-10 9:59 ` Oleksandr Andrushchenko 2018-02-14 1:50 ` [RFC PATCH v2 " Dongwon Kim 2018-02-14 1:50 ` [RFC PATCH v2 5/9] hyper_dmabuf: default backend for XEN hypervisor Dongwon Kim 2018-02-14 1:50 ` Dongwon Kim 2018-04-10 9:27 ` [RFC, v2, " Oleksandr Andrushchenko 2018-04-10 9:27 ` [RFC,v2,5/9] " Oleksandr Andrushchenko 2018-02-14 1:50 ` [RFC PATCH v2 5/9] " Dongwon Kim 2018-02-14 1:50 ` [RFC PATCH v2 6/9] hyper_dmabuf: hyper_DMABUF synchronization across VM Dongwon Kim 2018-02-14 1:50 ` Dongwon Kim 2018-02-14 1:50 ` Dongwon Kim 2018-02-14 1:50 ` [RFC PATCH v2 7/9] hyper_dmabuf: query ioctl for retreiving various hyper_DMABUF info Dongwon Kim 2018-02-14 1:50 ` Dongwon Kim 2018-02-14 1:50 ` Dongwon Kim 2018-02-14 1:50 ` [RFC PATCH v2 8/9] hyper_dmabuf: event-polling mechanism for detecting a new hyper_DMABUF Dongwon Kim 2018-02-14 1:50 ` Dongwon Kim 2018-02-14 1:50 ` Dongwon Kim 2018-02-14 1:50 ` Dongwon Kim [this message] 2018-02-14 1:50 ` [RFC PATCH v2 9/9] hyper_dmabuf: threaded interrupt in Xen-backend Dongwon Kim 2018-04-10 10:04 ` [RFC, v2, " Oleksandr Andrushchenko 2018-04-10 10:04 ` [RFC,v2,9/9] " Oleksandr Andrushchenko 2018-02-14 1:50 ` [RFC PATCH v2 9/9] " Dongwon Kim 2018-02-19 17:01 ` [RFC PATCH v2 0/9] hyper_dmabuf: Hyper_DMABUF driver Daniel Vetter 2018-02-19 17:01 ` Daniel Vetter 2018-02-21 20:18 ` Dongwon Kim 2018-02-21 20:18 ` Dongwon Kim 2018-02-21 20:18 ` Dongwon Kim 2018-02-19 17:01 ` Daniel Vetter
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=20180214015008.9513-10-dongwon.kim@intel.com \ --to=dongwon.kim@intel.com \ --cc=dri-devel@lists.freedesktop.org \ --cc=linaro-mm-sig@lists.linaro.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mateuszx.potrola@intel.com \ --cc=sumit.semwal@linaro.org \ --cc=xen-devel@lists.xenproject.org \ /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: linkBe 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.