Re: [PATCH] shmem missing cache flush

From: Matthew Wilcox (willy@debian.org)
Date: Mon Oct 28 2002 - 11:52:57 EST


On Mon, Oct 28, 2002 at 05:08:17PM +0000, Alan Cox wrote:
> Suppose those addresses are already in the userspace icache from a
> different exec ?

Documentation/cachetlb.txt:

  void flush_icache_range(unsigned long start, unsigned long end)
        When the kernel stores into addresses that it will execute
        out of (eg when loading modules), this function is called.

        If the icache does not snoop stores then this routine will need
        to flush it.

  void flush_icache_user_range(struct vm_area_struct *vma,
                        struct page *page, unsigned long addr, int len)
        This is called when the kernel stores into addresses that are
        part of the address space of a user process (which may be some
        other process than the current process). The addr argument
        gives the virtual address in that process's address space,
        page is the page which is being modified, and len indicates
        how many bytes have been modified. The modified region must
        not cross a page boundary. Currently this is only called from
        kernel/ptrace.c.

so either they're using the wrong function or these calls aren't needed
for some other reason (eg, the update_mmu_cache() thing davem suggested
earlier).

-- 
Revolutions do not require corporate support.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Oct 31 2002 - 22:00:37 EST