]> rtime.felk.cvut.cz Git - zynq/linux.git/commit
mm, rt: kmap_atomic scheduling
authorPeter Zijlstra <peterz@infradead.org>
Thu, 28 Jul 2011 08:43:51 +0000 (10:43 +0200)
committerMichal Sojka <sojka@merica.cz>
Sun, 13 Sep 2015 07:47:36 +0000 (09:47 +0200)
commit9043c764b5980bf4f75cc1c0646513f684f4d3c5
treeaf8845757def8c91910c5153ad2c352a12f6dedd
parent09975f5f3166e371dbcb0f07d2d0c44c3ee328a2
mm, rt: kmap_atomic scheduling

In fact, with migrate_disable() existing one could play games with
kmap_atomic. You could save/restore the kmap_atomic slots on context
switch (if there are any in use of course), this should be esp easy now
that we have a kmap_atomic stack.

Something like the below.. it wants replacing all the preempt_disable()
stuff with pagefault_disable() && migrate_disable() of course, but then
you can flip kmaps around like below.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
[dvhart@linux.intel.com: build fix]
Link: http://lkml.kernel.org/r/1311842631.5890.208.camel@twins
[tglx@linutronix.de: Get rid of the per cpu variable and store the idx
     and the pte content right away in the task struct.
     Shortens the context switch code. ]
arch/x86/kernel/process_32.c
arch/x86/mm/highmem_32.c
arch/x86/mm/iomap_32.c
include/linux/highmem.h
include/linux/sched.h
include/linux/uaccess.h
mm/highmem.c