summaryrefslogtreecommitdiffstats
path: root/mm/filemap.c
diff options
context:
space:
mode:
authorAlexey Dobriyan2019-03-06 00:44:18 +0100
committerLinus Torvalds2019-03-06 06:07:16 +0100
commitd71e53cee7c2e553b85c572e76da778a93d32135 (patch)
tree95a190ac9ba693dce12265cad873a7309dd8af36 /mm/filemap.c
parentmm: swap: add comment for swap_vma_readahead (diff)
downloadkernel-qcow2-linux-d71e53cee7c2e553b85c572e76da778a93d32135.tar.gz
kernel-qcow2-linux-d71e53cee7c2e553b85c572e76da778a93d32135.tar.xz
kernel-qcow2-linux-d71e53cee7c2e553b85c572e76da778a93d32135.zip
mm: shuffle GFP_* flags
GFP_KERNEL is one of the most used constant but on archs like arm with fixed length instruction some constants are more equal than the others. Constants with tightly packed bits can be injected directly into instruction stream: 0: e3a00d33 mov r0, #3264 ; 0xcc0 Others require multiple instructions or even loading out of instruction stream: 0: e3a000c0 mov r0, #192 ; 0xc0 4: e3400060 movt r0, #96 ; 0x60 Shuffle GFP_* flags so that GFP_KERNEL/GFP_ATOMIC + __GFP_ZERO bits are close to each other. Savings on arm configs are ~0.1%. Link: http://lkml.kernel.org/r/20190109201838.GA9140@avx2 Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/filemap.c')
0 files changed, 0 insertions, 0 deletions