1
0
Files
linux/include/linux
Alexander van Heukelum 64970b68d2 x86, generic: optimize find_next_(zero_)bit for small constant-size bitmaps
This moves an optimization for searching constant-sized small
bitmaps form x86_64-specific to generic code.

On an i386 defconfig (the x86#testing one), the size of vmlinux hardly
changes with this applied. I have observed only four places where this
optimization avoids a call into find_next_bit:

In the functions return_unused_surplus_pages, alloc_fresh_huge_page,
and adjust_pool_surplus, this patch avoids a call for a 1-bit bitmap.
In __next_cpu a call is avoided for a 32-bit bitmap. That's it.

On x86_64, 52 locations are optimized with a minimal increase in
code size:

Current #testing defconfig:
	146 x bsf, 27 x find_next_*bit
   text    data     bss     dec     hex filename
   5392637  846592  724424 6963653  6a41c5 vmlinux

After removing the x86_64 specific optimization for find_next_*bit:
	94 x bsf, 79 x find_next_*bit
   text    data     bss     dec     hex filename
   5392358  846592  724424 6963374  6a40ae vmlinux

After this patch (making the optimization generic):
	146 x bsf, 27 x find_next_*bit
   text    data     bss     dec     hex filename
   5392396  846592  724424 6963412  6a40d4 vmlinux

[ tglx@linutronix.de: build fixes ]

Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-04-26 19:21:16 +02:00
..
2008-02-19 10:04:00 +01:00
2008-03-04 13:41:23 +01:00
2008-04-19 09:59:43 +10:00
2008-04-17 20:05:38 +02:00
2008-03-04 16:35:12 -08:00
2008-02-14 20:58:05 -08:00
2008-03-04 14:47:06 -08:00
2008-04-21 11:22:28 -05:00
2008-04-25 13:26:55 +01:00
2008-04-25 13:26:55 +01:00
2008-02-08 02:09:56 +00:00
2008-04-25 13:26:55 +01:00
2008-04-21 22:38:45 +00:00
2008-02-08 09:22:24 -08:00
2008-04-19 19:19:54 +02:00
2008-02-07 08:42:30 -08:00
2008-04-22 11:34:59 +02:00
2008-04-04 18:36:49 +02:00
2008-04-17 12:22:31 +02:00
2008-02-13 16:21:18 -08:00
2008-04-26 17:36:39 +02:00
2008-04-23 21:25:36 -04:00
2008-03-17 22:48:46 -07:00
2008-02-19 21:00:18 +01:00
2008-04-19 19:10:28 -07:00
2008-04-26 17:36:37 +02:00
2008-04-17 20:05:42 +02:00
2008-04-19 19:44:57 +02:00
2008-04-25 00:46:09 -04:00
2008-04-15 21:22:17 +10:00
2008-02-26 14:03:47 +09:00
2008-03-04 16:35:15 -08:00
2008-03-12 12:34:37 -07:00
2008-04-21 22:35:29 +00:00
2008-02-08 09:22:31 -08:00
2008-02-14 21:13:33 -08:00
2008-04-19 16:54:56 -04:00
2008-04-19 16:55:29 -04:00
2008-02-14 21:13:33 -08:00
2008-04-20 21:47:03 -07:00
2008-04-20 21:47:03 -07:00
2008-04-20 21:47:07 -07:00
2008-02-07 23:11:56 -08:00
2008-03-17 22:46:46 -07:00
2008-02-08 09:22:31 -08:00
2008-02-08 09:22:26 -08:00
2008-04-17 10:42:14 -04:00
2008-02-08 09:22:41 -08:00
2008-04-17 10:43:01 -04:00
2008-04-25 00:25:08 +02:00
2008-02-07 08:42:34 -08:00
2008-04-15 13:26:52 -04:00
2008-02-07 08:42:30 -08:00
2008-02-08 09:22:41 -08:00
2008-02-08 09:22:27 -08:00
2008-02-07 08:42:34 -08:00
2008-04-19 19:44:59 +02:00
2008-04-17 20:05:37 +02:00
2008-02-07 08:42:16 -08:00
2008-04-17 20:05:36 +02:00
2008-04-24 21:16:57 -07:00
2008-04-07 13:14:22 -07:00
2008-03-06 15:30:40 -05:00