All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jerome Glisse <j.glisse@gmail.com>
To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: lkml@vger.kernel.org, dri-devel@lists.freedesktop.org,
	jglisse@redhat.com, Ben Skeggs <bskeggs@redhat.com>,
	Dave Airlie <airlied@redhat.com>,
	Alex Deucher <alexander.deucher@amd.com>,
	Daniel Vetter <daniel.vetter@intel.com>
Subject: Re: [PATCH 1/6] swiotlb: Add helper to know if it is in use for a specific device.
Date: Wed, 26 Aug 2015 15:26:42 -0400	[thread overview]
Message-ID: <20150826192640.GA26480@gmail.com> (raw)
In-Reply-To: <20150826190231.GA6627@l.oracle.com>

On Wed, Aug 26, 2015 at 03:02:31PM -0400, Konrad Rzeszutek Wilk wrote:
> On Wed, Aug 26, 2015 at 02:52:02PM -0400, jglisse@redhat.com wrote:
> > From: Jérôme Glisse <jglisse@redhat.com>
> > 
> > Some device like GPU do things differently if swiotlb is in use. We
> > use to rely on swiotlb_nr_tbl() to know if swiotlb was enabled or not
> > but this is unreliable. Patch add a simple helpers to check if any of
> 
> Why is it unreliable?

Alex reported on irc that swiotlb_nr_tbl() returns non zero even if swiotlb
is disabled. This seems to be due to ac2cbab21f318e19bc176a7f38a120cec835220f
which cleanup swiotlb init and always allocate default size. Which i believe
is a waste of memory. So we need to add a real helper to know if swiotlb is
in use or not and we should not rely on expectation of some swiotlb value.

> 
> > the dma_ops associated with a device points to the swiotlb functions,
> > making swiotlb check reliable for a device.
> > 
> > Signed-off-by: Jérôme Glisse <jglisse@redhat.com>
> > Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> > Cc: Alex Deucher <alexander.deucher@amd.com>
> > Cc: Ben Skeggs <bskeggs@redhat.com>
> > Cc: Dave Airlie <airlied@redhat.com>
> > Cc: lkml@vger.kernel.org
> > Cc: Daniel Vetter <daniel.vetter@intel.com>
> > ---
> >  include/linux/dma-mapping.h | 18 ++++++++++++++++++
> >  1 file changed, 18 insertions(+)
> > 
> > diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
> > index ac07ff0..eac911e 100644
> > --- a/include/linux/dma-mapping.h
> > +++ b/include/linux/dma-mapping.h
> > @@ -314,4 +314,22 @@ static inline int dma_mmap_writecombine(struct device *dev,
> >  #define dma_unmap_len_set(PTR, LEN_NAME, VAL)    do { } while (0)
> >  #endif
> >  
> > +
> > +#ifdef CONFIG_SWIOTLB
> > +static inline bool swiotlb_in_use(struct device *dev)
> > +{
> > +	struct dma_map_ops *ops = get_dma_ops(dev);
> > +
> > +	return (ops->map_sg == swiotlb_map_sg_attrs ||
> > +		ops->unmap_sg == swiotlb_unmap_sg_attrs ||
> > +		ops->map_page == swiotlb_map_page);
> 
> That won't work. What if we use xen-swiotlb which has different function
> names?

I didn't thought about xen, always doing things differently, i think xen is
just a matter of also testing for the xen function. I just wanted to have
the helper in common code and only rely on common things, instead of having
to add a per arch helper.

Cheers,
Jérôme
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2015-08-26 19:27 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-26 18:52 [PATCH 0/6] Properly detect swiotlb jglisse
2015-08-26 18:52 ` [PATCH 1/6] swiotlb: Add helper to know if it is in use for a specific device jglisse
2015-08-26 19:02   ` Konrad Rzeszutek Wilk
2015-08-26 19:26     ` Jerome Glisse [this message]
2015-08-26 19:44       ` Konrad Rzeszutek Wilk
2015-08-26 20:31         ` Jerome Glisse
2015-08-26 20:38           ` Konrad Rzeszutek Wilk
2015-08-26 21:10             ` Jerome Glisse
2015-08-26 18:52 ` [PATCH 2/6] drm/radeon: Use swiotlb_in_use() to know if swiotlb is enabled or not jglisse
2015-08-26 18:52 ` [PATCH 3/6] drm/nouveau: " jglisse
2015-08-26 18:52 ` [PATCH 4/6] drm/vmwgfx: Use swiotlb_in_use() to know if swiotlb is enabled jglisse
2015-08-26 18:52 ` [PATCH 5/6] drm/i915: " jglisse
2015-08-26 18:52 ` [PATCH 6/6] drm/amdgpu: " jglisse
2015-08-31 16:04 ` [PATCH 0/6] Properly detect swiotlb Alex Deucher

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=20150826192640.GA26480@gmail.com \
    --to=j.glisse@gmail.com \
    --cc=airlied@redhat.com \
    --cc=alexander.deucher@amd.com \
    --cc=bskeggs@redhat.com \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jglisse@redhat.com \
    --cc=konrad.wilk@oracle.com \
    --cc=lkml@vger.kernel.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: 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.