lkml.org 
[lkml]   [2013]   [May]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] COMPACTION: bugfix of improper cache flush in MIGRATION code.
    On 05/08/2013 08:18 PM, Leonid Yegoshin wrote:
    > Page 'new' during MIGRATION can't be flushed by flush_cache_page().
    > Using flush_cache_page(vma, addr, pfn) is justified only if
    > page is already placed in process page table, and that is done right
    > after flush_cache_page(). But without it the arch function has
    > no knowledge of process PTE and does nothing.
    >
    > Besides that, flush_cache_page() flushes an application cache,
    > kernel has a different page virtual address and dirtied it.
    >
    > Replace it with flush_dcache_page(new) which is a proper usage.
    >
    > Old page is flushed in try_to_unmap_one() before MIGRATION.
    >
    > This bug takes place in Sead3 board with M14Kc MIPS CPU without
    > cache aliasing (but Harvard arch - separate I and D cache)
    > in tight memory environment (128MB) each 1-3days on SOAK test.
    > It fails in cc1 during kernel build (SIGILL, SIGBUS, SIGSEG) if
    > CONFIG_COMPACTION is switched ON.

    Good catch!

    > Author: Leonid Yegoshin <yegoshin@mips.com>
    > Signed-off-by: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com>

    Acked-by: Rik van Riel <riel@redhat.com>



    \
     
     \ /
      Last update: 2013-05-09 17:21    [W:5.825 / U:0.240 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site