public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jerome Glisse <glisse@freedesktop.org>
To: hpa@zytor.com, suresh.b.siddha@intel.com, venkatesh.pallipadi@intel.com
Cc: thellstrom@vmware.com, airlied@linux.ie, currojerez@riseup.net,
	linux-kernel@vger.kernel.org
Subject: Re: Uncool feature for TTM introduced by x86, pat: Use page flags to track memtypes of RAM pages
Date: Thu, 18 Feb 2010 17:35:05 +0100	[thread overview]
Message-ID: <20100218163505.GA11509@localhost.localdomain> (raw)
In-Reply-To: <20100218153032.GA4506@localhost.localdomain>

On Thu, Feb 18, 2010 at 04:30:32PM +0100, Jerome Glisse wrote:
> Hi,
> 
> commit id: f58417409603d62f2eb23db4d2cf6853d84a1698
> 
> TTM is doing uncommon use of set_memory_wc|uc|wb for instance it's not
> uncommon for TTM to change memory type from wc to uc or from uc to wc.
> Since x86, pat: Use page flags to track memtypes of RAM pages (commit
> id above) this isn't allowed anymore, before going from uc to wc or
> wc to uc we first have to free the memtype by going through wb this
> means an extra step which likely lead to some overhead (i guess that
> uc -> wc or wc -> uc won't trigger massive tlb/cpu flush while
> uc -> wb -> wc or wc -> wb -> uc will). reserve_ram_pages_type is the
> function which will check that memory is wb thus enforcing us to go
> through wb step.
> 
> Can we modify the interface to support again changing from uc to wc
> or wc to uc ? (i can try to do a patch for that).

Ok, we are likely not hit by wc -> uc or uc -> wc change (which is dumb
but i haven't yet understand what is exactly happening for the user)
My guess is that on non PAT get_page_memtype always return -1
Thus i think we will need to export a function bool pat_is_enabled() so
ttm can pickup the proper path in the unlikely/broken case of
wc -> uc.

> If no, we have a sever regression on non PAT arch :
> http://bugzilla.kernel.org/show_bug.cgi?id=15328
> (AFAIK bugzilla.kernel.org is down for me at the moment) because we
> are doing the extra set wb step (i haven't dived deep into the code
> to check what happen on non PAT). My guess is that on non PAT the
> extra set wb can be avoided right ? Also what is your educated guess
> on why on non PAT this extra set wb is slowing down thing badly ?
> Last can we make this extra step only on PAT enabled arch ?
> 
> In PAT case right now we are calling get get_page_memtype to know
> if we need to set page to wb first my understanding is that we should
> protect this call by memtype_lock spinlock (even if i don't think we
> can have collision here as we are protected by TTM locking), maybe
> we can directly use TTM information to call or not set wb and avoid
> using get_page_memtype.
> 
> Sorry for being such annoying user of PAT, i guess GPU is the only
> place having such strange and intensive cache change pattern.
> 
Cheers,
Jerome

  reply	other threads:[~2010-02-18 16:42 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-18 15:30 Uncool feature for TTM introduced by x86, pat: Use page flags to track memtypes of RAM pages Jerome Glisse
2010-02-18 16:35 ` Jerome Glisse [this message]
2010-02-18 18:46   ` Suresh Siddha
2010-02-18 17:27 ` Andi Kleen
2010-02-18 17:38   ` H. Peter Anvin
2010-02-18 20:27     ` Andi Kleen

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=20100218163505.GA11509@localhost.localdomain \
    --to=glisse@freedesktop.org \
    --cc=airlied@linux.ie \
    --cc=currojerez@riseup.net \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=suresh.b.siddha@intel.com \
    --cc=thellstrom@vmware.com \
    --cc=venkatesh.pallipadi@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox