lkml.org 
[lkml]   [2020]   [Jan]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH v2 8/8] mm/memremap: Set caching mode for PCI P2PDMA memory to WC
    PCI BAR IO memory should never be mapped as WB, however prior to this
    the PAT bits were set WB and it was typically overridden by MTRR
    registers set by the firmware.

    Set PCI P2PDMA memory to be WC (writecombining) as the only current
    user (the NVMe CMB) was originally mapped WC before the P2PDMA code
    replaced the mapping with devm_memremap_pages().

    Future use-cases may need to generalize this by adding flags to
    select the caching type, as some P2PDMA cases will not want WC.
    However, those use-cases are not upstream yet and this can be changed
    when they arrive.

    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Jason Gunthorpe <jgg@ziepe.ca>
    Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
    ---
    mm/memremap.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/mm/memremap.c b/mm/memremap.c
    index 45ab4ef0643d..d36ff688b768 100644
    --- a/mm/memremap.c
    +++ b/mm/memremap.c
    @@ -187,7 +187,10 @@ void *memremap_pages(struct dev_pagemap *pgmap, int nid)
    }
    break;
    case MEMORY_DEVICE_DEVDAX:
    + need_devmap_managed = false;
    + break;
    case MEMORY_DEVICE_PCI_P2PDMA:
    + modifiers.pgprot = pgprot_writecombine(modifiers.pgprot);
    need_devmap_managed = false;
    break;
    default:
    --
    2.20.1
    \
     
     \ /
      Last update: 2020-01-07 22:40    [W:4.491 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site