[Intel-gfx] [RFC] Set cache level ioctl
Chris Wilson
chris at chris-wilson.co.uk
Mon Jul 9 13:34:36 CEST 2012
One of the niceties of SandyBridge was that it introduced a shared LLC
cache between the CPU and the GPU. This allows us assume cache coherency
of a bo and so mix CPU and GPU access to the same buffer (with a few
caveats of course). Older architectures used snooping to achieve very
nearly the same effect (the only observable difference for the driver is
the greatly increased bandwidth between the CPU and GPU and memory that
SandyBridge also introduced). However, whilst we were able to enable LLC
sharing by default on SNB as it has no obvious penalty and could
be handled implicitly by the drivers, snoopable memory on the other hand
must be managed explicitly (only certain types of buffers are allowed to
snoopable, and overuse leads to degraded performace). So we expose an
ioctl to grant userspace the ability to do so.
Note that this has a significant patch to the drm_mm to enable
segregation of different memory domains within the GTT, and that Daniel
wants a battery of coherency checks for i-g-t, hence it is not quite
ready just yet. As it stands I have used it to good effect within the
DDX. Bring on vmap!
-Chris
More information about the Intel-gfx
mailing list