All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCHv2 02/31] HACK: drm/omap: always use blocking DMM fill
Date: Mon, 29 Feb 2016 23:47:04 +0200	[thread overview]
Message-ID: <1476656.hCH40Sr6LB@avalon> (raw)
In-Reply-To: <1456479379-6086-3-git-send-email-tomi.valkeinen@ti.com>

Hi Tomi,

Thank you for the patch.

On Friday 26 February 2016 11:35:50 Tomi Valkeinen wrote:
> The current driver uses non-blocking DMM fill when releasing memory.
> This gives us a small performance increase as we don't have to wait for
> the fill operation to finish.
> 
> However, the driver does not have any error handling for non-blocking
> fill. In case of an error, the fill operation may silently fail, leading
> to leaking DMM engines, which may eventually lead to deadlock if we run
> out of DMM engines.
> 
> This patch makes the DMM driver always use blocking fills, so that we
> can catch the errors. A more complex option would be to allow
> non-blocking fills, and implement proper error handling, but that is
> left for the future.
> 
> This patch is a HACK, as the proper fix is to either decide to always
> use sync fills and remove all the async related code, or fix the async
> code.
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
> b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c index dfebdc4aa0f2..67edf839dce3
> 100644
> --- a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
> +++ b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
> @@ -309,6 +309,21 @@ static int fill(struct tcm_area *area, struct page
> **pages, struct tcm_area slice, area_s;
>  	struct dmm_txn *txn;
> 
> +	/*
> +	 * FIXME
> +	 *
> +	 * Asynchronous fill does not work reliably, as the driver does not
> +	 * handle errors in the async code paths. The fill operation may
> +	 * silently fail, leading to leaking DMM engines, which may eventually
> +	 * lead to deadlock if we run out of DMM engines.
> +	 *
> +	 * For now, always set 'wait' so that we only use sync fills. Async
> +	 * fills should be fixed, or alternatively we could decide to only
> +	 * support sync fills and so the whole async code path could be removed.
> +	 */
> +
> +	wait = true;
> +
>  	txn = dmm_txn_init(omap_dmm, area->tcm);
>  	if (IS_ERR_OR_NULL(txn))
>  		return -ENOMEM;

-- 
Regards,

Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2016-02-29 21:46 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-26  9:35 [PATCHv2 00/31] drm/omap: patches for v4.6 part 1 Tomi Valkeinen
2016-02-26  9:35 ` [PATCHv2 01/31] drm/omap: HDMI: change enable/disable to avoid sync-losts Tomi Valkeinen
2016-02-29 21:48   ` Laurent Pinchart
2016-02-26  9:35 ` [PATCHv2 02/31] HACK: drm/omap: always use blocking DMM fill Tomi Valkeinen
2016-02-29 21:47   ` Laurent Pinchart [this message]
2016-02-26  9:35 ` [PATCHv2 03/31] drm/omap: add dmm_read() and dmm_write() wrappers Tomi Valkeinen
2016-02-26  9:35 ` [PATCHv2 04/31] drm/omap: drm_atomic_get_plane_state() may return ERR_PTR Tomi Valkeinen
2016-02-26  9:35 ` [PATCHv2 05/31] drm/omap: tpd12s015: remove platform data support Tomi Valkeinen
2016-02-26  9:35 ` [PATCHv2 06/31] drm/omap: tpd12s015: gpio descriptor API Tomi Valkeinen
2016-02-26  9:35 ` [PATCHv2 07/31] drm/omap: tpd12s015: CT_CP_HPD as optional gpio Tomi Valkeinen
2016-02-26  9:35 ` [PATCHv2 08/31] drm/omap: add define for DISPC_IRQ_WBUNCOMPLETEERROR Tomi Valkeinen
2016-02-26  9:35 ` [PATCHv2 09/31] drm/omap: use dma_mapping_error in omap_gem_attach_pages Tomi Valkeinen
2016-02-29 21:48   ` Laurent Pinchart
2016-02-26  9:35 ` [PATCHv2 10/31] drm/omap: use dma_mapping_error in omap_gem_dma_sync Tomi Valkeinen
2016-02-29 21:51   ` Laurent Pinchart
2016-02-26  9:35 ` [PATCHv2 11/31] drm/omap: print an error if display enable fails Tomi Valkeinen
2016-02-29 21:52   ` Laurent Pinchart
2016-02-26  9:36 ` [PATCHv2 12/31] drm/omap: gem: Clean up GEM objects memory flags Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 13/31] drm/omap: gem: Refactor GEM object allocation Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 14/31] drm/omap: gem: Implement dma_buf import Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 15/31] drm/omap: remove support for ext mem & sync Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 16/31] drm/omap: increase vblank wait timeout Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 17/31] drm/omap: DISPC: support double-pixel mode Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 18/31] drm/omap: support double-pixel Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 19/31] drm/omap: HDMI: support double-pixel pixel clock Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 20/31] drm/omap: HDMI: Fix HSW value Tomi Valkeinen
2016-02-29 21:55   ` Laurent Pinchart
2016-03-01  8:32     ` Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 21/31] drm/omap: HDMI: fix WP timings for ilace Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 22/31] drm/omap: DISPC: Fix field order for HDMI Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 23/31] drm/omap: HDMI5: Fix FC HSW value Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 24/31] drm/omap: HDMI5: clean up timings copy Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 25/31] drm/omap: HDMI5: Add interlace support Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 26/31] drm/omap: HDMI5: allow interlace Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 27/31] drm/omap: verify that display x-res is divisible by 8 Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 28/31] drm/omap: verify that fb plane pitches are the same Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 29/31] drm/omap: EBUSY status handling in omap_gem_fault() Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 30/31] drm/omap: fix crtc->plane property delegation Tomi Valkeinen
2016-02-26  9:36 ` [PATCHv2 31/31] drm/omap: check if rotation is supported before commit Tomi Valkeinen
2016-02-29 21:56 ` [PATCHv2 00/31] drm/omap: patches for v4.6 part 1 Laurent Pinchart

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=1476656.hCH40Sr6LB@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=tomi.valkeinen@ti.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.