From: Chris Wilson <chris@chris-wilson.co.uk>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: Track dirtying of CPU cache for LLC
Date: Mon, 27 Feb 2012 17:10:24 +0000 [thread overview]
Message-ID: <f80fcd$3katg3@fmsmga001.fm.intel.com> (raw)
In-Reply-To: <20120227163019.GB4866@phenom.ffwll.local>
On Mon, 27 Feb 2012 17:30:19 +0100, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Fri, Feb 24, 2012 at 09:21:51PM +0000, Chris Wilson wrote:
> > Doing mixed rendering into the front/back scanout buffers lead to the
> > interesting rediscovery of clflushing when page-flipping. A painful
> > experience indeed.
> >
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
>
> Hm, I might be a bit dense here (again ...) but I don't follow what this
> exactly fixes. Care to elaborate a bit?
When we are page-flipping, we take an active render buffer and flush it
to the display plane. This involves a migration into the uncached
domain and a clflush. If we allow the bo to transistion back to LLC
cached for fast rendering when it becomes the back-buffer again, we
incur another clflush back into the display place, even though we never
touch it with the CPU whilst it is in the CPU domain. Similarly, if we
are recycling bo used else for render buffers to be page-flipped. The
patch avoids the defensive clflush by recording when we ignore transitions
in and out of the CPU cache domain due to cache coherency and replaying
those missed clflushes when the object is no longer cache coherent.
The effect of the extra clflushes is quite pronounced (>30% framerate
drop for glxgears) and really does interfere with experiments to manage
cache levels. It's not the only bottleneck, but it is the major one.
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
next prev parent reply other threads:[~2012-02-27 17:10 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-24 21:21 [PATCH] drm/i915: Track dirtying of CPU cache for LLC Chris Wilson
2012-02-27 16:30 ` Daniel Vetter
2012-02-27 17:10 ` Chris Wilson [this message]
2012-02-27 17:50 ` 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='f80fcd$3katg3@fmsmga001.fm.intel.com' \
--to=chris@chris-wilson.co.uk \
--cc=daniel@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.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.