lkml.org 
[lkml]   [2016]   [Oct]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/2] x86/io: add interface to reserve io memtype for a resource range. (v1.1)

* Dave Airlie <airlied@redhat.com> wrote:

> A recent change to the mm code in:
> 87744ab3832b83ba71b931f86f9cfdb000d07da5
> mm: fix cache mode tracking in vm_insert_mixed()
>
> started enforcing checking the memory type against the registered list for
> amixed pfn insertion mappings. It happens that the drm drivers for a number
> of gpus relied on this being broken. Currently the driver only inserted
> VRAM mappings into the tracking table when they came from the kernel,
> and userspace mappings never landed in the table. This led to a regression
> where all the mapping end up as UC instead of WC now.
>
> I've considered a number of solutions but since this needs to be fixed
> in fixes and not next, and some of the solutions were going to introduce
> overhead that hadn't been there before I didn't consider them viable at
> this stage. These mainly concerned hooking into the TTM io reserve APIs,
> but these API have a bunch of fast paths I didn't want to unwind to add
> this to.
>
> The solution I've decided on is to add a new API like the arch_phys_wc
> APIs (these would have worked but wc_del didn't take a range), and
> use them from the drivers to add a WC compatible mapping to the table
> for all VRAM on those GPUs. This means we can then create userspace
> mapping that won't get degraded to UC.
>
> v1.1: use CONFIG_X86_PAT
> Cc: Toshi Kani <toshi.kani@hp.com>
> Cc: Borislav Petkov <bp@alien8.de>
> Cc: H. Peter Anvin <hpa@zytor.com>
> Cc: Andy Lutomirski <luto@kernel.org>
> Cc: Denys Vlasenko <dvlasenk@redhat.com>
> Cc: Brian Gerst <brgerst@gmail.com>
> Cc: x86@kernel.org
> Cc: mcgrof@suse.com
> Cc: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: Dave Airlie <airlied@redhat.com>
> ---
> arch/x86/include/asm/io.h | 6 ++++++
> arch/x86/mm/pat.c | 13 +++++++++++++
> include/linux/io.h | 13 +++++++++++++
> 3 files changed, 32 insertions(+)

These changes look good to me in principle:

Acked-by: Ingo Molnar <mingo@kernel.org>

I think it would be best to merge these fixes via the DRM tree?

Thanks,

Ingo

\
 
 \ /
  Last update: 2016-10-25 11:40    [W:0.138 / U:0.684 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site