From: Pekka Paalanen <pq@iki.fi>
To: "Thomas Hellström" <thomas@shipmail.org>
Cc: Thomas Hellstrom <thellstrom@vmware.com>,
dri-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] ttm: Fix ttm in-kernel copying of pages with non-standard caching attributes.
Date: Fri, 31 Jul 2009 12:32:19 +0300 [thread overview]
Message-ID: <20090731123219.2961640e@iki.fi> (raw)
In-Reply-To: <4A72B28D.8050801@shipmail.org>
On Fri, 31 Jul 2009 10:59:57 +0200
Thomas Hellström <thomas@shipmail.org> wrote:
> Pekka Paalanen wrote:
> >> @@ -145,17 +146,35 @@ static int ttm_copy_io_ttm_page(struct ttm_tt *ttm, void *src,
> >> return -ENOMEM;
> >>
> >> src = (void *)((unsigned long)src + (page << PAGE_SHIFT));
> >> - dst = kmap(d);
> >> +
> >> +#ifdef CONFIG_X86
> >> + dst = kmap_atomic_prot(d, KM_USER0, prot);
> >> +#else
> >> + if (prot != PAGE_KERNEL)
> >> + dst = vmap(&d, 1, 0, prot);
> >> + else
> >> + dst = kmap(d);
> >> +#endif
> >>
> >
> > What are the implications of choosing the non-CONFIG_X86 path
> > even on x86?
> >
>
> The only implication is a slowdown if dealing with highmem pages or
> pages with
> a non standard caching policy. Also you need the patch I just posted to
> dri-devel / lkml to make it compile.
> I should've done more thorough testing of the non-x86 path.
>
> > Is kmap_atomic_prot() simply an optimization allowed by the x86
> > arch, and the alternate way also works, although it uses the
> > precious vmalloc address space?
> >
>
> Exactly, although it's only using one page out of vmalloc space and for
> the time it
> takes to copy a page to / from io.
>
> > Since kmap_atomic_prot() is not exported on earlier kernels,
> > I'm tempted to just do the non-CONFIG_X86 path.
> >
> For compat I think that should be fine. If your driver is using
> accelerated copy to / from
> VRAM, you shouldn't even hit this path.
Okay, thank you very much.
--
Pekka Paalanen
http://www.iki.fi/pq/
prev parent reply other threads:[~2009-07-31 9:31 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-24 7:57 [PATCH 1/2] x86: Export kmap_atomic_prot() needed for TTM Thomas Hellstrom
2009-07-24 7:57 ` [PATCH 2/2] ttm: Fix ttm in-kernel copying of pages with non-standard caching attributes Thomas Hellstrom
2009-07-30 16:00 ` Pekka Paalanen
2009-07-31 8:59 ` Thomas Hellström
2009-07-31 9:32 ` Pekka Paalanen [this message]
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=20090731123219.2961640e@iki.fi \
--to=pq@iki.fi \
--cc=dri-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=thellstrom@vmware.com \
--cc=thomas@shipmail.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.