From: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com>
To: "Maciej W. Rozycki" <macro@linux-mips.org>
Cc: Zenon Fortuna <zenon.fortuna@imgtec.com>,
"Steven J. Hill" <Steven.Hill@imgtec.com>,
IMG - MIPS Linux Kernel developers
<IMG-MIPSLinuxKerneldevelopers@imgtec.com>,
Linux MIPS Mailing List <linux-mips@linux-mips.org>
Subject: Re: [PATCH V2 1/3] MIPS: Fix cache flushing for swap pages with non-DMA I/O.
Date: Tue, 24 Feb 2015 15:15:22 -0800 [thread overview]
Message-ID: <54ED060A.4010206@imgtec.com> (raw)
In-Reply-To: <alpine.LFD.2.11.1502242235160.17311@eddie.linux-mips.org>
On 02/24/2015 02:50 PM, Maciej W. Rozycki wrote:
> On Tue, 24 Feb 2015, Leonid Yegoshin wrote:
>
>>> For simplicity perhaps on SMP we should just always use hit operations
>>> regardless of the size requested.
>> High performance folks may not like doing a lot of stuff for 8MB VMA release
>> instead of flushing 64KB.
> What kind of a use case is that, what does it do?
>
>
cacheflush() calls flush_icache_range(). And we see:
linux-yegoshin:/space/yegoshin/MIPS-kernel/linux-mips.org/linux-mti% gid
flush_icache_range | grep -v arch/
include/asm-generic/cacheflush.h:20:#define flush_icache_range(start,
end) do { } while (0)
fs/binfmt_flat.c:787: flush_icache_range(start_code, end_code);
fs/exec.c:823: flush_icache_range(addr, addr + len);
kernel/module.c:2886: flush_icache_range((unsigned
long)mod->module_init,
kernel/module.c:2889: flush_icache_range((unsigned long)mod->module_core,
mm/nommu.c:532: flush_icache_range(mm->brk, brk);
mm/nommu.c:1441: flush_icache_range(region->vm_start,
region->vm_end);
drivers/misc/lkdtm.c:346: flush_icache_range((unsigned long)dst,
(unsigned long)dst + EXEC_SIZE);
drivers/misc/lkdtm.c:361: flush_icache_range((unsigned long)dst,
(unsigned long)dst + EXEC_SIZE);
drivers/misc/lkdtm.c:519: flush_icache_range((unsigned long)ptr,
kernel/debug/debug_core.c:243: flush_icache_range(addr, addr +
BREAK_INSTR_SIZE);
kernel/debug/gdbstub.c:383: flush_icache_range(addr, addr +
length);
drivers/video/console/sticore.c:254: flush_icache_range(start, end);
Documentation/cachetlb.txt:369: void flush_icache_range(unsigned long
start, unsigned long end)
It is not for VMA release, I was wrong here, but there are still some
interesting use cases for flush_icache_range().
Note: it is not cacheflush() bug, it is bug in r4k_on_each_cpu(). I have
a patch named
Author: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com>
Date: Mon Apr 1 20:10:30 2013 -0700
MIPS: Cache flush functions are reworked.
This patch is a preparation for EVA support in kernel.
However, it also fixes a bug then index cacheop was not ran
on multiple CPUs with unsafe index cacheops (flush_cache_vmap,
flush_icache_range, flush_cache_range, __flush_cache_all).
Additionally, it optimizes a usage of index and address cacheops for
address range flushes depending from address range size.
Because of that reasons it is a separate patch from EVA support.
Signed-off-by: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com>
Signed-off-by: Steven J. Hill <Steven.Hill@imgtec.com>
(cherry picked from commit 6b05dd71da1136fbad0ce642790c4c99343f05e7)
but it is still doesn't go through LMO.
- Leonid.
next prev parent reply other threads:[~2015-02-24 23:15 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-19 16:17 [PATCH V2 0/3] HIGHMEM and cache flush fixes Steven J. Hill
2015-02-19 16:17 ` Steven J. Hill
2015-02-19 16:17 ` [PATCH V2 1/3] MIPS: Fix cache flushing for swap pages with non-DMA I/O Steven J. Hill
2015-02-19 16:17 ` Steven J. Hill
2015-02-20 19:17 ` Kevin Cernekee
2015-02-24 0:56 ` Leonid Yegoshin
2015-02-24 1:13 ` Zenon Fortuna
2015-02-24 2:33 ` Maciej W. Rozycki
2015-02-24 21:06 ` Leonid Yegoshin
2015-02-24 21:51 ` Maciej W. Rozycki
2015-02-24 21:57 ` Leonid Yegoshin
2015-02-24 22:50 ` Maciej W. Rozycki
2015-02-24 22:57 ` David Daney
2015-02-24 23:19 ` Leonid Yegoshin
2015-02-24 23:58 ` David Daney
2015-02-25 0:07 ` Maciej W. Rozycki
2015-02-25 0:38 ` David Daney
2015-02-24 23:15 ` Leonid Yegoshin [this message]
2015-02-24 2:24 ` Maciej W. Rozycki
2015-02-24 16:20 ` Steven J. Hill
2015-02-19 16:17 ` [PATCH V2 2/3] MIPS: Highmem: Fixes for cache aliasing and color Steven J. Hill
2015-02-19 16:17 ` Steven J. Hill
2015-02-19 16:17 ` [PATCH V2 3/3] MIPS: Fix I-cache flushing for kmap'd pages Steven J. Hill
2015-02-19 16:17 ` Steven J. Hill
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54ED060A.4010206@imgtec.com \
--to=leonid.yegoshin@imgtec.com \
--cc=IMG-MIPSLinuxKerneldevelopers@imgtec.com \
--cc=Steven.Hill@imgtec.com \
--cc=linux-mips@linux-mips.org \
--cc=macro@linux-mips.org \
--cc=zenon.fortuna@imgtec.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.