mirror of
https://github.com/torvalds/linux.git
synced 2026-06-30 10:05:51 +02:00
This likely profiling is pretty fun. I found a few possible problems in sched.c. This patch may be not measurable, but when I did measure long ago, nooping (un)likely cost a couple of % on scheduler heavy benchmarks, so it all adds up. Tweak some branch hints: - the 2nd 64 bits in the bitmask is likely to be populated, because it contains the first 28 bits (nearly 3/4) of the normal priorities. (ratio of 669669:691 ~= 1000:1). - it isn't unlikely that context switching switches to another process. it might be very rapidly switching to and from the idle process (ratio of 475815:419004 and 471330:423544). Let the branch predictor decide. - preempt_enable seems to be very often called in a nested preempt_disable or with interrupts disabled (ratio of 3567760:87965 ~= 40:1) Signed-off-by: Nick Piggin <npiggin@suse.de> Acked-by: Ingo Molnar <mingo@elte.hu> Cc: Daniel Walker <dwalker@mvista.com> Cc: Hua Zhong <hzhong@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> |
||
|---|---|---|
| .. | ||
| bitops | ||
| 4level-fixup.h | ||
| atomic.h | ||
| audit_change_attr.h | ||
| audit_dir_write.h | ||
| audit_read.h | ||
| audit_write.h | ||
| bitops.h | ||
| bug.h | ||
| cputime.h | ||
| div64.h | ||
| dma-mapping-broken.h | ||
| dma-mapping.h | ||
| emergency-restart.h | ||
| errno-base.h | ||
| errno.h | ||
| fcntl.h | ||
| futex.h | ||
| ide_iops.h | ||
| ioctl.h | ||
| iomap.h | ||
| ipc.h | ||
| irq_regs.h | ||
| Kbuild | ||
| Kbuild.asm | ||
| libata-portmap.h | ||
| local.h | ||
| memory_model.h | ||
| mman.h | ||
| mutex-dec.h | ||
| mutex-null.h | ||
| mutex-xchg.h | ||
| page.h | ||
| pci-dma-compat.h | ||
| pci.h | ||
| percpu.h | ||
| pgtable-nopmd.h | ||
| pgtable-nopud.h | ||
| pgtable.h | ||
| resource.h | ||
| rtc.h | ||
| sections.h | ||
| siginfo.h | ||
| signal.h | ||
| statfs.h | ||
| termios.h | ||
| tlb.h | ||
| topology.h | ||
| uaccess.h | ||
| unaligned.h | ||
| vmlinux.lds.h | ||
| xor.h | ||