[lkml]   [2010]   [Feb]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectUncool feature for TTM introduced by x86, pat: Use page flags to track memtypes of RAM pages

    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).

    If no, we have a sever regression on non PAT arch :
    (AFAIK 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.


     \ /
      Last update: 2010-02-18 16:33    [W:0.023 / U:121.840 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site