public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* I just got got another Oops
@ 2009-03-12  5:33 Gene Heskett
  2009-03-12  6:27 ` KAMEZAWA Hiroyuki
  2009-03-12  8:36 ` David Newall
  0 siblings, 2 replies; 18+ messages in thread
From: Gene Heskett @ 2009-03-12  5:33 UTC (permalink / raw)
  To: linux-kernel@vger.kernel.org, bug-tar

Greetings all;

This is the 2nd or 3rd one of these I've seen.

This one may have a better set of clues as it occured about 1 second 
after amanda started the backup run:
==============================
Mar 12 01:15:01 coyote xinetd[2583]: START: amanda pid=8970 from=::ffff:192.168.71.3                                                     
Mar 12 01:16:21 coyote kernel: [10353.910914] BUG: unable to handle kernel NULL pointer dereference at 00000006                          
Mar 12 01:16:21 coyote kernel: [10353.910921] IP: [<c046520b>] get_page_from_freelist+0x24b/0x4c0                                        
Mar 12 01:16:21 coyote kernel: [10353.910929] *pdpt = 0000000000b38001 *pde = 0000000000000000                                           
Mar 12 01:16:21 coyote kernel: [10353.910934] Oops: 0000 [#1] PREEMPT SMP                                                                
Mar 12 01:16:21 coyote kernel: [10353.910937] last sysfs file: /sys/devices/pci0000:00/0000:00:09.0/irq                                  
Mar 12 01:16:21 coyote kernel: [10353.910940] Modules linked in: nls_utf8 cifs radeon drm nfsd lockd nfs_acl auth_rpcgss rfcomm 
exportfs sco bridge stp llc bnep l2cap autofs4 sunrpc ipv6 or51132 cx88_dvb snd_emu10k1_synth videobuf_dvb snd_emux_synth 
dvb_core snd_seq_virmidi snd_seq_midi_emul tuner_simple tuner_types snd_emu10k1 tda9887 snd_rawmidi tda8290 snd_ac97_codec 
ac97_bus snd_seq_dummy snd_seq_oss tuner snd_seq_midi_event snd_seq snd_pcm_oss cx8800 cx8802 cx88xx snd_mixer_oss snd_pcm 
snd_seq_device ir_common v4l2_common videodev i2c_algo_bit snd_timer snd_page_alloc tveeprom v4l1_compat snd_util_mem btcx_risc 
snd_hwdep ftdi_sio videobuf_dma_sg usb_storage snd forcedethfirewire_ohci floppy videobuf_core btusb firewire_core usbserial 
sr_mod usblp bluetooth cdrom sg soundcore i2c_nforce2 pcspkr crc_itu_t joydev i2c_core evdev button ahci pata_jmicron pata_amd 
ata_generic pata_acpi sata_nv libata sd_mod scsi_mod ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd [last unloaded: 
scsi_wait_scan]
Mar 12 01:16:21 coyote kernel: [10353.910986]
Mar 12 01:16:21 coyote kernel: [10353.910989] Pid: 9222, comm: tar Not tainted (2.6.29-rc7 #4) System Product Name
Mar 12 01:16:21 coyote kernel: [10353.910992] EIP: 0060:[<c046520b>] EFLAGS: 00210202 CPU: 2
Mar 12 01:16:21 coyote kernel: [10353.910995] EIP is at get_page_from_freelist+0x24b/0x4c0
Mar 12 01:16:21 coyote kernel: [10353.910997] EAX: ffffffff EBX: 80004000 ECX: 00000001 EDX: 00000002
Mar 12 01:16:21 coyote kernel: [10353.910999] ESI: c28fc260 EDI: 00000000 EBP: c0b35d5c ESP: c0b35cfc
Mar 12 01:16:21 coyote kernel: [10353.911001]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Mar 12 01:16:21 coyote kernel: [10353.911004] Process tar (pid: 9222, ti=c0b35000 task=f2817520 task.ti=c0b35000)
Mar 12 01:16:21 coyote kernel: [10353.911005] Stack:
Mar 12 01:16:21 coyote kernel: [10353.911006]  00000002 00000044 00000000 00000000 00000000 c0744b80 c06d6480 00000002
Mar 12 01:16:21 coyote kernel: [10353.911011]  00000000 00000000 001201d2 00000002 00200246 00000001 c06d6900 00000100
Mar 12 01:16:21 coyote kernel: [10353.911015]  00000000 c0b35dac c06d7484 c06d6480 c06d6480 c06d6480 f2817520 00002f66
Mar 12 01:16:21 coyote kernel: [10353.911020] Call Trace:
Mar 12 01:16:21 coyote kernel: [10353.911022]  [<c04655fe>] ? __alloc_pages_internal+0xae/0x430
Mar 12 01:16:21 coyote kernel: [10353.911028]  [<f82b5c60>] ? ext3_readpages+0x0/0x20 [ext3]
Mar 12 01:16:21 coyote kernel: [10353.911040]  [<c04676b4>] ? __do_page_cache_readahead+0xe4/0x1e0
Mar 12 01:16:21 coyote kernel: [10353.911044]  [<c0467a9b>] ? ondemand_readahead+0x15b/0x180
Mar 12 01:16:21 coyote kernel: [10353.911047]  [<c0467b38>] ? page_cache_async_readahead+0x78/0x90
Mar 12 01:16:21 coyote kernel: [10353.911050]  [<c0461434>] ? generic_file_aio_read+0x314/0x670
Mar 12 01:16:21 coyote kernel: [10353.911058]  [<c048a011>] ? do_sync_read+0xd1/0x110
Mar 12 01:16:21 coyote kernel: [10353.911061]  [<c04133a3>] ? lapic_next_event+0x13/0x20
Mar 12 01:16:21 coyote kernel: [10353.911065]  [<c043c3c0>] ? autoremove_wake_function+0x0/0x50
Mar 12 01:16:21 coyote kernel: [10353.911069]  [<c0447c4b>] ? tick_program_event+0x2b/0x40
Mar 12 01:16:21 coyote kernel: [10353.911072]  [<c0440086>] ? hrtimer_interrupt+0xd6/0x220
Mar 12 01:16:21 coyote kernel: [10353.911075]  [<c048aac9>] ? vfs_read+0x99/0x140
Mar 12 01:16:21 coyote kernel: [10353.911077]  [<c0458e20>] ? audit_syscall_exit+0x1e0/0x3e0
Mar 12 01:16:21 coyote kernel: [10353.911081]  [<c0489f40>] ? do_sync_read+0x0/0x110
Mar 12 01:16:21 coyote kernel: [10353.911083]  [<c048ac2d>] ? sys_read+0x3d/0x70
Mar 12 01:16:21 coyote kernel: [10353.911085]  [<c040336d>] ? sysenter_do_call+0x12/0x21
Mar 12 01:16:21 coyote kernel: [10353.911088] Code: ff 75 d0 9d 89 e0 25 00 f0 ff ff 83 68 14 01 f6 40 08 08 0f 85 30 02 00 00 
8b 1e 89 f2 8b 46 08 8b 7e 10 f6 c7 40 74 03 8b 56 0c <8b> 4a 04 31 d2 85 ff 0f 95 c2 83 c0 01 09 c2 31 c0 85 c9 0f 95
Mar 12 01:16:21 coyote kernel: [10353.911112] EIP: [<c046520b>] get_page_from_freelist+0x24b/0x4c0 SS:ESP 0068:c0b35cfc
Mar 12 01:16:21 coyote kernel: [10353.911117] ---[ end trace 8d9559cb0f5d9d82 ]---
========================

And it was accompanied by some sort of an alert mechanism in F10 that said 
'KDE Write Daemon' in a series of 22 stacked vertically boxes, and duplicated 
many but not all, of the above messages.  They weren't clipboardable. :(

-- 
Cheers, Gene
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
It's difficult to see the picture when you are inside the frame.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* I just got got another Oops
@ 2009-03-12  5:33 Gene Heskett
  0 siblings, 0 replies; 18+ messages in thread
From: Gene Heskett @ 2009-03-12  5:33 UTC (permalink / raw)
  To: linux-kernel@vger.kernel.org, bug-tar

Greetings all;

This is the 2nd or 3rd one of these I've seen.

This one may have a better set of clues as it occured about 1 second 
after amanda started the backup run:
==============================
Mar 12 01:15:01 coyote xinetd[2583]: START: amanda pid=8970 
from=::ffff:192.168.71.3                                                     
Mar 12 01:16:21 coyote kernel: [10353.910914] BUG: unable to handle kernel 
NULL pointer dereference at 00000006                          
Mar 12 01:16:21 coyote kernel: [10353.910921] IP: [<c046520b>] 
get_page_from_freelist+0x24b/0x4c0                                        
Mar 12 01:16:21 coyote kernel: [10353.910929] *pdpt = 0000000000b38001 *pde = 
0000000000000000                                           
Mar 12 01:16:21 coyote kernel: [10353.910934] Oops: 0000 [#1] PREEMPT SMP                                                                
Mar 12 01:16:21 coyote kernel: [10353.910937] last sysfs file: 
/sys/devices/pci0000:00/0000:00:09.0/irq                                  
Mar 12 01:16:21 coyote kernel: [10353.910940] Modules linked in: nls_utf8 cifs 
radeon drm nfsd lockd nfs_acl auth_rpcgss rfcomm 
exportfs sco bridge stp llc bnep l2cap autofs4 sunrpc ipv6 or51132 cx88_dvb 
snd_emu10k1_synth videobuf_dvb snd_emux_synth 
dvb_core snd_seq_virmidi snd_seq_midi_emul tuner_simple tuner_types 
snd_emu10k1 tda9887 snd_rawmidi tda8290 snd_ac97_codec 
ac97_bus snd_seq_dummy snd_seq_oss tuner snd_seq_midi_event snd_seq 
snd_pcm_oss cx8800 cx8802 cx88xx snd_mixer_oss snd_pcm 
snd_seq_device ir_common v4l2_common videodev i2c_algo_bit snd_timer 
snd_page_alloc tveeprom v4l1_compat snd_util_mem btcx_risc 
snd_hwdep ftdi_sio videobuf_dma_sg usb_storage snd forcedethfirewire_ohci 
floppy videobuf_core btusb firewire_core usbserial 
sr_mod usblp bluetooth cdrom sg soundcore i2c_nforce2 pcspkr crc_itu_t joydev 
i2c_core evdev button ahci pata_jmicron pata_amd 
ata_generic pata_acpi sata_nv libata sd_mod scsi_mod ext3 jbd mbcache uhci_hcd 
ohci_hcd ehci_hcd [last unloaded: 
scsi_wait_scan]
Mar 12 01:16:21 coyote kernel: [10353.910986]
Mar 12 01:16:21 coyote kernel: [10353.910989] Pid: 9222, comm: tar Not tainted 
(2.6.29-rc7 #4) System Product Name
Mar 12 01:16:21 coyote kernel: [10353.910992] EIP: 0060:[<c046520b>] EFLAGS: 
00210202 CPU: 2
Mar 12 01:16:21 coyote kernel: [10353.910995] EIP is at 
get_page_from_freelist+0x24b/0x4c0
Mar 12 01:16:21 coyote kernel: [10353.910997] EAX: ffffffff EBX: 80004000 ECX: 
00000001 EDX: 00000002
Mar 12 01:16:21 coyote kernel: [10353.910999] ESI: c28fc260 EDI: 00000000 EBP: 
c0b35d5c ESP: c0b35cfc
Mar 12 01:16:21 coyote kernel: [10353.911001]  DS: 007b ES: 007b FS: 00d8 GS: 
0033 SS: 0068
Mar 12 01:16:21 coyote kernel: [10353.911004] Process tar (pid: 9222, 
ti=c0b35000 task=f2817520 task.ti=c0b35000)
Mar 12 01:16:21 coyote kernel: [10353.911005] Stack:
Mar 12 01:16:21 coyote kernel: [10353.911006]  00000002 00000044 00000000 
00000000 00000000 c0744b80 c06d6480 00000002
Mar 12 01:16:21 coyote kernel: [10353.911011]  00000000 00000000 001201d2 
00000002 00200246 00000001 c06d6900 00000100
Mar 12 01:16:21 coyote kernel: [10353.911015]  00000000 c0b35dac c06d7484 
c06d6480 c06d6480 c06d6480 f2817520 00002f66
Mar 12 01:16:21 coyote kernel: [10353.911020] Call Trace:
Mar 12 01:16:21 coyote kernel: [10353.911022]  [<c04655fe>] ? 
__alloc_pages_internal+0xae/0x430
Mar 12 01:16:21 coyote kernel: [10353.911028]  [<f82b5c60>] ? 
ext3_readpages+0x0/0x20 [ext3]
Mar 12 01:16:21 coyote kernel: [10353.911040]  [<c04676b4>] ? 
__do_page_cache_readahead+0xe4/0x1e0
Mar 12 01:16:21 coyote kernel: [10353.911044]  [<c0467a9b>] ? 
ondemand_readahead+0x15b/0x180
Mar 12 01:16:21 coyote kernel: [10353.911047]  [<c0467b38>] ? 
page_cache_async_readahead+0x78/0x90
Mar 12 01:16:21 coyote kernel: [10353.911050]  [<c0461434>] ? 
generic_file_aio_read+0x314/0x670
Mar 12 01:16:21 coyote kernel: [10353.911058]  [<c048a011>] ? 
do_sync_read+0xd1/0x110
Mar 12 01:16:21 coyote kernel: [10353.911061]  [<c04133a3>] ? 
lapic_next_event+0x13/0x20
Mar 12 01:16:21 coyote kernel: [10353.911065]  [<c043c3c0>] ? 
autoremove_wake_function+0x0/0x50
Mar 12 01:16:21 coyote kernel: [10353.911069]  [<c0447c4b>] ? 
tick_program_event+0x2b/0x40
Mar 12 01:16:21 coyote kernel: [10353.911072]  [<c0440086>] ? 
hrtimer_interrupt+0xd6/0x220
Mar 12 01:16:21 coyote kernel: [10353.911075]  [<c048aac9>] ? 
vfs_read+0x99/0x140
Mar 12 01:16:21 coyote kernel: [10353.911077]  [<c0458e20>] ? 
audit_syscall_exit+0x1e0/0x3e0
Mar 12 01:16:21 coyote kernel: [10353.911081]  [<c0489f40>] ? 
do_sync_read+0x0/0x110
Mar 12 01:16:21 coyote kernel: [10353.911083]  [<c048ac2d>] ? 
sys_read+0x3d/0x70
Mar 12 01:16:21 coyote kernel: [10353.911085]  [<c040336d>] ? 
sysenter_do_call+0x12/0x21
Mar 12 01:16:21 coyote kernel: [10353.911088] Code: ff 75 d0 9d 89 e0 25 00 f0 
ff ff 83 68 14 01 f6 40 08 08 0f 85 30 02 00 00 
8b 1e 89 f2 8b 46 08 8b 7e 10 f6 c7 40 74 03 8b 56 0c <8b> 4a 04 31 d2 85 ff 
0f 95 c2 83 c0 01 09 c2 31 c0 85 c9 0f 95
Mar 12 01:16:21 coyote kernel: [10353.911112] EIP: [<c046520b>] 
get_page_from_freelist+0x24b/0x4c0 SS:ESP 0068:c0b35cfc
Mar 12 01:16:21 coyote kernel: [10353.911117] ---[ end trace 8d9559cb0f5d9d82 
]---
========================

And it was accompanied by some sort of an alert mechanism in F10 that said 
'KDE Write Daemon' in a series of 22 stacked vertically boxes, and duplicated 
many but not all, of the above messages.  They weren't clipboardable. :(

-- 
Cheers, Gene
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
It's difficult to see the picture when you are inside the frame.



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: I just got got another Oops
  2009-03-12  5:33 I just got got another Oops Gene Heskett
@ 2009-03-12  6:27 ` KAMEZAWA Hiroyuki
  2009-03-12  8:36 ` David Newall
  1 sibling, 0 replies; 18+ messages in thread
From: KAMEZAWA Hiroyuki @ 2009-03-12  6:27 UTC (permalink / raw)
  To: Gene Heskett; +Cc: linux-kernel@vger.kernel.org, bug-tar

On Thu, 12 Mar 2009 01:33:11 -0400
Gene Heskett <gene.heskett@gmail.com> wrote:

> Greetings all;
> 
> This is the 2nd or 3rd one of these I've seen.
> 
Could you show me .config and disassemble of get_page_from_freelist()?

Thanks,
-Kame

> This one may have a better set of clues as it occured about 1 second 
> after amanda started the backup run:
> ==============================
> Mar 12 01:15:01 coyote xinetd[2583]: START: amanda pid=8970 from=::ffff:192.168.71.3                                                     
> Mar 12 01:16:21 coyote kernel: [10353.910914] BUG: unable to handle kernel NULL pointer dereference at 00000006                          
> Mar 12 01:16:21 coyote kernel: [10353.910921] IP: [<c046520b>] get_page_from_freelist+0x24b/0x4c0                                        
> Mar 12 01:16:21 coyote kernel: [10353.910929] *pdpt = 0000000000b38001 *pde = 0000000000000000                                           
> Mar 12 01:16:21 coyote kernel: [10353.910934] Oops: 0000 [#1] PREEMPT SMP                                                                
> Mar 12 01:16:21 coyote kernel: [10353.910937] last sysfs file: /sys/devices/pci0000:00/0000:00:09.0/irq                                  
> Mar 12 01:16:21 coyote kernel: [10353.910940] Modules linked in: nls_utf8 cifs radeon drm nfsd lockd nfs_acl auth_rpcgss rfcomm 
> exportfs sco bridge stp llc bnep l2cap autofs4 sunrpc ipv6 or51132 cx88_dvb snd_emu10k1_synth videobuf_dvb snd_emux_synth 
> dvb_core snd_seq_virmidi snd_seq_midi_emul tuner_simple tuner_types snd_emu10k1 tda9887 snd_rawmidi tda8290 snd_ac97_codec 
> ac97_bus snd_seq_dummy snd_seq_oss tuner snd_seq_midi_event snd_seq snd_pcm_oss cx8800 cx8802 cx88xx snd_mixer_oss snd_pcm 
> snd_seq_device ir_common v4l2_common videodev i2c_algo_bit snd_timer snd_page_alloc tveeprom v4l1_compat snd_util_mem btcx_risc 
> snd_hwdep ftdi_sio videobuf_dma_sg usb_storage snd forcedethfirewire_ohci floppy videobuf_core btusb firewire_core usbserial 
> sr_mod usblp bluetooth cdrom sg soundcore i2c_nforce2 pcspkr crc_itu_t joydev i2c_core evdev button ahci pata_jmicron pata_amd 
> ata_generic pata_acpi sata_nv libata sd_mod scsi_mod ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd [last unloaded: 
> scsi_wait_scan]
> Mar 12 01:16:21 coyote kernel: [10353.910986]
> Mar 12 01:16:21 coyote kernel: [10353.910989] Pid: 9222, comm: tar Not tainted (2.6.29-rc7 #4) System Product Name
> Mar 12 01:16:21 coyote kernel: [10353.910992] EIP: 0060:[<c046520b>] EFLAGS: 00210202 CPU: 2
> Mar 12 01:16:21 coyote kernel: [10353.910995] EIP is at get_page_from_freelist+0x24b/0x4c0
> Mar 12 01:16:21 coyote kernel: [10353.910997] EAX: ffffffff EBX: 80004000 ECX: 00000001 EDX: 00000002
> Mar 12 01:16:21 coyote kernel: [10353.910999] ESI: c28fc260 EDI: 00000000 EBP: c0b35d5c ESP: c0b35cfc
> Mar 12 01:16:21 coyote kernel: [10353.911001]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
> Mar 12 01:16:21 coyote kernel: [10353.911004] Process tar (pid: 9222, ti=c0b35000 task=f2817520 task.ti=c0b35000)
> Mar 12 01:16:21 coyote kernel: [10353.911005] Stack:
> Mar 12 01:16:21 coyote kernel: [10353.911006]  00000002 00000044 00000000 00000000 00000000 c0744b80 c06d6480 00000002
> Mar 12 01:16:21 coyote kernel: [10353.911011]  00000000 00000000 001201d2 00000002 00200246 00000001 c06d6900 00000100
> Mar 12 01:16:21 coyote kernel: [10353.911015]  00000000 c0b35dac c06d7484 c06d6480 c06d6480 c06d6480 f2817520 00002f66
> Mar 12 01:16:21 coyote kernel: [10353.911020] Call Trace:
> Mar 12 01:16:21 coyote kernel: [10353.911022]  [<c04655fe>] ? __alloc_pages_internal+0xae/0x430
> Mar 12 01:16:21 coyote kernel: [10353.911028]  [<f82b5c60>] ? ext3_readpages+0x0/0x20 [ext3]
> Mar 12 01:16:21 coyote kernel: [10353.911040]  [<c04676b4>] ? __do_page_cache_readahead+0xe4/0x1e0
> Mar 12 01:16:21 coyote kernel: [10353.911044]  [<c0467a9b>] ? ondemand_readahead+0x15b/0x180
> Mar 12 01:16:21 coyote kernel: [10353.911047]  [<c0467b38>] ? page_cache_async_readahead+0x78/0x90
> Mar 12 01:16:21 coyote kernel: [10353.911050]  [<c0461434>] ? generic_file_aio_read+0x314/0x670
> Mar 12 01:16:21 coyote kernel: [10353.911058]  [<c048a011>] ? do_sync_read+0xd1/0x110
> Mar 12 01:16:21 coyote kernel: [10353.911061]  [<c04133a3>] ? lapic_next_event+0x13/0x20
> Mar 12 01:16:21 coyote kernel: [10353.911065]  [<c043c3c0>] ? autoremove_wake_function+0x0/0x50
> Mar 12 01:16:21 coyote kernel: [10353.911069]  [<c0447c4b>] ? tick_program_event+0x2b/0x40
> Mar 12 01:16:21 coyote kernel: [10353.911072]  [<c0440086>] ? hrtimer_interrupt+0xd6/0x220
> Mar 12 01:16:21 coyote kernel: [10353.911075]  [<c048aac9>] ? vfs_read+0x99/0x140
> Mar 12 01:16:21 coyote kernel: [10353.911077]  [<c0458e20>] ? audit_syscall_exit+0x1e0/0x3e0
> Mar 12 01:16:21 coyote kernel: [10353.911081]  [<c0489f40>] ? do_sync_read+0x0/0x110
> Mar 12 01:16:21 coyote kernel: [10353.911083]  [<c048ac2d>] ? sys_read+0x3d/0x70
> Mar 12 01:16:21 coyote kernel: [10353.911085]  [<c040336d>] ? sysenter_do_call+0x12/0x21
> Mar 12 01:16:21 coyote kernel: [10353.911088] Code: ff 75 d0 9d 89 e0 25 00 f0 ff ff 83 68 14 01 f6 40 08 08 0f 85 30 02 00 00 
> 8b 1e 89 f2 8b 46 08 8b 7e 10 f6 c7 40 74 03 8b 56 0c <8b> 4a 04 31 d2 85 ff 0f 95 c2 83 c0 01 09 c2 31 c0 85 c9 0f 95
> Mar 12 01:16:21 coyote kernel: [10353.911112] EIP: [<c046520b>] get_page_from_freelist+0x24b/0x4c0 SS:ESP 0068:c0b35cfc
> Mar 12 01:16:21 coyote kernel: [10353.911117] ---[ end trace 8d9559cb0f5d9d82 ]---
> ========================
> 
> And it was accompanied by some sort of an alert mechanism in F10 that said 
> 'KDE Write Daemon' in a series of 22 stacked vertically boxes, and duplicated 
> many but not all, of the above messages.  They weren't clipboardable. :(
> 
> -- 
> Cheers, Gene
> "There are four boxes to be used in defense of liberty:
>  soap, ballot, jury, and ammo. Please use in that order."
> -Ed Howdershelt (Author)
> It's difficult to see the picture when you are inside the frame.
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: I just got got another Oops
  2009-03-12  5:33 I just got got another Oops Gene Heskett
  2009-03-12  6:27 ` KAMEZAWA Hiroyuki
@ 2009-03-12  8:36 ` David Newall
  2009-03-12 17:28   ` Gene Heskett
                     ` (2 more replies)
  1 sibling, 3 replies; 18+ messages in thread
From: David Newall @ 2009-03-12  8:36 UTC (permalink / raw)
  To: Gene Heskett; +Cc: linux-kernel@vger.kernel.org, bug-tar

Gene Heskett wrote:
> Mar 12 01:15:01 coyote xinetd[2583]: START: amanda pid=8970 from=::ffff:192.168.71.3                                                     
> Mar 12 01:16:21 coyote kernel: [10353.910914] BUG: unable to handle kernel NULL pointer dereference at 00000006
> Mar 12 01:16:21 coyote kernel: [10353.910921] IP: [<c046520b>] get_page_from_freelist+0x24b/0x4c0
> Mar 12 01:16:21 coyote kernel: [10353.910929] *pdpt = 0000000000b38001 *pde = 0000000000000000
> Mar 12 01:16:21 coyote kernel: [10353.910934] Oops: 0000 [#1] PREEMPT SMP

I think there must be a zone at 0x0.  Try adding

		if (!zone) goto try_next_zone;


in mm/page_alloc.c, (near line 1469), before

		if (NUMA_BUILD && zlc_active &&


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: I just got got another Oops
  2009-03-12  8:36 ` David Newall
@ 2009-03-12 17:28   ` Gene Heskett
  2009-03-12 17:48   ` Gene Heskett
  2009-03-12 18:31   ` Gene Heskett
  2 siblings, 0 replies; 18+ messages in thread
From: Gene Heskett @ 2009-03-12 17:28 UTC (permalink / raw)
  To: David Newall, linux-kernel@vger.kernel.org

On Thursday 12 March 2009, David Newall wrote:
>Gene Heskett wrote:
>> Mar 12 01:15:01 coyote xinetd[2583]: START: amanda pid=8970
>> from=::ffff:192.168.71.3 Mar 12 01:16:21 coyote kernel: [10353.910914]
>> BUG: unable to handle kernel NULL pointer dereference at 00000006 Mar 12
>> 01:16:21 coyote kernel: [10353.910921] IP: [<c046520b>]
>> get_page_from_freelist+0x24b/0x4c0 Mar 12 01:16:21 coyote kernel:
>> [10353.910929] *pdpt = 0000000000b38001 *pde = 0000000000000000 Mar 12
>> 01:16:21 coyote kernel: [10353.910934] Oops: 0000 [#1] PREEMPT SMP
>
>I think there must be a zone at 0x0.  Try adding
>
>		if (!zone) goto try_next_zone;
>
>
>in mm/page_alloc.c, (near line 1469), before
>
>		if (NUMA_BUILD && zlc_active &&

This line is at #1417 in my mm/page_alloc.c, (in 2.6.29-rc7) but I have added 
it, and a rebuild is in progress.  I'll post again if I see it again.  The 
machine is still up, and functioning apparently only semi-normally ATM.  I 
don't know it its related, but setroubleshoot's daemon is also exiting 
frequently.  And can't be restarted with the 'service' utility.  Off to reboot 
next.

Thanks David.

-- 
Cheers, Gene
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
You're dead, Jim.
		-- McCoy, "Amok Time", stardate 3372.7


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: I just got got another Oops
  2009-03-12  8:36 ` David Newall
  2009-03-12 17:28   ` Gene Heskett
@ 2009-03-12 17:48   ` Gene Heskett
  2009-03-12 19:37     ` David Newall
  2009-03-12 18:31   ` Gene Heskett
  2 siblings, 1 reply; 18+ messages in thread
From: Gene Heskett @ 2009-03-12 17:48 UTC (permalink / raw)
  To: David Newall; +Cc: linux-kernel@vger.kernel.org

On Thursday 12 March 2009, David Newall wrote:
>Gene Heskett wrote:
>> Mar 12 01:15:01 coyote xinetd[2583]: START: amanda pid=8970
>> from=::ffff:192.168.71.3 Mar 12 01:16:21 coyote kernel: [10353.910914]
>> BUG: unable to handle kernel NULL pointer dereference at 00000006 Mar 12
>> 01:16:21 coyote kernel: [10353.910921] IP: [<c046520b>]
>> get_page_from_freelist+0x24b/0x4c0 Mar 12 01:16:21 coyote kernel:
>> [10353.910929] *pdpt = 0000000000b38001 *pde = 0000000000000000 Mar 12
>> 01:16:21 coyote kernel: [10353.910934] Oops: 0000 [#1] PREEMPT SMP
>
>I think there must be a zone at 0x0.  Try adding
>
>		if (!zone) goto try_next_zone;
>
>
>in mm/page_alloc.c, (near line 1469), before
>
>		if (NUMA_BUILD && zlc_active &&

Rebooted to the above now, still scratching head though.  Specifically, 
setroubleshoot will not return anything but a null for any 'service' command.  
In fact, none of the selinux stuff is running ANAICT.  Did we break other 
stuff?

Thanks David.

-- 
Cheers, Gene
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
I think that I shall never see
A billboard lovely as a tree.
Indeed, unless the billboards fall
I'll never see a tree at all.
		-- Ogden Nash


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: I just got got another Oops
  2009-03-12  8:36 ` David Newall
  2009-03-12 17:28   ` Gene Heskett
  2009-03-12 17:48   ` Gene Heskett
@ 2009-03-12 18:31   ` Gene Heskett
  2009-03-16  2:55     ` KAMEZAWA Hiroyuki
  2 siblings, 1 reply; 18+ messages in thread
From: Gene Heskett @ 2009-03-12 18:31 UTC (permalink / raw)
  To: David Newall; +Cc: linux-kernel@vger.kernel.org

On Thursday 12 March 2009, David Newall wrote:
>Gene Heskett wrote:
>> Mar 12 01:15:01 coyote xinetd[2583]: START: amanda pid=8970
>> from=::ffff:192.168.71.3 Mar 12 01:16:21 coyote kernel: [10353.910914]
>> BUG: unable to handle kernel NULL pointer dereference at 00000006 Mar 12
>> 01:16:21 coyote kernel: [10353.910921] IP: [<c046520b>]
>> get_page_from_freelist+0x24b/0x4c0 Mar 12 01:16:21 coyote kernel:
>> [10353.910929] *pdpt = 0000000000b38001 *pde = 0000000000000000 Mar 12
>> 01:16:21 coyote kernel: [10353.910934] Oops: 0000 [#1] PREEMPT SMP
>
>I think there must be a zone at 0x0.  Try adding
>
>		if (!zone) goto try_next_zone;
>
>
>in mm/page_alloc.c, (near line 1469), before
>
>		if (NUMA_BUILD && zlc_active &&
I don't believe that was the fix, David.  I just got another Oops
And this time word wrap is turned off before I paste from the log:

I thought it was the last time, sigh...

==============================
Mar 12 14:15:02 coyote kernel: [ 2656.832576] BUG: unable to handle kernel NULL pointer dereference at 00000006                          
Mar 12 14:15:02 coyote kernel: [ 2656.832583] IP: [<c046520b>] get_page_from_freelist+0x24b/0x4c0                                        
Mar 12 14:15:02 coyote kernel: [ 2656.832613] *pdpt = 000000003216c001 *pde = 0000000000000000                                           
Mar 12 14:15:02 coyote kernel: [ 2656.832618] Oops: 0000 [#1] PREEMPT SMP                                                                
Mar 12 14:15:02 coyote kernel: [ 2656.832620] last sysfs file: /sys/devices/pci0000:00/0000:00:09.0/irq                                  
Mar 12 14:15:02 coyote kernel: [ 2656.832623] Modules linked in: radeon drm nls_utf8 cifs nfsd lockd nfs_acl auth_rpcgss 
exportfs rfcomm sco bridge stp llc bnep l2cap autofs4 sunrpc ipv6 snd_emu10k1_synth or51132 snd_emux_synth cx88_dvb 
videobuf_dvb snd_seq_virmidi dvb_core snd_seq_midi_emul tuner_simple snd_emu10k1 tuner_types snd_rawmidi snd_ac97_codec 
ac97_bus tda9887 snd_seq_dummy tda8290 snd_seq_oss snd_seq_midi_event snd_seq tuner snd_pcm_oss cx8800 snd_mixer_oss cx8802 
cx88xx snd_pcm snd_seq_device ir_common v4l2_common snd_timer i2c_algo_bit videodev snd_page_alloc snd_util_mem v4l1_compat 
tveeprom snd_hwdep btcx_risc snd firewire_ohci videobuf_dma_sg ftdi_sio usb_storage floppy videobuf_core firewire_core 
forcedeth sr_mod btusb cdrom sg usbserial i2c_nforce2 soundcore crc_itu_t usblp pcspkr joydev bluetooth i2c_core evdev button 
ahci pata_jmicron pata_amd ata_generic pata_acpi sata_nv libata sd_mod scsi_mod ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd 
[last unloaded: drm]
Mar 12 14:15:02 coyote kernel: [ 2656.832669]
Mar 12 14:15:02 coyote kernel: [ 2656.832672] Pid: 18877, comm: kmail Not tainted (2.6.29-rc7 #5) System Product Name
Mar 12 14:15:02 coyote kernel: [ 2656.832675] EIP: 0060:[<c046520b>] EFLAGS: 00210202 CPU: 0
Mar 12 14:15:02 coyote kernel: [ 2656.832678] EIP is at get_page_from_freelist+0x24b/0x4c0
Mar 12 14:15:02 coyote kernel: [ 2656.832680] EAX: ffffffff EBX: 80004000 ECX: 00000001 EDX: 00000002
Mar 12 14:15:02 coyote kernel: [ 2656.832682] ESI: c28fc260 EDI: 00000000 EBP: f2168d5c ESP: f2168cfc
Mar 12 14:15:02 coyote kernel: [ 2656.832684]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Mar 12 14:15:02 coyote kernel: [ 2656.832686] Process kmail (pid: 18877, ti=f2168000 task=f22018b0 task.ti=f2168000)
Mar 12 14:15:02 coyote kernel: [ 2656.832688] Stack:
Mar 12 14:15:02 coyote kernel: [ 2656.832689]  00000002 00000044 c28fc060 00000000 f1463ca4 c0744b80 c06d6480 00000002
Mar 12 14:15:02 coyote kernel: [ 2656.832693]  00000000 00000000 001201d2 00000002 00200246 00000001 c06d6900 00000100
Mar 12 14:15:02 coyote kernel: [ 2656.832698]  00000000 80000000 c06d7484 c06d6480 c06d6480 c06d6480 f22018b0 00000129
Mar 12 14:15:02 coyote kernel: [ 2656.832708] Call Trace:
Mar 12 14:15:02 coyote kernel: [ 2656.832710]  [<c04655fe>] ? __alloc_pages_internal+0xae/0x430
Mar 12 14:15:02 coyote kernel: [ 2656.832713]  [<c0472503>] ? __do_fault+0x163/0x410
Mar 12 14:15:02 coyote kernel: [ 2656.832717]  [<c04676b4>] ? __do_page_cache_readahead+0xe4/0x1e0
Mar 12 14:15:02 coyote kernel: [ 2656.832721]  [<c0467a9b>] ? ondemand_readahead+0x15b/0x180
Mar 12 14:15:02 coyote kernel: [ 2656.832724]  [<c0467b38>] ? page_cache_async_readahead+0x78/0x90
Mar 12 14:15:02 coyote kernel: [ 2656.832727]  [<c0461434>] ? generic_file_aio_read+0x314/0x670
Mar 12 14:15:02 coyote kernel: [ 2656.832733]  [<c048a011>] ? do_sync_read+0xd1/0x110
Mar 12 14:15:02 coyote kernel: [ 2656.832735]  [<c0478f80>] ? vma_merge+0x190/0x270
Mar 12 14:15:02 coyote kernel: [ 2656.832738]  [<c043c3c0>] ? autoremove_wake_function+0x0/0x50
Mar 12 14:15:02 coyote kernel: [ 2656.832742]  [<c04039a7>] ? common_interrupt+0x27/0x2c
Mar 12 14:15:02 coyote kernel: [ 2656.832745]  [<c048aac9>] ? vfs_read+0x99/0x140
Mar 12 14:15:02 coyote kernel: [ 2656.832747]  [<c0489f40>] ? do_sync_read+0x0/0x110
Mar 12 14:15:02 coyote kernel: [ 2656.832749]  [<c048ac2d>] ? sys_read+0x3d/0x70
Mar 12 14:15:02 coyote kernel: [ 2656.832752]  [<c040336d>] ? sysenter_do_call+0x12/0x21
Mar 12 14:15:02 coyote kernel: [ 2656.832754] Code: ff 75 d0 9d 89 e0 25 00 f0 ff ff 83 68 14 01 f6 40 08 08 0f 85 30 02 00 00 
8b 1e 89 f2 8b 46 08 8b 7e 10 f6 c7 40 74 03 8b 56 0c <8b> 4a 04 31 d2 85 ff 0f 95 c2 83 c0 01 09 c2 31 c0 85 c9 0f 95
Mar 12 14:15:02 coyote kernel: [ 2656.832781] EIP: [<c046520b>] get_page_from_freelist+0x24b/0x4c0 SS:ESP 0068:f2168cfc
Mar 12 14:15:02 coyote kernel: [ 2656.832789] ---[ end trace 4e78f421815113f4 ]---
================================

And this time whatever kde uses for an alert popped up another stack of them, 
and then kmail went away so I had to kill its last process to get that screen
back & restart kmail.

Call me puzzled.  Not sure if I'll answer, but... :)

David;
That patch you sent, should I take it back out & wait for a better one?

-- 
Cheers, Gene
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
descramble code needed from software company


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: I just got got another Oops
  2009-03-12 17:48   ` Gene Heskett
@ 2009-03-12 19:37     ` David Newall
  2009-03-12 23:28       ` Gene Heskett
  0 siblings, 1 reply; 18+ messages in thread
From: David Newall @ 2009-03-12 19:37 UTC (permalink / raw)
  To: Gene Heskett; +Cc: linux-kernel@vger.kernel.org

Gene Heskett wrote:
> Rebooted to the above now, still scratching head though.  Specifically, 
> setroubleshoot will not return anything but a null for any 'service' command.  
> In fact, none of the selinux stuff is running ANAICT.  Did we break other 
> stuff?
>   

It's more that we haven't fixed anything, yet, just tested an
hypothesis.  Except that looking deeply, I now see that that hypothesis
can't be right.  So this is the point that I ask you to post your
.config and perhaps also as disassembly (objump -d) of mm/pagealloc.o

Sorry to send you off on a wild goose chase.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: I just got got another Oops
  2009-03-12 19:37     ` David Newall
@ 2009-03-12 23:28       ` Gene Heskett
  2009-03-13  4:55         ` David Newall
  0 siblings, 1 reply; 18+ messages in thread
From: Gene Heskett @ 2009-03-12 23:28 UTC (permalink / raw)
  To: David Newall; +Cc: linux-kernel@vger.kernel.org

[-- Attachment #1: Type: text/plain, Size: 1323 bytes --]

On Thursday 12 March 2009, David Newall wrote:
>Gene Heskett wrote:
>> Rebooted to the above now, still scratching head though.  Specifically,
>> setroubleshoot will not return anything but a null for any 'service'
>> command. In fact, none of the selinux stuff is running ANAICT.  Did we
>> break other stuff?
>
>It's more that we haven't fixed anything, yet, just tested an
>hypothesis.  Except that looking deeply, I now see that that hypothesis
>can't be right.  So this is the point that I ask you to post your
>.config and perhaps also as disassembly (objump -d) of mm/pagealloc.o
>
The .config was posted once before, but is attached again, also the dis of 
page_alloc.o

>Sorry to send you off on a wild goose chase.

NP David, I'll go take that extra line back out & wait further instructions.  
I also apologize for miss-spelling your name in another post, I see there are 
two el's now.

Secondary question:  I see by that .config, it appears selinux is out again as 
its not mentioned.  Or do I have yet another "make oldconfig" breakage?, which 
won't be the first time...

Thanks David.

-- 
Cheers, Gene
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Delta: A real man lands where he wants to.   -- David Letterman


[-- Attachment #2: .config --]
[-- Type: text/plain, Size: 58792 bytes --]

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.29-rc7
# Wed Mar 11 22:15:50 2009
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
# CONFIG_X86_64 is not set
CONFIG_X86=y
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_FAST_CMPXCHG_LOCAL=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
# CONFIG_GENERIC_TIME_VSYSCALL is not set
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_DEFAULT_IDLE=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CONFIG_ZONE_DMA32 is not set
CONFIG_ARCH_POPULATES_NODE_MAP=y
# CONFIG_AUDIT_ARCH is not set
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_X86_SMP=y
CONFIG_USE_GENERIC_SMP_HELPERS=y
CONFIG_X86_32_SMP=y
CONFIG_X86_HT=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_X86_TRAMPOLINE=y
CONFIG_KTIME_SCALAR=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
# CONFIG_TASKSTATS is not set
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_TREE=y

#
# RCU Subsystem
#
# CONFIG_CLASSIC_RCU is not set
# CONFIG_TREE_RCU is not set
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_PREEMPT_RCU_TRACE is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=17
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
# CONFIG_GROUP_SCHED is not set
# CONFIG_CGROUPS is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
# CONFIG_RELAY is not set
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
# CONFIG_USER_NS is not set
# CONFIG_PID_NS is not set
# CONFIG_NET_NS is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_EXTRA_PASS=y
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
# CONFIG_COMPAT_BRK is not set
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_PCI_QUIRKS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
CONFIG_BLK_DEV_BSG=y
# CONFIG_BLK_DEV_INTEGRITY is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
# CONFIG_IOSCHED_AS is not set
# CONFIG_IOSCHED_DEADLINE is not set
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
# CONFIG_FREEZER is not set

#
# Processor type and features
#
CONFIG_TICK_ONESHOT=y
# CONFIG_NO_HZ is not set
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_SMP=y
# CONFIG_SPARSE_IRQ is not set
# CONFIG_X86_MPPARSE is not set
CONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_VSMP is not set
# CONFIG_X86_RDC321X is not set
CONFIG_SCHED_OMIT_FRAME_POINTER=y
# CONFIG_PARAVIRT_GUEST is not set
# CONFIG_MEMTEST is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
CONFIG_MK8=y
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_MPSC is not set
# CONFIG_MCORE2 is not set
# CONFIG_GENERIC_CPU is not set
CONFIG_X86_GENERIC=y
CONFIG_X86_CPU=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=7
CONFIG_X86_XADD=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_X86_CMPXCHG64=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=4
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_CYRIX_32=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR_32=y
CONFIG_CPU_SUP_TRANSMETA_32=y
CONFIG_CPU_SUP_UMC_32=y
CONFIG_X86_DS=y
CONFIG_X86_PTRACE_BTS=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
# CONFIG_IOMMU_HELPER is not set
# CONFIG_IOMMU_API is not set
CONFIG_NR_CPUS=8
# CONFIG_SCHED_SMT is not set
CONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set
# CONFIG_X86_MCE is not set
CONFIG_VM86=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_X86_REBOOTFIXUPS is not set
CONFIG_MICROCODE=m
CONFIG_MICROCODE_INTEL=y
# CONFIG_MICROCODE_AMD is not set
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
# CONFIG_NOHIGHMEM is not set
# CONFIG_HIGHMEM4G is not set
CONFIG_HIGHMEM64G=y
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HIGHMEM=y
CONFIG_X86_PAE=y
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_UNEVICTABLE_LRU=y
CONFIG_HIGHPTE=y
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
CONFIG_X86_RESERVE_LOW_64K=y
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
CONFIG_MTRR_SANITIZER=y
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
CONFIG_X86_PAT=y
# CONFIG_EFI is not set
CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_SCHED_HRTICK=y
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x100000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x400000
# CONFIG_HOTPLUG_CPU is not set
CONFIG_COMPAT_VDSO=y
# CONFIG_CMDLINE_BOOL is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y

#
# Power management and ACPI options
#
CONFIG_PM=y
# CONFIG_PM_DEBUG is not set
# CONFIG_SUSPEND is not set
# CONFIG_HIBERNATION is not set
CONFIG_ACPI=y
# CONFIG_ACPI_PROCFS is not set
# CONFIG_ACPI_PROCFS_POWER is not set
CONFIG_ACPI_SYSFS_POWER=y
# CONFIG_ACPI_PROC_EVENT is not set
# CONFIG_ACPI_AC is not set
# CONFIG_ACPI_BATTERY is not set
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_FAN=y
CONFIG_ACPI_DOCK=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_CUSTOM_DSDT_FILE=""
# CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ACPI_BLACKLIST_YEAR=1999
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_PCI_SLOT=y
CONFIG_X86_PM_TIMER=y
# CONFIG_ACPI_CONTAINER is not set
# CONFIG_ACPI_SBS is not set

#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y

#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
# CONFIG_PCI_GOOLPC is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCIEPORTBUS=y
# CONFIG_PCIEAER is not set
# CONFIG_PCIEASPM is not set
CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_MSI is not set
CONFIG_PCI_LEGACY=y
# CONFIG_PCI_STUB is not set
CONFIG_HT_IRQ=y
CONFIG_ISA_DMA_API=y
# CONFIG_ISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
# CONFIG_OLPC is not set
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set

#
# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_HAVE_AOUT=y
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_MISC=y
CONFIG_HAVE_ATOMIC_IOMAP=y
CONFIG_NET=y

#
# Networking options
#
CONFIG_COMPAT_NET_DEV_OPS=y
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=y
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
CONFIG_NET_IPGRE=y
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_XFRM_MODE_TRANSPORT=m
CONFIG_INET_XFRM_MODE_TUNNEL=m
CONFIG_INET_XFRM_MODE_BEET=m
CONFIG_INET_LRO=m
CONFIG_INET_DIAG=m
CONFIG_INET_TCP_DIAG=m
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
CONFIG_IPV6=m
# CONFIG_IPV6_PRIVACY is not set
# CONFIG_IPV6_ROUTER_PREF is not set
# CONFIG_IPV6_OPTIMISTIC_DAD is not set
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
# CONFIG_IPV6_MIP6 is not set
CONFIG_INET6_XFRM_TUNNEL=m
CONFIG_INET6_TUNNEL=m
CONFIG_INET6_XFRM_MODE_TRANSPORT=m
CONFIG_INET6_XFRM_MODE_TUNNEL=m
CONFIG_INET6_XFRM_MODE_BEET=m
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
CONFIG_IPV6_SIT=m
CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_IPV6_TUNNEL is not set
# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_IPV6_MROUTE is not set
CONFIG_NETWORK_SECMARK=y
# CONFIG_NETFILTER is not set
# CONFIG_IP_DCCP is not set
CONFIG_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_HMAC_NONE is not set
CONFIG_SCTP_HMAC_SHA1=y
# CONFIG_SCTP_HMAC_MD5 is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
CONFIG_STP=m
CONFIG_BRIDGE=m
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
CONFIG_LLC=m
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_SCHED is not set
# CONFIG_DCB is not set

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m

#
# Bluetooth device drivers
#
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIBTSDIO=m
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIUART_LL=y
CONFIG_BT_HCIBCM203X=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=m
CONFIG_BT_HCIVHCI=m
# CONFIG_AF_RXRPC is not set
# CONFIG_PHONET is not set
CONFIG_WIRELESS=y
CONFIG_CFG80211=m
CONFIG_CFG80211_REG_DEBUG=y
CONFIG_NL80211=y
CONFIG_WIRELESS_OLD_REGULATORY=y
CONFIG_WIRELESS_EXT=y
CONFIG_WIRELESS_EXT_SYSFS=y
CONFIG_LIB80211=m
CONFIG_MAC80211=m

#
# Rate control algorithm selection
#
CONFIG_MAC80211_RC_MINSTREL=y
# CONFIG_MAC80211_RC_DEFAULT_PID is not set
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel"
CONFIG_MAC80211_MESH=y
CONFIG_MAC80211_LEDS=y
# CONFIG_MAC80211_DEBUG_MENU is not set
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
# CONFIG_STANDALONE is not set
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
CONFIG_FW_LOADER=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE="radeon/R100_cp.bin.ihex  radeon/R200_cp.bin.ihex  radeon/R300_cp.bin.ihex  radeon/R420_cp.bin.ihex  radeon/R520_cp.bin.ihex  radeon/RS600_cp.bin.ihex  radeon/RS690_cp.bin.ihex"
CONFIG_EXTRA_FIRMWARE_DIR="firmware"
# CONFIG_SYS_HYPERVISOR is not set
CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y
# CONFIG_MTD is not set
# CONFIG_PARPORT is not set
CONFIG_PNP=y
CONFIG_PNP_DEBUG_MESSAGES=y

#
# Protocols
#
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=m
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_NBD=m
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=16384
# CONFIG_BLK_DEV_XIP is not set
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_BLK_DEV_HD is not set
# CONFIG_MISC_DEVICES is not set
CONFIG_TIFM_CORE=m
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set

#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=m
CONFIG_SCSI_DMA=y
CONFIG_SCSI_TGT=m
# CONFIG_SCSI_NETLINK is not set
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=m
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=m
# CONFIG_CHR_DEV_SCH is not set

#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
CONFIG_SCSI_MULTI_LUN=y
# CONFIG_SCSI_CONSTANTS is not set
CONFIG_SCSI_LOGGING=y
# CONFIG_SCSI_SCAN_ASYNC is not set
CONFIG_SCSI_WAIT_SCAN=m

#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=m
# CONFIG_SCSI_FC_ATTRS is not set
CONFIG_SCSI_ISCSI_ATTRS=m
CONFIG_SCSI_SAS_ATTRS=m
CONFIG_SCSI_SAS_LIBSAS=m
CONFIG_SCSI_SAS_ATA=y
CONFIG_SCSI_SAS_HOST_SMP=y
# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
# CONFIG_SCSI_SRP_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_LIBFC is not set
# CONFIG_FCOE is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_MVSAS is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_SRP is not set
# CONFIG_SCSI_DH is not set
CONFIG_ATA=m
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_ATA_ACPI=y
CONFIG_SATA_PMP=y
CONFIG_SATA_AHCI=m
# CONFIG_SATA_SIL24 is not set
CONFIG_ATA_SFF=y
# CONFIG_SATA_SVW is not set
# CONFIG_ATA_PIIX is not set
# CONFIG_SATA_MV is not set
CONFIG_SATA_NV=m
# CONFIG_PDC_ADMA is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_PROMISE is not set
# CONFIG_SATA_SX4 is not set
CONFIG_SATA_SIL=m
# CONFIG_SATA_SIS is not set
# CONFIG_SATA_ULI is not set
# CONFIG_SATA_VIA is not set
# CONFIG_SATA_VITESSE is not set
# CONFIG_SATA_INIC162X is not set
CONFIG_PATA_ACPI=m
# CONFIG_PATA_ALI is not set
CONFIG_PATA_AMD=m
# CONFIG_PATA_ARTOP is not set
# CONFIG_PATA_ATIIXP is not set
# CONFIG_PATA_CMD640_PCI is not set
# CONFIG_PATA_CMD64X is not set
# CONFIG_PATA_CS5520 is not set
# CONFIG_PATA_CS5530 is not set
# CONFIG_PATA_CS5535 is not set
# CONFIG_PATA_CS5536 is not set
# CONFIG_PATA_CYPRESS is not set
# CONFIG_PATA_EFAR is not set
CONFIG_ATA_GENERIC=m
# CONFIG_PATA_HPT366 is not set
# CONFIG_PATA_HPT37X is not set
# CONFIG_PATA_HPT3X2N is not set
# CONFIG_PATA_HPT3X3 is not set
# CONFIG_PATA_IT821X is not set
# CONFIG_PATA_IT8213 is not set
CONFIG_PATA_JMICRON=m
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_MARVELL is not set
# CONFIG_PATA_MPIIX is not set
# CONFIG_PATA_OLDPIIX is not set
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NINJA32 is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_NS87415 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PDC_OLD is not set
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RZ1000 is not set
# CONFIG_PATA_SC1200 is not set
# CONFIG_PATA_SERVERWORKS is not set
# CONFIG_PATA_PDC2027X is not set
CONFIG_PATA_SIL680=m
# CONFIG_PATA_SIS is not set
# CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set
# CONFIG_PATA_SCH is not set
# CONFIG_MD is not set
# CONFIG_FUSION is not set

#
# IEEE 1394 (FireWire) support
#

#
# Enable only one of the two stacks, unless you know what you are doing
#
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_OHCI=m
CONFIG_FIREWIRE_OHCI_DEBUG=y
CONFIG_FIREWIRE_SBP2=m
# CONFIG_IEEE1394 is not set
CONFIG_I2O=m
CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
# CONFIG_I2O_EXT_ADAPTEC is not set
# CONFIG_I2O_CONFIG is not set
CONFIG_I2O_BUS=m
CONFIG_I2O_BLOCK=m
CONFIG_I2O_SCSI=m
CONFIG_I2O_PROC=m
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_VETH is not set
# CONFIG_NET_SB1000 is not set
# CONFIG_ARCNET is not set
CONFIG_PHYLIB=m

#
# MII PHY device drivers
#
CONFIG_MARVELL_PHY=m
CONFIG_DAVICOM_PHY=m
CONFIG_QSEMI_PHY=m
CONFIG_LXT_PHY=m
CONFIG_CICADA_PHY=m
CONFIG_VITESSE_PHY=m
CONFIG_SMSC_PHY=m
CONFIG_BROADCOM_PHY=m
CONFIG_ICPLUS_PHY=m
CONFIG_REALTEK_PHY=m
CONFIG_NATIONAL_PHY=m
CONFIG_STE10XP=m
CONFIG_LSI_ET1011C_PHY=m
CONFIG_MDIO_BITBANG=m
CONFIG_NET_ETHERNET=y
CONFIG_MII=m
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_ENC28J60 is not set
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
CONFIG_FORCEDETH=m
# CONFIG_FORCEDETH_NAPI is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
CONFIG_NE2K_PCI=m
CONFIG_8139CP=m
CONFIG_8139TOO=m
# CONFIG_8139TOO_PIO is not set
# CONFIG_8139TOO_TUNE_TWISTER is not set
CONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not set
# CONFIG_R6040 is not set
CONFIG_SIS900=m
CONFIG_EPIC100=m
# CONFIG_SMSC9420 is not set
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_TLAN=m
CONFIG_VIA_RHINE=m
CONFIG_VIA_RHINE_MMIO=y
CONFIG_SC92031=m
# CONFIG_ATL2 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
# CONFIG_TR is not set

#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
# CONFIG_IWLWIFI_LEDS is not set

#
# Enable WiMAX (Networking options) to see the WiMAX drivers
#

#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
CONFIG_USB_USBNET=m
CONFIG_USB_NET_AX8817X=m
CONFIG_USB_NET_CDCETHER=m
# CONFIG_USB_NET_DM9601 is not set
# CONFIG_USB_NET_SMSC95XX is not set
# CONFIG_USB_NET_GL620A is not set
CONFIG_USB_NET_NET1080=m
# CONFIG_USB_NET_PLUSB is not set
# CONFIG_USB_NET_MCS7830 is not set
CONFIG_USB_NET_RNDIS_HOST=m
CONFIG_USB_NET_CDC_SUBSET=m
# CONFIG_USB_ALI_M5632 is not set
# CONFIG_USB_AN2720 is not set
CONFIG_USB_BELKIN=y
CONFIG_USB_ARMLINUX=y
# CONFIG_USB_EPSON2888 is not set
# CONFIG_USB_KC2190 is not set
CONFIG_USB_NET_ZAURUS=m
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set

#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1680
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1050
CONFIG_INPUT_JOYDEV=m
CONFIG_INPUT_EVDEV=m
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_BCM5974 is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_ADS7846 is not set
# CONFIG_TOUCHSCREEN_FUJITSU is not set
# CONFIG_TOUCHSCREEN_GUNZE is not set
CONFIG_TOUCHSCREEN_ELO=m
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
# CONFIG_TOUCHSCREEN_MTOUCH is not set
# CONFIG_TOUCHSCREEN_INEXIO is not set
# CONFIG_TOUCHSCREEN_MK712 is not set
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
# CONFIG_TOUCHSCREEN_WM97XX is not set
# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
# CONFIG_TOUCHSCREEN_TSC2007 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=m
# CONFIG_INPUT_WISTRON_BTNS is not set
# CONFIG_INPUT_ATLAS_BTNS is not set
# CONFIG_INPUT_ATI_REMOTE is not set
# CONFIG_INPUT_ATI_REMOTE2 is not set
# CONFIG_INPUT_KEYSPAN_REMOTE is not set
# CONFIG_INPUT_POWERMATE is not set
# CONFIG_INPUT_YEALINK is not set
# CONFIG_INPUT_CM109 is not set
# CONFIG_INPUT_UINPUT is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
CONFIG_GAMEPORT=m
CONFIG_GAMEPORT_NS558=m
# CONFIG_GAMEPORT_L4 is not set
CONFIG_GAMEPORT_EMU10K1=m
# CONFIG_GAMEPORT_FM801 is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_DEVKMEM=y
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set

#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_RUNTIME_UARTS=2
# CONFIG_SERIAL_8250_EXTENDED is not set

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
# CONFIG_LEGACY_PTYS is not set
CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
CONFIG_HW_RANDOM=y
# CONFIG_HW_RANDOM_INTEL is not set
CONFIG_HW_RANDOM_AMD=m
# CONFIG_HW_RANDOM_GEODE is not set
# CONFIG_HW_RANDOM_VIA is not set
CONFIG_NVRAM=y
CONFIG_RTC=y
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_CS5535_GPIO is not set
# CONFIG_RAW_DRIVER is not set
CONFIG_HPET=y
# CONFIG_HPET_MMAP is not set
# CONFIG_HANGCHECK_TIMER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y
CONFIG_I2C=m
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_ALGOBIT=m

#
# I2C Hardware Bus support
#

#
# PC SMBus host controller drivers
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
CONFIG_I2C_AMD756=m
# CONFIG_I2C_AMD756_S4882 is not set
CONFIG_I2C_AMD8111=m
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_ISCH is not set
# CONFIG_I2C_PIIX4 is not set
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_NFORCE2_S4985 is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set

#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_SIMTEC is not set

#
# External I2C/SMBus adapter drivers
#
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_TINY_USB is not set

#
# Graphics adapter I2C/DDC channel drivers
#
# CONFIG_I2C_VOODOO3 is not set

#
# Other I2C/SMBus bus drivers
#
# CONFIG_I2C_PCA_PLATFORM is not set
# CONFIG_I2C_STUB is not set
# CONFIG_SCx200_ACB is not set

#
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_PCF8575 is not set
# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_PCF8591 is not set
CONFIG_SENSORS_MAX6875=m
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
CONFIG_SPI=y
CONFIG_SPI_MASTER=y

#
# SPI Master Controller Drivers
#
CONFIG_SPI_BITBANG=m

#
# SPI Protocol Masters
#
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
# CONFIG_GPIOLIB is not set
# CONFIG_W1 is not set
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
# CONFIG_PDA_POWER is not set
# CONFIG_BATTERY_DS2760 is not set
# CONFIG_BATTERY_BQ27x00 is not set
CONFIG_HWMON=m
CONFIG_HWMON_VID=m
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADCXX is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM9240 is not set
# CONFIG_SENSORS_ADT7462 is not set
# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_ADT7473 is not set
# CONFIG_SENSORS_ADT7475 is not set
# CONFIG_SENSORS_K8TEMP is not set
CONFIG_SENSORS_ASB100=m
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_I5K_AMB is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_F75375S is not set
# CONFIG_SENSORS_FSCHER is not set
# CONFIG_SENSORS_FSCPOS is not set
# CONFIG_SENSORS_FSCHMD is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
# CONFIG_SENSORS_CORETEMP is not set
# CONFIG_SENSORS_IBMAEM is not set
# CONFIG_SENSORS_IBMPEX is not set
CONFIG_SENSORS_IT87=m
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM70 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
# CONFIG_SENSORS_LM93 is not set
# CONFIG_SENSORS_LTC4245 is not set
# CONFIG_SENSORS_MAX1111 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_VT8231 is not set
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
CONFIG_SENSORS_W83793=m
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83L786NG is not set
CONFIG_SENSORS_W83627HF=m
CONFIG_SENSORS_W83627EHF=m
# CONFIG_SENSORS_HDAPS is not set
# CONFIG_SENSORS_LIS3LV02D is not set
# CONFIG_SENSORS_APPLESMC is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
CONFIG_THERMAL=y
# CONFIG_WATCHDOG is not set
CONFIG_SSB_POSSIBLE=y

#
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set

#
# Multifunction device drivers
#
# CONFIG_MFD_CORE is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_MFD_TMIO is not set
# CONFIG_MFD_WM8400 is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_PCF50633 is not set
# CONFIG_REGULATOR is not set

#
# Multimedia devices
#

#
# Multimedia core support
#
CONFIG_VIDEO_DEV=m
CONFIG_VIDEO_V4L2_COMMON=m
# CONFIG_VIDEO_ALLOW_V4L1 is not set
CONFIG_VIDEO_V4L1_COMPAT=y
CONFIG_DVB_CORE=m
CONFIG_VIDEO_MEDIA=m

#
# Multimedia drivers
#
CONFIG_VIDEO_SAA7146=m
CONFIG_VIDEO_SAA7146_VV=m
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_TUNER=m
CONFIG_MEDIA_TUNER_CUSTOMIZE=y
CONFIG_MEDIA_TUNER_SIMPLE=m
CONFIG_MEDIA_TUNER_TDA8290=m
CONFIG_MEDIA_TUNER_TDA827X=m
CONFIG_MEDIA_TUNER_TDA18271=m
CONFIG_MEDIA_TUNER_TDA9887=m
# CONFIG_MEDIA_TUNER_TEA5761 is not set
# CONFIG_MEDIA_TUNER_TEA5767 is not set
# CONFIG_MEDIA_TUNER_MT20XX is not set
# CONFIG_MEDIA_TUNER_MT2060 is not set
# CONFIG_MEDIA_TUNER_MT2266 is not set
# CONFIG_MEDIA_TUNER_MT2131 is not set
# CONFIG_MEDIA_TUNER_QT1010 is not set
CONFIG_MEDIA_TUNER_XC2028=m
CONFIG_MEDIA_TUNER_XC5000=m
# CONFIG_MEDIA_TUNER_MXL5005S is not set
CONFIG_MEDIA_TUNER_MXL5007T=m
CONFIG_VIDEO_V4L2=m
CONFIG_VIDEOBUF_GEN=m
CONFIG_VIDEOBUF_DMA_SG=m
CONFIG_VIDEOBUF_VMALLOC=m
CONFIG_VIDEOBUF_DVB=m
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_IR=m
CONFIG_VIDEO_TVEEPROM=m
CONFIG_VIDEO_TUNER=m
CONFIG_VIDEO_CAPTURE_DRIVERS=y
CONFIG_VIDEO_ADV_DEBUG=y
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
CONFIG_VIDEO_IR_I2C=m

#
# Encoders/decoders and other helper chips
#

#
# Audio decoders
#
CONFIG_VIDEO_TVAUDIO=m
CONFIG_VIDEO_TDA7432=m
CONFIG_VIDEO_TDA9840=m
CONFIG_VIDEO_TDA9875=m
CONFIG_VIDEO_TEA6415C=m
CONFIG_VIDEO_TEA6420=m
CONFIG_VIDEO_MSP3400=m
CONFIG_VIDEO_CS5345=m
CONFIG_VIDEO_CS53L32A=m
CONFIG_VIDEO_M52790=m
CONFIG_VIDEO_TLV320AIC23B=m
CONFIG_VIDEO_WM8775=m
CONFIG_VIDEO_WM8739=m
CONFIG_VIDEO_VP27SMPX=m

#
# Video decoders
#
CONFIG_VIDEO_OV7670=m
CONFIG_VIDEO_TCM825X=m
CONFIG_VIDEO_SAA711X=m
CONFIG_VIDEO_SAA717X=m
CONFIG_VIDEO_TVP514X=m
CONFIG_VIDEO_TVP5150=m

#
# Video and audio decoders
#
CONFIG_VIDEO_CX25840=m

#
# MPEG video encoders
#
CONFIG_VIDEO_CX2341X=m

#
# Video encoders
#
CONFIG_VIDEO_SAA7127=m

#
# Video improvement chips
#
CONFIG_VIDEO_UPD64031A=m
CONFIG_VIDEO_UPD64083=m
CONFIG_VIDEO_VIVI=m
# CONFIG_VIDEO_BT848 is not set
CONFIG_VIDEO_SAA5246A=m
CONFIG_VIDEO_SAA5249=m
CONFIG_VIDEO_SAA7134=m
CONFIG_VIDEO_SAA7134_ALSA=m
CONFIG_VIDEO_SAA7134_DVB=m
CONFIG_VIDEO_HEXIUM_ORION=m
CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_CX88=m
CONFIG_VIDEO_CX88_ALSA=m
CONFIG_VIDEO_CX88_BLACKBIRD=m
CONFIG_VIDEO_CX88_DVB=m
CONFIG_VIDEO_CX88_MPEG=m
CONFIG_VIDEO_CX23885=m
CONFIG_VIDEO_AU0828=m
CONFIG_VIDEO_IVTV=m
CONFIG_VIDEO_FB_IVTV=m
CONFIG_VIDEO_CX18=m
CONFIG_VIDEO_CAFE_CCIC=m
CONFIG_SOC_CAMERA=m
# CONFIG_SOC_CAMERA_MT9M001 is not set
# CONFIG_SOC_CAMERA_MT9M111 is not set
# CONFIG_SOC_CAMERA_MT9T031 is not set
# CONFIG_SOC_CAMERA_MT9V022 is not set
# CONFIG_SOC_CAMERA_TW9910 is not set
# CONFIG_SOC_CAMERA_PLATFORM is not set
# CONFIG_SOC_CAMERA_OV772X is not set
CONFIG_V4L_USB_DRIVERS=y
# CONFIG_USB_VIDEO_CLASS is not set
CONFIG_USB_GSPCA=m
# CONFIG_USB_M5602 is not set
# CONFIG_USB_STV06XX is not set
# CONFIG_USB_GSPCA_CONEX is not set
# CONFIG_USB_GSPCA_ETOMS is not set
# CONFIG_USB_GSPCA_FINEPIX is not set
# CONFIG_USB_GSPCA_MARS is not set
# CONFIG_USB_GSPCA_OV519 is not set
# CONFIG_USB_GSPCA_OV534 is not set
# CONFIG_USB_GSPCA_PAC207 is not set
# CONFIG_USB_GSPCA_PAC7311 is not set
# CONFIG_USB_GSPCA_SONIXB is not set
# CONFIG_USB_GSPCA_SONIXJ is not set
# CONFIG_USB_GSPCA_SPCA500 is not set
# CONFIG_USB_GSPCA_SPCA501 is not set
# CONFIG_USB_GSPCA_SPCA505 is not set
# CONFIG_USB_GSPCA_SPCA506 is not set
# CONFIG_USB_GSPCA_SPCA508 is not set
# CONFIG_USB_GSPCA_SPCA561 is not set
# CONFIG_USB_GSPCA_STK014 is not set
# CONFIG_USB_GSPCA_SUNPLUS is not set
# CONFIG_USB_GSPCA_T613 is not set
# CONFIG_USB_GSPCA_TV8532 is not set
# CONFIG_USB_GSPCA_VC032X is not set
# CONFIG_USB_GSPCA_ZC3XX is not set
# CONFIG_VIDEO_PVRUSB2 is not set
# CONFIG_VIDEO_EM28XX is not set
# CONFIG_VIDEO_USBVISION is not set
# CONFIG_USB_ET61X251 is not set
# CONFIG_USB_SN9C102 is not set
# CONFIG_USB_ZC0301 is not set
# CONFIG_USB_ZR364XX is not set
# CONFIG_USB_STKWEBCAM is not set
# CONFIG_USB_S2255 is not set
# CONFIG_RADIO_ADAPTERS is not set
CONFIG_DVB_DYNAMIC_MINORS=y
CONFIG_DVB_CAPTURE_DRIVERS=y

#
# Supported SAA7146 based PCI Adapters
#
CONFIG_TTPCI_EEPROM=m
CONFIG_DVB_AV7110=m
# CONFIG_DVB_AV7110_FIRMWARE is not set
CONFIG_DVB_AV7110_OSD=y
# CONFIG_DVB_BUDGET_CORE is not set

#
# Supported USB Adapters
#
# CONFIG_DVB_USB is not set
# CONFIG_DVB_TTUSB_BUDGET is not set
# CONFIG_DVB_TTUSB_DEC is not set
# CONFIG_DVB_SIANO_SMS1XXX is not set

#
# Supported FlexCopII (B2C2) Adapters
#
# CONFIG_DVB_B2C2_FLEXCOP is not set

#
# Supported BT878 Adapters
#

#
# Supported Pluto2 Adapters
#
# CONFIG_DVB_PLUTO2 is not set

#
# Supported SDMC DM1105 Adapters
#
# CONFIG_DVB_DM1105 is not set

#
# Supported DVB Frontends
#

#
# Customise DVB Frontends
#
CONFIG_DVB_FE_CUSTOMISE=y

#
# Multistandard (satellite) frontends
#
CONFIG_DVB_STB0899=m
CONFIG_DVB_STB6100=m

#
# DVB-S (satellite) frontends
#
# CONFIG_DVB_CX24110 is not set
# CONFIG_DVB_CX24123 is not set
# CONFIG_DVB_MT312 is not set
# CONFIG_DVB_S5H1420 is not set
# CONFIG_DVB_STV0288 is not set
# CONFIG_DVB_STB6000 is not set
# CONFIG_DVB_STV0299 is not set
CONFIG_DVB_TDA8083=m
CONFIG_DVB_TDA10086=m
CONFIG_DVB_TDA8261=m
# CONFIG_DVB_VES1X93 is not set
# CONFIG_DVB_TUNER_ITD1000 is not set
CONFIG_DVB_TUNER_CX24113=m
# CONFIG_DVB_TDA826X is not set
CONFIG_DVB_TUA6100=m
# CONFIG_DVB_CX24116 is not set
# CONFIG_DVB_SI21XX is not set

#
# DVB-T (terrestrial) frontends
#
# CONFIG_DVB_SP8870 is not set
# CONFIG_DVB_SP887X is not set
# CONFIG_DVB_CX22700 is not set
# CONFIG_DVB_CX22702 is not set
# CONFIG_DVB_DRX397XD is not set
# CONFIG_DVB_L64781 is not set
CONFIG_DVB_TDA1004X=m
# CONFIG_DVB_NXT6000 is not set
# CONFIG_DVB_MT352 is not set
# CONFIG_DVB_ZL10353 is not set
# CONFIG_DVB_DIB3000MB is not set
# CONFIG_DVB_DIB3000MC is not set
# CONFIG_DVB_DIB7000M is not set
# CONFIG_DVB_DIB7000P is not set
CONFIG_DVB_TDA10048=m

#
# DVB-C (cable) frontends
#
# CONFIG_DVB_VES1820 is not set
CONFIG_DVB_TDA10021=m
CONFIG_DVB_TDA10023=m
# CONFIG_DVB_STV0297 is not set

#
# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
#
# CONFIG_DVB_NXT200X is not set
# CONFIG_DVB_OR51211 is not set
CONFIG_DVB_OR51132=m
# CONFIG_DVB_BCM3510 is not set
# CONFIG_DVB_LGDT330X is not set
# CONFIG_DVB_LGDT3304 is not set
# CONFIG_DVB_S5H1409 is not set
CONFIG_DVB_AU8522=m
# CONFIG_DVB_S5H1411 is not set

#
# ISDB-T (terrestrial) frontends
#
# CONFIG_DVB_S921 is not set

#
# Digital terrestrial only tuners/PLL
#
CONFIG_DVB_PLL=m
# CONFIG_DVB_TUNER_DIB0070 is not set

#
# SEC control devices for DVB-S
#
# CONFIG_DVB_LNBP21 is not set
# CONFIG_DVB_ISL6405 is not set
# CONFIG_DVB_ISL6421 is not set
# CONFIG_DVB_LGS8GL5 is not set

#
# Tools to develop new frontends
#
# CONFIG_DVB_DUMMY_FE is not set
# CONFIG_DVB_AF9013 is not set
CONFIG_DAB=y
CONFIG_USB_DABUSB=m

#
# Graphics support
#
# CONFIG_AGP is not set
CONFIG_DRM=m
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=m
# CONFIG_FIRMWARE_EDID is not set
CONFIG_FB_DDC=m
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
CONFIG_FB_CFB_FILLRECT=m
CONFIG_FB_CFB_COPYAREA=m
CONFIG_FB_CFB_IMAGEBLIT=m
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
CONFIG_FB_FOREIGN_ENDIAN=y
CONFIG_FB_BOTH_ENDIAN=y
# CONFIG_FB_BIG_ENDIAN is not set
# CONFIG_FB_LITTLE_ENDIAN is not set
# CONFIG_FB_SYS_FOPS is not set
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y

#
# Frame buffer hardware drivers
#
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_VGA16 is not set
# CONFIG_FB_UVESA is not set
# CONFIG_FB_N411 is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
# CONFIG_FB_LE80578 is not set
# CONFIG_FB_MATROX is not set
CONFIG_FB_RADEON=m
CONFIG_FB_RADEON_I2C=y
# CONFIG_FB_RADEON_BACKLIGHT is not set
# CONFIG_FB_RADEON_DEBUG is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_VIA is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_CYBLA is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CARMINE is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set

#
# Display device support
#
CONFIG_DISPLAY_SUPPORT=y

#
# Display hardware drivers
#

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=128
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=m
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE=y
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_HRTIMER=m
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_RTCTIMER=m
CONFIG_SND_DYNAMIC_MINORS=y
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_VMASTER=y
CONFIG_SND_MPU401_UART=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_DRIVERS=y
# CONFIG_SND_PCSP is not set
# CONFIG_SND_DUMMY is not set
CONFIG_SND_VIRMIDI=m
# CONFIG_SND_MTPAV is not set
CONFIG_SND_SERIAL_U16550=m
CONFIG_SND_MPU401=m
# CONFIG_SND_AC97_POWER_SAVE is not set
CONFIG_SND_PCI=y
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AW2 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
# CONFIG_SND_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_OXYGEN is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS5530 is not set
# CONFIG_SND_CS5535AUDIO is not set
# CONFIG_SND_DARLA20 is not set
# CONFIG_SND_GINA20 is not set
# CONFIG_SND_LAYLA20 is not set
# CONFIG_SND_DARLA24 is not set
# CONFIG_SND_GINA24 is not set
# CONFIG_SND_LAYLA24 is not set
# CONFIG_SND_MONA is not set
# CONFIG_SND_MIA is not set
# CONFIG_SND_ECHO3G is not set
# CONFIG_SND_INDIGO is not set
# CONFIG_SND_INDIGOIO is not set
# CONFIG_SND_INDIGODJ is not set
CONFIG_SND_EMU10K1=m
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_HDA_INTEL is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_HIFIER is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SIS7019 is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VIRTUOSO is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI is not set
CONFIG_SND_SPI=y
CONFIG_SND_USB=y
# CONFIG_SND_USB_AUDIO is not set
# CONFIG_SND_USB_USX2Y is not set
# CONFIG_SND_USB_CAIAQ is not set
# CONFIG_SND_USB_US122L is not set
# CONFIG_SND_SOC is not set
# CONFIG_SOUND_PRIME is not set
CONFIG_AC97_BUS=m
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
CONFIG_HIDRAW=y

#
# USB Input Devices
#
CONFIG_USB_HID=y
# CONFIG_HID_PID is not set
CONFIG_USB_HIDDEV=y

#
# Special HID drivers
#
CONFIG_HID_COMPAT=y
CONFIG_HID_A4TECH=y
CONFIG_HID_APPLE=y
CONFIG_HID_BELKIN=y
CONFIG_HID_CHERRY=y
CONFIG_HID_CHICONY=y
CONFIG_HID_CYPRESS=y
CONFIG_HID_EZKEY=y
CONFIG_HID_GYRATION=y
CONFIG_HID_LOGITECH=y
# CONFIG_LOGITECH_FF is not set
# CONFIG_LOGIRUMBLEPAD2_FF is not set
CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=y
CONFIG_HID_NTRIG=y
CONFIG_HID_PANTHERLORD=y
# CONFIG_PANTHERLORD_FF is not set
CONFIG_HID_PETALYNX=y
CONFIG_HID_SAMSUNG=y
CONFIG_HID_SONY=y
CONFIG_HID_SUNPLUS=y
# CONFIG_GREENASIA_FF is not set
CONFIG_HID_TOPSEED=y
# CONFIG_THRUSTMASTER_FF is not set
# CONFIG_ZEROPLUS_FF is not set
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y

#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
CONFIG_USB_DEVICE_CLASS=y
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_SUSPEND is not set
# CONFIG_USB_OTG is not set
CONFIG_USB_MON=y
# CONFIG_USB_WUSB is not set
# CONFIG_USB_WUSB_CBAF is not set

#
# USB Host Controller Drivers
#
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
CONFIG_USB_OHCI_HCD=m
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_UHCI_HCD=m
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_WHCI_HCD is not set
# CONFIG_USB_HWA_HCD is not set
# CONFIG_USB_GADGET_MUSB_HDRC is not set

#
# USB Device Class drivers
#
# CONFIG_USB_ACM is not set
CONFIG_USB_PRINTER=m
# CONFIG_USB_WDM is not set
# CONFIG_USB_TMC is not set

#
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
#

#
# see USB_STORAGE Help for more information
#
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
# CONFIG_USB_STORAGE_ISD200 is not set
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
# CONFIG_USB_STORAGE_ONETOUCH is not set
# CONFIG_USB_STORAGE_KARMA is not set
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
# CONFIG_USB_LIBUSUAL is not set

#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set

#
# USB port drivers
#
CONFIG_USB_SERIAL=m
# CONFIG_USB_EZUSB is not set
# CONFIG_USB_SERIAL_GENERIC is not set
# CONFIG_USB_SERIAL_AIRCABLE is not set
# CONFIG_USB_SERIAL_ARK3116 is not set
CONFIG_USB_SERIAL_BELKIN=m
# CONFIG_USB_SERIAL_CH341 is not set
# CONFIG_USB_SERIAL_WHITEHEAT is not set
# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
# CONFIG_USB_SERIAL_CP2101 is not set
# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
# CONFIG_USB_SERIAL_EMPEG is not set
CONFIG_USB_SERIAL_FTDI_SIO=m
# CONFIG_USB_SERIAL_FUNSOFT is not set
# CONFIG_USB_SERIAL_VISOR is not set
CONFIG_USB_SERIAL_IPAQ=m
# CONFIG_USB_SERIAL_IR is not set
# CONFIG_USB_SERIAL_EDGEPORT is not set
# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
CONFIG_USB_SERIAL_GARMIN=m
# CONFIG_USB_SERIAL_IPW is not set
# CONFIG_USB_SERIAL_IUU is not set
# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
# CONFIG_USB_SERIAL_KEYSPAN is not set
# CONFIG_USB_SERIAL_KLSI is not set
# CONFIG_USB_SERIAL_KOBIL_SCT is not set
# CONFIG_USB_SERIAL_MCT_U232 is not set
# CONFIG_USB_SERIAL_MOS7720 is not set
# CONFIG_USB_SERIAL_MOS7840 is not set
# CONFIG_USB_SERIAL_MOTOROLA is not set
# CONFIG_USB_SERIAL_NAVMAN is not set
CONFIG_USB_SERIAL_PL2303=m
# CONFIG_USB_SERIAL_OTI6858 is not set
# CONFIG_USB_SERIAL_SPCP8X5 is not set
# CONFIG_USB_SERIAL_HP4X is not set
# CONFIG_USB_SERIAL_SAFE is not set
# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
# CONFIG_USB_SERIAL_TI is not set
# CONFIG_USB_SERIAL_CYBERJACK is not set
# CONFIG_USB_SERIAL_XIRCOM is not set
# CONFIG_USB_SERIAL_OPTION is not set
# CONFIG_USB_SERIAL_OMNINET is not set
# CONFIG_USB_SERIAL_OPTICON is not set
# CONFIG_USB_SERIAL_DEBUG is not set

#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_SEVSEG is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_BERRY_CHARGE is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGET is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_VST is not set
CONFIG_USB_GADGET=m
# CONFIG_USB_GADGET_DEBUG_FILES is not set
CONFIG_USB_GADGET_VBUS_DRAW=2
CONFIG_USB_GADGET_SELECTED=y
# CONFIG_USB_GADGET_AT91 is not set
# CONFIG_USB_GADGET_ATMEL_USBA is not set
# CONFIG_USB_GADGET_FSL_USB2 is not set
# CONFIG_USB_GADGET_LH7A40X is not set
# CONFIG_USB_GADGET_OMAP is not set
# CONFIG_USB_GADGET_PXA25X is not set
# CONFIG_USB_GADGET_PXA27X is not set
# CONFIG_USB_GADGET_S3C2410 is not set
# CONFIG_USB_GADGET_IMX is not set
CONFIG_USB_GADGET_M66592=y
CONFIG_USB_M66592=m
# CONFIG_USB_GADGET_AMD5536UDC is not set
# CONFIG_USB_GADGET_FSL_QE is not set
# CONFIG_USB_GADGET_CI13XXX is not set
# CONFIG_USB_GADGET_NET2280 is not set
# CONFIG_USB_GADGET_GOKU is not set
# CONFIG_USB_GADGET_DUMMY_HCD is not set
CONFIG_USB_GADGET_DUALSPEED=y
# CONFIG_USB_ZERO is not set
# CONFIG_USB_ETH is not set
# CONFIG_USB_GADGETFS is not set
# CONFIG_USB_FILE_STORAGE is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_MIDI_GADGET is not set
# CONFIG_USB_G_PRINTER is not set
# CONFIG_USB_CDC_COMPOSITE is not set

#
# OTG and related infrastructure
#
CONFIG_UWB=m
CONFIG_UWB_HWA=m
CONFIG_UWB_WHCI=m
# CONFIG_UWB_WLP is not set
# CONFIG_UWB_I1480U is not set
CONFIG_MMC=m
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set

#
# MMC/SD/SDIO Card Drivers
#
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_BOUNCE=y
# CONFIG_SDIO_UART is not set
# CONFIG_MMC_TEST is not set

#
# MMC/SD/SDIO Host Controller Drivers
#
CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_PCI is not set
CONFIG_MMC_WBSD=m
CONFIG_MMC_TIFM_SD=m
# CONFIG_MEMSTICK is not set
CONFIG_NEW_LEDS=y
# CONFIG_LEDS_CLASS is not set

#
# LED drivers
#

#
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
# CONFIG_LEDS_TRIGGER_TIMER is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
# CONFIG_RTC_CLASS is not set
# CONFIG_UIO is not set
# CONFIG_STAGING is not set
CONFIG_X86_PLATFORM_DEVICES=y
# CONFIG_TC1100_WMI is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
# CONFIG_INTEL_MENLOW is not set
# CONFIG_EEEPC_LAPTOP is not set
CONFIG_ACPI_WMI=m
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set

#
# Firmware Drivers
#
CONFIG_EDD=m
# CONFIG_EDD_OFF is not set
CONFIG_FIRMWARE_MEMMAP=y
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_DMIID=y
# CONFIG_ISCSI_IBFT_FIND is not set

#
# File systems
#
CONFIG_EXT2_FS=m
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT2_FS_XIP=y
CONFIG_EXT3_FS=m
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
# CONFIG_EXT4_FS is not set
CONFIG_FS_XIP=y
CONFIG_JBD=m
CONFIG_FS_MBCACHE=m
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_FILE_LOCKING=y
# CONFIG_XFS_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
CONFIG_DNOTIFY=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS_FS is not set
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=m
CONFIG_GENERIC_ACL=y

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_UDF_FS=m
CONFIG_UDF_NLS=y

#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
# CONFIG_NTFS_FS is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_CONFIGFS_FS=m
CONFIG_MISC_FILESYSTEMS=y
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_OMFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_NFSD=m
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
# CONFIG_SUNRPC_REGISTER_V4 is not set
CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_RPCSEC_GSS_SPKM3=m
# CONFIG_SMB_FS is not set
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set

#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_MINIX_SUBPARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_KARMA_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
# CONFIG_SYSV68_PARTITION is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_737=m
CONFIG_NLS_CODEPAGE_775=m
CONFIG_NLS_CODEPAGE_850=m
CONFIG_NLS_CODEPAGE_852=m
CONFIG_NLS_CODEPAGE_855=m
CONFIG_NLS_CODEPAGE_857=m
CONFIG_NLS_CODEPAGE_860=m
CONFIG_NLS_CODEPAGE_861=m
CONFIG_NLS_CODEPAGE_862=m
CONFIG_NLS_CODEPAGE_863=m
CONFIG_NLS_CODEPAGE_864=m
CONFIG_NLS_CODEPAGE_865=m
CONFIG_NLS_CODEPAGE_866=m
CONFIG_NLS_CODEPAGE_869=m
CONFIG_NLS_CODEPAGE_936=m
CONFIG_NLS_CODEPAGE_950=m
CONFIG_NLS_CODEPAGE_932=m
CONFIG_NLS_CODEPAGE_949=m
CONFIG_NLS_CODEPAGE_874=m
CONFIG_NLS_ISO8859_8=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_3=m
CONFIG_NLS_ISO8859_4=m
CONFIG_NLS_ISO8859_5=m
CONFIG_NLS_ISO8859_6=m
CONFIG_NLS_ISO8859_7=m
CONFIG_NLS_ISO8859_9=m
CONFIG_NLS_ISO8859_13=m
CONFIG_NLS_ISO8859_14=m
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_NLS_UTF8=m
CONFIG_DLM=m
# CONFIG_DLM_DEBUG is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_PRINTK_TIME=y
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=1024
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
CONFIG_HEADERS_CHECK=y
# CONFIG_DEBUG_KERNEL is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_ARCH_WANT_FRAME_POINTERS=y
CONFIG_FRAME_POINTER=y
# CONFIG_LATENCYTOP is not set
CONFIG_SYSCTL_SYSCALL_CHECK=y
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_HW_BRANCH_TRACER=y

#
# Tracers
#
# CONFIG_SYSPROF_TRACER is not set
# CONFIG_HW_BRANCH_TRACER is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
CONFIG_BUILD_DOCSRC=y
# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_STRICT_DEVMEM is not set
# CONFIG_X86_VERBOSE_BOOTUP is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
CONFIG_4KSTACKS=y
CONFIG_DOUBLEFAULT=y
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
CONFIG_IO_DELAY_TYPE_UDELAY=2
CONFIG_IO_DELAY_TYPE_NONE=3
CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_DEFAULT_IO_DELAY_TYPE=0
# CONFIG_OPTIMIZE_INLINING is not set

#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITYFS is not set
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
CONFIG_CRYPTO=y

#
# Crypto core or helper
#
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=m
CONFIG_CRYPTO_BLKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=m
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_NULL=m
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_AUTHENC=m
CONFIG_CRYPTO_TEST=m

#
# Authenticated Encryption with Associated Data
#
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_SEQIV is not set

#
# Block modes
#
CONFIG_CRYPTO_CBC=m
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_CTS is not set
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_LRW=m
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_XTS is not set

#
# Hash modes
#
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_XCBC=m

#
# Digest
#
CONFIG_CRYPTO_CRC32C=y
# CONFIG_CRYPTO_CRC32C_INTEL is not set
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
# CONFIG_CRYPTO_RMD128 is not set
# CONFIG_CRYPTO_RMD160 is not set
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_WP512=m

#
# Ciphers
#
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_AES_586=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_SALSA20_586 is not set
# CONFIG_CRYPTO_SEED is not set
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
CONFIG_CRYPTO_TWOFISH_586=m

#
# Compression
#
CONFIG_CRYPTO_DEFLATE=m
# CONFIG_CRYPTO_LZO is not set

#
# Random Number Generation
#
CONFIG_CRYPTO_ANSI_CPRNG=m
# CONFIG_CRYPTO_HW is not set
CONFIG_HAVE_KVM=y
# CONFIG_VIRTUALIZATION is not set

#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_FIND_LAST_BIT=y
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
CONFIG_CRC_T10DIF=m
CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
CONFIG_CRC7=m
CONFIG_LIBCRC32C=m
CONFIG_AUDIT_GENERIC=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y

[-- Attachment #3: page_alloc.dis --]
[-- Type: text/plain, Size: 298062 bytes --]


page_alloc.o:     file format elf32-i386


Disassembly of section .text:

00000000 <prep_compound_page>:
       0:	55                   	push   %ebp
       1:	89 d1                	mov    %edx,%ecx
       3:	89 e5                	mov    %esp,%ebp
       5:	53                   	push   %ebx
       6:	89 c3                	mov    %eax,%ebx
       8:	8d 53 20             	lea    0x20(%ebx),%edx
       b:	b8 01 00 00 00       	mov    $0x1,%eax
      10:	d3 e0                	shl    %cl,%eax
      12:	c7 42 18 b0 15 00 00 	movl   $0x15b0,0x18(%edx)
      19:	89 4a 1c             	mov    %ecx,0x1c(%edx)
      1c:	0f ba 2b 0d          	btsl   $0xd,(%ebx)
      20:	83 f8 01             	cmp    $0x1,%eax
      23:	7e 1c                	jle    41 <prep_compound_page+0x41>
      25:	b9 01 00 00 00       	mov    $0x1,%ecx
      2a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
      30:	0f ba 2a 0e          	btsl   $0xe,(%edx)
      34:	83 c1 01             	add    $0x1,%ecx
      37:	89 5a 0c             	mov    %ebx,0xc(%edx)
      3a:	83 c2 20             	add    $0x20,%edx
      3d:	39 c8                	cmp    %ecx,%eax
      3f:	7f ef                	jg     30 <prep_compound_page+0x30>
      41:	5b                   	pop    %ebx
      42:	5d                   	pop    %ebp
      43:	c3                   	ret    
      44:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
      4a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00000050 <prep_compound_gigantic_page>:
      50:	55                   	push   %ebp
      51:	89 d1                	mov    %edx,%ecx
      53:	89 e5                	mov    %esp,%ebp
      55:	57                   	push   %edi
      56:	bf 01 00 00 00       	mov    $0x1,%edi
      5b:	56                   	push   %esi
      5c:	89 c6                	mov    %eax,%esi
      5e:	8d 40 20             	lea    0x20(%eax),%eax
      61:	53                   	push   %ebx
      62:	d3 e7                	shl    %cl,%edi
      64:	c7 40 18 b0 15 00 00 	movl   $0x15b0,0x18(%eax)
      6b:	89 50 1c             	mov    %edx,0x1c(%eax)
      6e:	0f ba 2e 0d          	btsl   $0xd,(%esi)
      72:	83 ff 01             	cmp    $0x1,%edi
      75:	7e 46                	jle    bd <prep_compound_gigantic_page+0x6d>
      77:	b9 01 00 00 00       	mov    $0x1,%ecx
      7c:	eb 26                	jmp    a4 <prep_compound_gigantic_page+0x54>
      7e:	66 90                	xchg   %ax,%ax
      80:	8b 1d 00 00 00 00    	mov    0x0,%ebx
      86:	89 f0                	mov    %esi,%eax
      88:	29 d8                	sub    %ebx,%eax
      8a:	c1 f8 05             	sar    $0x5,%eax
      8d:	8d 14 01             	lea    (%ecx,%eax,1),%edx
      90:	31 c0                	xor    %eax,%eax
      92:	3b 15 00 00 00 00    	cmp    0x0,%edx
      98:	73 06                	jae    a0 <prep_compound_gigantic_page+0x50>
      9a:	c1 e2 05             	shl    $0x5,%edx
      9d:	8d 04 13             	lea    (%ebx,%edx,1),%eax
      a0:	39 cf                	cmp    %ecx,%edi
      a2:	7e 19                	jle    bd <prep_compound_gigantic_page+0x6d>
      a4:	0f ba 28 0e          	btsl   $0xe,(%eax)
      a8:	83 c1 01             	add    $0x1,%ecx
      ab:	f7 c1 ff 03 00 00    	test   $0x3ff,%ecx
      b1:	89 70 0c             	mov    %esi,0xc(%eax)
      b4:	74 ca                	je     80 <prep_compound_gigantic_page+0x30>
      b6:	83 c0 20             	add    $0x20,%eax
      b9:	39 cf                	cmp    %ecx,%edi
      bb:	7f e7                	jg     a4 <prep_compound_gigantic_page+0x54>
      bd:	5b                   	pop    %ebx
      be:	5e                   	pop    %esi
      bf:	5f                   	pop    %edi
      c0:	5d                   	pop    %ebp
      c1:	c3                   	ret    
      c2:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
      c9:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

000000d0 <move_freepages_block>:
      d0:	55                   	push   %ebp
      d1:	89 e5                	mov    %esp,%ebp
      d3:	57                   	push   %edi
      d4:	56                   	push   %esi
      d5:	89 ce                	mov    %ecx,%esi
      d7:	53                   	push   %ebx
      d8:	83 ec 10             	sub    $0x10,%esp
      db:	8b 1d 00 00 00 00    	mov    0x0,%ebx
      e1:	89 45 e8             	mov    %eax,-0x18(%ebp)
      e4:	89 d0                	mov    %edx,%eax
      e6:	8b 7d e8             	mov    -0x18(%ebp),%edi
      e9:	29 d8                	sub    %ebx,%eax
      eb:	c1 f8 05             	sar    $0x5,%eax
      ee:	25 00 fe ff ff       	and    $0xfffffe00,%eax
      f3:	89 c1                	mov    %eax,%ecx
      f5:	c1 e1 05             	shl    $0x5,%ecx
      f8:	01 cb                	add    %ecx,%ebx
      fa:	8b 8f 90 07 00 00    	mov    0x790(%edi),%ecx
     100:	89 d7                	mov    %edx,%edi
     102:	8b 55 e8             	mov    -0x18(%ebp),%edx
     105:	39 c8                	cmp    %ecx,%eax
     107:	0f 43 fb             	cmovae %ebx,%edi
     10a:	05 ff 01 00 00       	add    $0x1ff,%eax
     10f:	03 8a 94 07 00 00    	add    0x794(%edx),%ecx
     115:	39 c8                	cmp    %ecx,%eax
     117:	73 27                	jae    140 <move_freepages_block+0x70>
     119:	8d 83 e0 3f 00 00    	lea    0x3fe0(%ebx),%eax
     11f:	89 45 ec             	mov    %eax,-0x14(%ebp)
     122:	8b 0f                	mov    (%edi),%ecx
     124:	8b 83 e0 3f 00 00    	mov    0x3fe0(%ebx),%eax
     12a:	89 ca                	mov    %ecx,%edx
     12c:	c1 ea 1e             	shr    $0x1e,%edx
     12f:	c1 e8 1e             	shr    $0x1e,%eax
     132:	39 d0                	cmp    %edx,%eax
     134:	74 1c                	je     152 <move_freepages_block+0x82>
     136:	0f 0b                	ud2a   
     138:	eb fe                	jmp    138 <move_freepages_block+0x68>
     13a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
     140:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
     147:	8b 45 f0             	mov    -0x10(%ebp),%eax
     14a:	83 c4 10             	add    $0x10,%esp
     14d:	5b                   	pop    %ebx
     14e:	5e                   	pop    %esi
     14f:	5f                   	pop    %edi
     150:	5d                   	pop    %ebp
     151:	c3                   	ret    
     152:	3b 7d ec             	cmp    -0x14(%ebp),%edi
     155:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
     15c:	77 e2                	ja     140 <move_freepages_block+0x70>
     15e:	c1 e6 03             	shl    $0x3,%esi
     161:	89 75 e4             	mov    %esi,-0x1c(%ebp)
     164:	eb 0c                	jmp    172 <move_freepages_block+0xa2>
     166:	66 90                	xchg   %ax,%ax
     168:	83 c7 20             	add    $0x20,%edi
     16b:	39 7d ec             	cmp    %edi,-0x14(%ebp)
     16e:	72 d7                	jb     147 <move_freepages_block+0x77>
     170:	8b 0f                	mov    (%edi),%ecx
     172:	81 e1 00 00 04 00    	and    $0x40000,%ecx
     178:	74 ee                	je     168 <move_freepages_block+0x98>
     17a:	8b 4f 0c             	mov    0xc(%edi),%ecx
     17d:	8d 77 18             	lea    0x18(%edi),%esi
     180:	8b 57 18             	mov    0x18(%edi),%edx
     183:	8b 47 1c             	mov    0x1c(%edi),%eax
     186:	89 10                	mov    %edx,(%eax)
     188:	89 42 04             	mov    %eax,0x4(%edx)
     18b:	6b c1 2c             	imul   $0x2c,%ecx,%eax
     18e:	c7 47 18 00 01 10 00 	movl   $0x100100,0x18(%edi)
     195:	8b 55 e8             	mov    -0x18(%ebp),%edx
     198:	03 45 e4             	add    -0x1c(%ebp),%eax
     19b:	8d 9c 02 80 04 00 00 	lea    0x480(%edx,%eax,1),%ebx
     1a2:	8b 53 04             	mov    0x4(%ebx),%edx
     1a5:	89 57 18             	mov    %edx,0x18(%edi)
     1a8:	89 72 04             	mov    %esi,0x4(%edx)
     1ab:	8b 55 e8             	mov    -0x18(%ebp),%edx
     1ae:	89 73 04             	mov    %esi,0x4(%ebx)
     1b1:	8d 84 02 84 04 00 00 	lea    0x484(%edx,%eax,1),%eax
     1b8:	89 47 1c             	mov    %eax,0x1c(%edi)
     1bb:	b8 20 00 00 00       	mov    $0x20,%eax
     1c0:	d3 e0                	shl    %cl,%eax
     1c2:	01 c7                	add    %eax,%edi
     1c4:	b8 01 00 00 00       	mov    $0x1,%eax
     1c9:	d3 e0                	shl    %cl,%eax
     1cb:	01 45 f0             	add    %eax,-0x10(%ebp)
     1ce:	eb 9b                	jmp    16b <move_freepages_block+0x9b>

000001d0 <split_page>:
     1d0:	55                   	push   %ebp
     1d1:	89 d1                	mov    %edx,%ecx
     1d3:	89 e5                	mov    %esp,%ebp
     1d5:	53                   	push   %ebx
     1d6:	bb 01 00 00 00       	mov    $0x1,%ebx
     1db:	d3 e3                	shl    %cl,%ebx
     1dd:	83 fb 01             	cmp    $0x1,%ebx
     1e0:	7e 1f                	jle    201 <split_page+0x31>
     1e2:	83 c0 20             	add    $0x20,%eax
     1e5:	ba 01 00 00 00       	mov    $0x1,%edx
     1ea:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
     1f0:	83 c2 01             	add    $0x1,%edx
     1f3:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
     1fa:	83 c0 20             	add    $0x20,%eax
     1fd:	39 da                	cmp    %ebx,%edx
     1ff:	7c ef                	jl     1f0 <split_page+0x20>
     201:	5b                   	pop    %ebx
     202:	5d                   	pop    %ebp
     203:	c3                   	ret    
     204:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
     20a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00000210 <zone_watermark_ok>:
     210:	55                   	push   %ebp
     211:	89 e5                	mov    %esp,%ebp
     213:	57                   	push   %edi
     214:	89 d7                	mov    %edx,%edi
     216:	56                   	push   %esi
     217:	53                   	push   %ebx
     218:	83 ec 08             	sub    $0x8,%esp
     21b:	8b 5d 0c             	mov    0xc(%ebp),%ebx
     21e:	89 45 f0             	mov    %eax,-0x10(%ebp)
     221:	89 4d ec             	mov    %ecx,-0x14(%ebp)
     224:	8b 90 d8 06 00 00    	mov    0x6d8(%eax),%edx
     22a:	31 c0                	xor    %eax,%eax
     22c:	89 f9                	mov    %edi,%ecx
     22e:	85 d2                	test   %edx,%edx
     230:	0f 49 c2             	cmovns %edx,%eax
     233:	8d 50 01             	lea    0x1(%eax),%edx
     236:	b8 01 00 00 00       	mov    $0x1,%eax
     23b:	d3 e0                	shl    %cl,%eax
     23d:	29 c2                	sub    %eax,%edx
     23f:	f6 c3 20             	test   $0x20,%bl
     242:	74 0e                	je     252 <zone_watermark_ok+0x42>
     244:	8b 45 ec             	mov    -0x14(%ebp),%eax
     247:	c1 e8 1f             	shr    $0x1f,%eax
     24a:	03 45 ec             	add    -0x14(%ebp),%eax
     24d:	d1 f8                	sar    %eax
     24f:	29 45 ec             	sub    %eax,-0x14(%ebp)
     252:	83 e3 10             	and    $0x10,%ebx
     255:	74 15                	je     26c <zone_watermark_ok+0x5c>
     257:	8b 45 ec             	mov    -0x14(%ebp),%eax
     25a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
     25d:	83 c0 03             	add    $0x3,%eax
     260:	85 c9                	test   %ecx,%ecx
     262:	0f 49 45 ec          	cmovns -0x14(%ebp),%eax
     266:	c1 f8 02             	sar    $0x2,%eax
     269:	29 45 ec             	sub    %eax,-0x14(%ebp)
     26c:	8b 45 08             	mov    0x8(%ebp),%eax
     26f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
     272:	8b 44 81 0c          	mov    0xc(%ecx,%eax,4),%eax
     276:	03 45 ec             	add    -0x14(%ebp),%eax
     279:	39 c2                	cmp    %eax,%edx
     27b:	76 1b                	jbe    298 <zone_watermark_ok+0x88>
     27d:	85 ff                	test   %edi,%edi
     27f:	7e 41                	jle    2c2 <zone_watermark_ok+0xb2>
     281:	8b 5d ec             	mov    -0x14(%ebp),%ebx
     284:	89 d6                	mov    %edx,%esi
     286:	89 ca                	mov    %ecx,%edx
     288:	2b b1 ac 04 00 00    	sub    0x4ac(%ecx),%esi
     28e:	31 c9                	xor    %ecx,%ecx
     290:	d1 fb                	sar    %ebx
     292:	39 de                	cmp    %ebx,%esi
     294:	7f 25                	jg     2bb <zone_watermark_ok+0xab>
     296:	66 90                	xchg   %ax,%ax
     298:	83 c4 08             	add    $0x8,%esp
     29b:	31 c0                	xor    %eax,%eax
     29d:	5b                   	pop    %ebx
     29e:	5e                   	pop    %esi
     29f:	5f                   	pop    %edi
     2a0:	5d                   	pop    %ebp
     2a1:	c3                   	ret    
     2a2:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
     2a8:	8b 82 d8 04 00 00    	mov    0x4d8(%edx),%eax
     2ae:	d1 fb                	sar    %ebx
     2b0:	83 c2 2c             	add    $0x2c,%edx
     2b3:	d3 e0                	shl    %cl,%eax
     2b5:	29 c6                	sub    %eax,%esi
     2b7:	39 de                	cmp    %ebx,%esi
     2b9:	7e dd                	jle    298 <zone_watermark_ok+0x88>
     2bb:	83 c1 01             	add    $0x1,%ecx
     2be:	39 cf                	cmp    %ecx,%edi
     2c0:	7f e6                	jg     2a8 <zone_watermark_ok+0x98>
     2c2:	83 c4 08             	add    $0x8,%esp
     2c5:	b8 01 00 00 00       	mov    $0x1,%eax
     2ca:	5b                   	pop    %ebx
     2cb:	5e                   	pop    %esi
     2cc:	5f                   	pop    %edi
     2cd:	5d                   	pop    %ebp
     2ce:	c3                   	ret    
     2cf:	90                   	nop    

000002d0 <__build_all_zonelists>:
     2d0:	55                   	push   %ebp
     2d1:	89 e5                	mov    %esp,%ebp
     2d3:	57                   	push   %edi
     2d4:	31 ff                	xor    %edi,%edi
     2d6:	56                   	push   %esi
     2d7:	be 04 00 00 00       	mov    $0x4,%esi
     2dc:	53                   	push   %ebx
     2dd:	31 db                	xor    %ebx,%ebx
     2df:	83 ec 08             	sub    $0x8,%esp
     2e2:	a1 44 20 00 00       	mov    0x2044,%eax
     2e7:	89 45 ec             	mov    %eax,-0x14(%ebp)
     2ea:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
     2f0:	83 ee 01             	sub    $0x1,%esi
     2f3:	89 f1                	mov    %esi,%ecx
     2f5:	c1 e1 0b             	shl    $0xb,%ecx
     2f8:	8b 81 98 07 00 00    	mov    0x798(%ecx),%eax
     2fe:	85 c0                	test   %eax,%eax
     300:	74 28                	je     32a <__build_all_zonelists+0x5a>
     302:	89 fa                	mov    %edi,%edx
     304:	83 c7 01             	add    $0x1,%edi
     307:	8d 81 00 00 00 00    	lea    0x0(%ecx),%eax
     30d:	81 c2 00 04 00 00    	add    $0x400,%edx
     313:	89 04 d5 04 00 00 00 	mov    %eax,0x4(,%edx,8)
     31a:	2b 81 8c 07 00 00    	sub    0x78c(%ecx),%eax
     320:	c1 f8 0b             	sar    $0xb,%eax
     323:	89 04 d5 08 00 00 00 	mov    %eax,0x8(,%edx,8)
     32a:	83 c3 01             	add    $0x1,%ebx
     32d:	83 fb 04             	cmp    $0x4,%ebx
     330:	75 be                	jne    2f0 <__build_all_zonelists+0x20>
     332:	8b 4d ec             	mov    -0x14(%ebp),%ecx
     335:	89 f8                	mov    %edi,%eax
     337:	83 c1 01             	add    $0x1,%ecx
     33a:	85 c9                	test   %ecx,%ecx
     33c:	7f 55                	jg     393 <__build_all_zonelists+0xc3>
     33e:	66 90                	xchg   %ax,%ax
     340:	85 c9                	test   %ecx,%ecx
     342:	0f 85 f0 00 00 00    	jne    438 <__build_all_zonelists+0x168>
     348:	be 04 00 00 00       	mov    $0x4,%esi
     34d:	31 db                	xor    %ebx,%ebx
     34f:	83 ee 01             	sub    $0x1,%esi
     352:	89 f1                	mov    %esi,%ecx
     354:	c1 e1 0b             	shl    $0xb,%ecx
     357:	8b 81 98 07 00 00    	mov    0x798(%ecx),%eax
     35d:	85 c0                	test   %eax,%eax
     35f:	74 28                	je     389 <__build_all_zonelists+0xb9>
     361:	89 fa                	mov    %edi,%edx
     363:	83 c7 01             	add    $0x1,%edi
     366:	8d 81 00 00 00 00    	lea    0x0(%ecx),%eax
     36c:	81 c2 00 04 00 00    	add    $0x400,%edx
     372:	89 04 d5 04 00 00 00 	mov    %eax,0x4(,%edx,8)
     379:	2b 81 8c 07 00 00    	sub    0x78c(%ecx),%eax
     37f:	c1 f8 0b             	sar    $0xb,%eax
     382:	89 04 d5 08 00 00 00 	mov    %eax,0x8(,%edx,8)
     389:	83 c3 01             	add    $0x1,%ebx
     38c:	83 fb 04             	cmp    $0x4,%ebx
     38f:	75 be                	jne    34f <__build_all_zonelists+0x7f>
     391:	89 f8                	mov    %edi,%eax
     393:	8b 4d ec             	mov    -0x14(%ebp),%ecx
     396:	85 c9                	test   %ecx,%ecx
     398:	7e 6e                	jle    408 <__build_all_zonelists+0x138>
     39a:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
     3a1:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
     3a8:	8b 55 f0             	mov    -0x10(%ebp),%edx
     3ab:	85 d2                	test   %edx,%edx
     3ad:	75 4d                	jne    3fc <__build_all_zonelists+0x12c>
     3af:	89 c7                	mov    %eax,%edi
     3b1:	be 04 00 00 00       	mov    $0x4,%esi
     3b6:	31 db                	xor    %ebx,%ebx
     3b8:	83 ee 01             	sub    $0x1,%esi
     3bb:	89 f1                	mov    %esi,%ecx
     3bd:	c1 e1 0b             	shl    $0xb,%ecx
     3c0:	8b 81 98 07 00 00    	mov    0x798(%ecx),%eax
     3c6:	85 c0                	test   %eax,%eax
     3c8:	74 28                	je     3f2 <__build_all_zonelists+0x122>
     3ca:	89 fa                	mov    %edi,%edx
     3cc:	83 c7 01             	add    $0x1,%edi
     3cf:	8d 81 00 00 00 00    	lea    0x0(%ecx),%eax
     3d5:	81 c2 00 04 00 00    	add    $0x400,%edx
     3db:	89 04 d5 04 00 00 00 	mov    %eax,0x4(,%edx,8)
     3e2:	2b 81 8c 07 00 00    	sub    0x78c(%ecx),%eax
     3e8:	c1 f8 0b             	sar    $0xb,%eax
     3eb:	89 04 d5 08 00 00 00 	mov    %eax,0x8(,%edx,8)
     3f2:	83 c3 01             	add    $0x1,%ebx
     3f5:	83 fb 04             	cmp    $0x4,%ebx
     3f8:	75 be                	jne    3b8 <__build_all_zonelists+0xe8>
     3fa:	89 f8                	mov    %edi,%eax
     3fc:	83 45 f0 01          	addl   $0x1,-0x10(%ebp)
     400:	8b 55 f0             	mov    -0x10(%ebp),%edx
     403:	39 55 ec             	cmp    %edx,-0x14(%ebp)
     406:	7f a0                	jg     3a8 <__build_all_zonelists+0xd8>
     408:	05 00 04 00 00       	add    $0x400,%eax
     40d:	c7 04 c5 04 00 00 00 	movl   $0x0,0x4(,%eax,8)
     414:	00 00 00 00 
     418:	c7 04 c5 08 00 00 00 	movl   $0x0,0x8(,%eax,8)
     41f:	00 00 00 00 
     423:	31 c0                	xor    %eax,%eax
     425:	c7 05 00 20 00 00 00 	movl   $0x0,0x2000
     42c:	00 00 00 
     42f:	83 c4 08             	add    $0x8,%esp
     432:	5b                   	pop    %ebx
     433:	5e                   	pop    %esi
     434:	5f                   	pop    %edi
     435:	5d                   	pop    %ebp
     436:	c3                   	ret    
     437:	90                   	nop    
     438:	83 c1 01             	add    $0x1,%ecx
     43b:	e9 00 ff ff ff       	jmp    340 <__build_all_zonelists+0x70>

00000440 <set_pageblock_flags_group>:
     440:	55                   	push   %ebp
     441:	89 e5                	mov    %esp,%ebp
     443:	57                   	push   %edi
     444:	8b 7d 08             	mov    0x8(%ebp),%edi
     447:	56                   	push   %esi
     448:	89 d6                	mov    %edx,%esi
     44a:	53                   	push   %ebx
     44b:	8b 10                	mov    (%eax),%edx
     44d:	2b 05 00 00 00 00    	sub    0x0,%eax
     453:	c1 ea 1e             	shr    $0x1e,%edx
     456:	c1 e2 0b             	shl    $0xb,%edx
     459:	81 c2 00 00 00 00    	add    $0x0,%edx
     45f:	c1 f8 05             	sar    $0x5,%eax
     462:	8b 9a 68 06 00 00    	mov    0x668(%edx),%ebx
     468:	2b 82 90 07 00 00    	sub    0x790(%edx),%eax
     46e:	c1 e8 09             	shr    $0x9,%eax
     471:	39 f9                	cmp    %edi,%ecx
     473:	8d 04 40             	lea    (%eax,%eax,2),%eax
     476:	7f 30                	jg     4a8 <set_pageblock_flags_group+0x68>
     478:	8d 14 08             	lea    (%eax,%ecx,1),%edx
     47b:	b8 01 00 00 00       	mov    $0x1,%eax
     480:	eb 15                	jmp    497 <set_pageblock_flags_group+0x57>
     482:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
     488:	0f ab 13             	bts    %edx,(%ebx)
     48b:	83 c1 01             	add    $0x1,%ecx
     48e:	83 c2 01             	add    $0x1,%edx
     491:	39 cf                	cmp    %ecx,%edi
     493:	7c 13                	jl     4a8 <set_pageblock_flags_group+0x68>
     495:	01 c0                	add    %eax,%eax
     497:	85 f0                	test   %esi,%eax
     499:	75 ed                	jne    488 <set_pageblock_flags_group+0x48>
     49b:	0f b3 13             	btr    %edx,(%ebx)
     49e:	83 c1 01             	add    $0x1,%ecx
     4a1:	83 c2 01             	add    $0x1,%edx
     4a4:	39 cf                	cmp    %ecx,%edi
     4a6:	7d ed                	jge    495 <set_pageblock_flags_group+0x55>
     4a8:	5b                   	pop    %ebx
     4a9:	5e                   	pop    %esi
     4aa:	5f                   	pop    %edi
     4ab:	5d                   	pop    %ebp
     4ac:	c3                   	ret    
     4ad:	8d 76 00             	lea    0x0(%esi),%esi

000004b0 <calculate_totalreserve_pages>:
     4b0:	55                   	push   %ebp
     4b1:	89 e5                	mov    %esp,%ebp
     4b3:	57                   	push   %edi
     4b4:	56                   	push   %esi
     4b5:	53                   	push   %ebx
     4b6:	83 ec 08             	sub    $0x8,%esp
     4b9:	e8 fc ff ff ff       	call   4ba <calculate_totalreserve_pages+0xa>
     4be:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
     4c5:	85 c0                	test   %eax,%eax
     4c7:	89 c6                	mov    %eax,%esi
     4c9:	74 64                	je     52f <calculate_totalreserve_pages+0x7f>
     4cb:	90                   	nop    
     4cc:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
     4d0:	31 c9                	xor    %ecx,%ecx
     4d2:	31 ff                	xor    %edi,%edi
     4d4:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
     4db:	31 d2                	xor    %edx,%edx
     4dd:	83 f9 03             	cmp    $0x3,%ecx
     4e0:	77 19                	ja     4fb <calculate_totalreserve_pages+0x4b>
     4e2:	89 fb                	mov    %edi,%ebx
     4e4:	c1 e3 09             	shl    $0x9,%ebx
     4e7:	8d 04 0b             	lea    (%ebx,%ecx,1),%eax
     4ea:	8b 44 86 0c          	mov    0xc(%esi,%eax,4),%eax
     4ee:	39 c2                	cmp    %eax,%edx
     4f0:	0f 42 d0             	cmovb  %eax,%edx
     4f3:	83 c1 01             	add    $0x1,%ecx
     4f6:	83 f9 03             	cmp    $0x3,%ecx
     4f9:	76 ec                	jbe    4e7 <calculate_totalreserve_pages+0x37>
     4fb:	89 f8                	mov    %edi,%eax
     4fd:	c1 e0 0b             	shl    $0xb,%eax
     500:	03 54 30 08          	add    0x8(%eax,%esi,1),%edx
     504:	8b 84 06 98 07 00 00 	mov    0x798(%esi,%eax,1),%eax
     50b:	39 c2                	cmp    %eax,%edx
     50d:	0f 46 c2             	cmovbe %edx,%eax
     510:	83 c7 01             	add    $0x1,%edi
     513:	83 45 f0 01          	addl   $0x1,-0x10(%ebp)
     517:	89 f9                	mov    %edi,%ecx
     519:	01 45 ec             	add    %eax,-0x14(%ebp)
     51c:	83 7d f0 04          	cmpl   $0x4,-0x10(%ebp)
     520:	75 b9                	jne    4db <calculate_totalreserve_pages+0x2b>
     522:	89 f0                	mov    %esi,%eax
     524:	e8 fc ff ff ff       	call   525 <calculate_totalreserve_pages+0x75>
     529:	85 c0                	test   %eax,%eax
     52b:	89 c6                	mov    %eax,%esi
     52d:	75 a1                	jne    4d0 <calculate_totalreserve_pages+0x20>
     52f:	8b 45 ec             	mov    -0x14(%ebp),%eax
     532:	a3 00 00 00 00       	mov    %eax,0x0
     537:	83 c4 08             	add    $0x8,%esp
     53a:	5b                   	pop    %ebx
     53b:	5e                   	pop    %esi
     53c:	5f                   	pop    %edi
     53d:	5d                   	pop    %ebp
     53e:	c3                   	ret    
     53f:	90                   	nop    

00000540 <setup_per_zone_lowmem_reserve>:
     540:	55                   	push   %ebp
     541:	89 e5                	mov    %esp,%ebp
     543:	57                   	push   %edi
     544:	56                   	push   %esi
     545:	53                   	push   %ebx
     546:	83 ec 0c             	sub    $0xc,%esp
     549:	e8 fc ff ff ff       	call   54a <setup_per_zone_lowmem_reserve+0xa>
     54e:	85 c0                	test   %eax,%eax
     550:	89 c6                	mov    %eax,%esi
     552:	0f 84 91 00 00 00    	je     5e9 <setup_per_zone_lowmem_reserve+0xa9>
     558:	31 ff                	xor    %edi,%edi
     55a:	89 f8                	mov    %edi,%eax
     55c:	c1 e0 0b             	shl    $0xb,%eax
     55f:	85 ff                	test   %edi,%edi
     561:	8b 9c 06 98 07 00 00 	mov    0x798(%esi,%eax,1),%ebx
     568:	8d 04 b8             	lea    (%eax,%edi,4),%eax
     56b:	c7 44 30 0c 00 00 00 	movl   $0x0,0xc(%eax,%esi,1)
     572:	00 
     573:	0f 84 7d 00 00 00    	je     5f6 <setup_per_zone_lowmem_reserve+0xb6>
     579:	89 f9                	mov    %edi,%ecx
     57b:	eb 2d                	jmp    5aa <setup_per_zone_lowmem_reserve+0x6a>
     57d:	8d 76 00             	lea    0x0(%esi),%esi
     580:	89 c8                	mov    %ecx,%eax
     582:	31 d2                	xor    %edx,%edx
     584:	c1 e0 09             	shl    $0x9,%eax
     587:	01 f8                	add    %edi,%eax
     589:	89 45 e8             	mov    %eax,-0x18(%ebp)
     58c:	89 d8                	mov    %ebx,%eax
     58e:	f7 75 ec             	divl   -0x14(%ebp)
     591:	8b 55 e8             	mov    -0x18(%ebp),%edx
     594:	89 44 96 0c          	mov    %eax,0xc(%esi,%edx,4)
     598:	89 c8                	mov    %ecx,%eax
     59a:	c1 e0 0b             	shl    $0xb,%eax
     59d:	85 c9                	test   %ecx,%ecx
     59f:	8b 84 06 98 07 00 00 	mov    0x798(%esi,%eax,1),%eax
     5a6:	74 28                	je     5d0 <setup_per_zone_lowmem_reserve+0x90>
     5a8:	01 c3                	add    %eax,%ebx
     5aa:	83 e9 01             	sub    $0x1,%ecx
     5ad:	8b 04 8d 00 00 00 00 	mov    0x0(,%ecx,4),%eax
     5b4:	85 c0                	test   %eax,%eax
     5b6:	89 45 ec             	mov    %eax,-0x14(%ebp)
     5b9:	7f c5                	jg     580 <setup_per_zone_lowmem_reserve+0x40>
     5bb:	c7 04 8d 00 00 00 00 	movl   $0x1,0x0(,%ecx,4)
     5c2:	01 00 00 00 
     5c6:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
     5cd:	eb b1                	jmp    580 <setup_per_zone_lowmem_reserve+0x40>
     5cf:	90                   	nop    
     5d0:	83 c7 01             	add    $0x1,%edi
     5d3:	83 ff 03             	cmp    $0x3,%edi
     5d6:	76 82                	jbe    55a <setup_per_zone_lowmem_reserve+0x1a>
     5d8:	89 f0                	mov    %esi,%eax
     5da:	e8 fc ff ff ff       	call   5db <setup_per_zone_lowmem_reserve+0x9b>
     5df:	85 c0                	test   %eax,%eax
     5e1:	89 c6                	mov    %eax,%esi
     5e3:	0f 85 6f ff ff ff    	jne    558 <setup_per_zone_lowmem_reserve+0x18>
     5e9:	e8 c2 fe ff ff       	call   4b0 <calculate_totalreserve_pages>
     5ee:	83 c4 0c             	add    $0xc,%esp
     5f1:	5b                   	pop    %ebx
     5f2:	5e                   	pop    %esi
     5f3:	5f                   	pop    %edi
     5f4:	5d                   	pop    %ebp
     5f5:	c3                   	ret    
     5f6:	bf 01 00 00 00       	mov    $0x1,%edi
     5fb:	e9 5a ff ff ff       	jmp    55a <setup_per_zone_lowmem_reserve+0x1a>

00000600 <get_pageblock_flags_group>:
     600:	55                   	push   %ebp
     601:	89 e5                	mov    %esp,%ebp
     603:	57                   	push   %edi
     604:	89 d7                	mov    %edx,%edi
     606:	56                   	push   %esi
     607:	31 f6                	xor    %esi,%esi
     609:	53                   	push   %ebx
     60a:	83 ec 08             	sub    $0x8,%esp
     60d:	89 4d ec             	mov    %ecx,-0x14(%ebp)
     610:	8b 10                	mov    (%eax),%edx
     612:	2b 05 00 00 00 00    	sub    0x0,%eax
     618:	c1 ea 1e             	shr    $0x1e,%edx
     61b:	c1 e2 0b             	shl    $0xb,%edx
     61e:	81 c2 00 00 00 00    	add    $0x0,%edx
     624:	8b 8a 68 06 00 00    	mov    0x668(%edx),%ecx
     62a:	c1 f8 05             	sar    $0x5,%eax
     62d:	89 4d f0             	mov    %ecx,-0x10(%ebp)
     630:	2b 82 90 07 00 00    	sub    0x790(%edx),%eax
     636:	c1 e8 09             	shr    $0x9,%eax
     639:	3b 7d ec             	cmp    -0x14(%ebp),%edi
     63c:	8d 04 40             	lea    (%eax,%eax,2),%eax
     63f:	7f 2d                	jg     66e <get_pageblock_flags_group+0x6e>
     641:	8d 1c 38             	lea    (%eax,%edi,1),%ebx
     644:	b9 01 00 00 00       	mov    $0x1,%ecx
     649:	eb 07                	jmp    652 <get_pageblock_flags_group+0x52>
     64b:	90                   	nop    
     64c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
     650:	01 c9                	add    %ecx,%ecx
     652:	8b 55 f0             	mov    -0x10(%ebp),%edx
     655:	0f a3 1a             	bt     %ebx,(%edx)
     658:	19 c0                	sbb    %eax,%eax
     65a:	89 f2                	mov    %esi,%edx
     65c:	09 ca                	or     %ecx,%edx
     65e:	85 c0                	test   %eax,%eax
     660:	0f 45 f2             	cmovne %edx,%esi
     663:	83 c7 01             	add    $0x1,%edi
     666:	83 c3 01             	add    $0x1,%ebx
     669:	39 7d ec             	cmp    %edi,-0x14(%ebp)
     66c:	7d e2                	jge    650 <get_pageblock_flags_group+0x50>
     66e:	83 c4 08             	add    $0x8,%esp
     671:	89 f0                	mov    %esi,%eax
     673:	5b                   	pop    %ebx
     674:	5e                   	pop    %esi
     675:	5f                   	pop    %edi
     676:	5d                   	pop    %ebp
     677:	c3                   	ret    
     678:	90                   	nop    
     679:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi

00000680 <unset_migratetype_isolate>:
     680:	55                   	push   %ebp
     681:	89 e5                	mov    %esp,%ebp
     683:	83 ec 14             	sub    $0x14,%esp
     686:	89 5d f4             	mov    %ebx,-0xc(%ebp)
     689:	89 c3                	mov    %eax,%ebx
     68b:	89 75 f8             	mov    %esi,-0x8(%ebp)
     68e:	89 7d fc             	mov    %edi,-0x4(%ebp)
     691:	8b 00                	mov    (%eax),%eax
     693:	c1 e8 1e             	shr    $0x1e,%eax
     696:	c1 e0 0b             	shl    $0xb,%eax
     699:	05 00 00 00 00       	add    $0x0,%eax
     69e:	89 c6                	mov    %eax,%esi
     6a0:	81 c6 80 04 00 00    	add    $0x480,%esi
     6a6:	89 45 f0             	mov    %eax,-0x10(%ebp)
     6a9:	89 f0                	mov    %esi,%eax
     6ab:	e8 fc ff ff ff       	call   6ac <unset_migratetype_isolate+0x2c>
     6b0:	89 c7                	mov    %eax,%edi
     6b2:	a1 00 00 00 00       	mov    0x0,%eax
     6b7:	85 c0                	test   %eax,%eax
     6b9:	74 1d                	je     6d8 <unset_migratetype_isolate+0x58>
     6bb:	89 fa                	mov    %edi,%edx
     6bd:	89 f0                	mov    %esi,%eax
     6bf:	e8 fc ff ff ff       	call   6c0 <unset_migratetype_isolate+0x40>
     6c4:	8b 5d f4             	mov    -0xc(%ebp),%ebx
     6c7:	8b 75 f8             	mov    -0x8(%ebp),%esi
     6ca:	8b 7d fc             	mov    -0x4(%ebp),%edi
     6cd:	89 ec                	mov    %ebp,%esp
     6cf:	5d                   	pop    %ebp
     6d0:	c3                   	ret    
     6d1:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
     6d8:	31 d2                	xor    %edx,%edx
     6da:	b9 02 00 00 00       	mov    $0x2,%ecx
     6df:	89 d8                	mov    %ebx,%eax
     6e1:	e8 fc ff ff ff       	call   6e2 <unset_migratetype_isolate+0x62>
     6e6:	83 f8 04             	cmp    $0x4,%eax
     6e9:	75 d0                	jne    6bb <unset_migratetype_isolate+0x3b>
     6eb:	31 c9                	xor    %ecx,%ecx
     6ed:	89 d8                	mov    %ebx,%eax
     6ef:	ba 02 00 00 00       	mov    $0x2,%edx
     6f4:	c7 04 24 02 00 00 00 	movl   $0x2,(%esp)
     6fb:	e8 fc ff ff ff       	call   6fc <unset_migratetype_isolate+0x7c>
     700:	8b 45 f0             	mov    -0x10(%ebp),%eax
     703:	b9 02 00 00 00       	mov    $0x2,%ecx
     708:	89 da                	mov    %ebx,%edx
     70a:	e8 c1 f9 ff ff       	call   d0 <move_freepages_block>
     70f:	eb aa                	jmp    6bb <unset_migratetype_isolate+0x3b>
     711:	eb 0d                	jmp    720 <setup_per_zone_pages_min>
     713:	90                   	nop    
     714:	90                   	nop    
     715:	90                   	nop    
     716:	90                   	nop    
     717:	90                   	nop    
     718:	90                   	nop    
     719:	90                   	nop    
     71a:	90                   	nop    
     71b:	90                   	nop    
     71c:	90                   	nop    
     71d:	90                   	nop    
     71e:	90                   	nop    
     71f:	90                   	nop    

00000720 <setup_per_zone_pages_min>:
     720:	55                   	push   %ebp
     721:	89 e5                	mov    %esp,%ebp
     723:	57                   	push   %edi
     724:	56                   	push   %esi
     725:	53                   	push   %ebx
     726:	83 ec 20             	sub    $0x20,%esp
     729:	8b 1d 00 00 00 00    	mov    0x0,%ebx
     72f:	e8 fc ff ff ff       	call   730 <setup_per_zone_pages_min+0x10>
     734:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
     73b:	85 c0                	test   %eax,%eax
     73d:	75 1b                	jne    75a <setup_per_zone_pages_min+0x3a>
     73f:	eb 43                	jmp    784 <setup_per_zone_pages_min+0x64>
     741:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
     748:	8b 90 98 07 00 00    	mov    0x798(%eax),%edx
     74e:	01 55 e0             	add    %edx,-0x20(%ebp)
     751:	e8 fc ff ff ff       	call   752 <setup_per_zone_pages_min+0x32>
     756:	85 c0                	test   %eax,%eax
     758:	74 2a                	je     784 <setup_per_zone_pages_min+0x64>
     75a:	89 c2                	mov    %eax,%edx
     75c:	2b 90 8c 07 00 00    	sub    0x78c(%eax),%edx
     762:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
     768:	74 e7                	je     751 <setup_per_zone_pages_min+0x31>
     76a:	81 fa 00 18 00 00    	cmp    $0x1800,%edx
     770:	75 d6                	jne    748 <setup_per_zone_pages_min+0x28>
     772:	83 3d 00 00 00 00 02 	cmpl   $0x2,0x0
     779:	75 cd                	jne    748 <setup_per_zone_pages_min+0x28>
     77b:	e8 fc ff ff ff       	call   77c <setup_per_zone_pages_min+0x5c>
     780:	85 c0                	test   %eax,%eax
     782:	75 d6                	jne    75a <setup_per_zone_pages_min+0x3a>
     784:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
     788:	e8 fc ff ff ff       	call   789 <setup_per_zone_pages_min+0x69>
     78d:	85 c0                	test   %eax,%eax
     78f:	89 45 f0             	mov    %eax,-0x10(%ebp)
     792:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
     798:	0f 84 01 01 00 00    	je     89f <setup_per_zone_pages_min+0x17f>
     79e:	c1 fb 02             	sar    $0x2,%ebx
     7a1:	89 5d d8             	mov    %ebx,-0x28(%ebp)
     7a4:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
     7a8:	8b 45 f0             	mov    -0x10(%ebp),%eax
     7ab:	05 80 04 00 00       	add    $0x480,%eax
     7b0:	89 45 dc             	mov    %eax,-0x24(%ebp)
     7b3:	e8 fc ff ff ff       	call   7b4 <setup_per_zone_pages_min+0x94>
     7b8:	8b 55 f0             	mov    -0x10(%ebp),%edx
     7bb:	31 c9                	xor    %ecx,%ecx
     7bd:	89 45 e4             	mov    %eax,-0x1c(%ebp)
     7c0:	8b 45 d8             	mov    -0x28(%ebp),%eax
     7c3:	8b b2 98 07 00 00    	mov    0x798(%edx),%esi
     7c9:	f7 e6                	mul    %esi
     7cb:	85 d2                	test   %edx,%edx
     7cd:	89 d3                	mov    %edx,%ebx
     7cf:	89 c7                	mov    %eax,%edi
     7d1:	74 0b                	je     7de <setup_per_zone_pages_min+0xbe>
     7d3:	89 d0                	mov    %edx,%eax
     7d5:	31 d2                	xor    %edx,%edx
     7d7:	f7 75 e0             	divl   -0x20(%ebp)
     7da:	89 d1                	mov    %edx,%ecx
     7dc:	89 c3                	mov    %eax,%ebx
     7de:	89 ca                	mov    %ecx,%edx
     7e0:	89 f8                	mov    %edi,%eax
     7e2:	f7 75 e0             	divl   -0x20(%ebp)
     7e5:	89 da                	mov    %ebx,%edx
     7e7:	89 c1                	mov    %eax,%ecx
     7e9:	8b 45 f0             	mov    -0x10(%ebp),%eax
     7ec:	89 d3                	mov    %edx,%ebx
     7ee:	2b 80 8c 07 00 00    	sub    0x78c(%eax),%eax
     7f4:	3d 00 10 00 00       	cmp    $0x1000,%eax
     7f9:	0f 84 51 01 00 00    	je     950 <setup_per_zone_pages_min+0x230>
     7ff:	3d 00 18 00 00       	cmp    $0x1800,%eax
     804:	0f 84 36 01 00 00    	je     940 <setup_per_zone_pages_min+0x220>
     80a:	8b 75 f0             	mov    -0x10(%ebp),%esi
     80d:	89 0e                	mov    %ecx,(%esi)
     80f:	8b 75 f0             	mov    -0x10(%ebp),%esi
     812:	89 c8                	mov    %ecx,%eax
     814:	0f ac d8 02          	shrd   $0x2,%ebx,%eax
     818:	0f ac d9 01          	shrd   $0x1,%ebx,%ecx
     81c:	03 06                	add    (%esi),%eax
     81e:	8b 9e 90 07 00 00    	mov    0x790(%esi),%ebx
     824:	89 46 04             	mov    %eax,0x4(%esi)
     827:	8b 06                	mov    (%esi),%eax
     829:	01 c8                	add    %ecx,%eax
     82b:	89 46 08             	mov    %eax,0x8(%esi)
     82e:	8b 86 94 07 00 00    	mov    0x794(%esi),%eax
     834:	01 d8                	add    %ebx,%eax
     836:	89 45 ec             	mov    %eax,-0x14(%ebp)
     839:	8b 06                	mov    (%esi),%eax
     83b:	3b 5d ec             	cmp    -0x14(%ebp),%ebx
     83e:	73 41                	jae    881 <setup_per_zone_pages_min+0x161>
     840:	05 ff 01 00 00       	add    $0x1ff,%eax
     845:	89 de                	mov    %ebx,%esi
     847:	c1 e8 09             	shr    $0x9,%eax
     84a:	89 45 e8             	mov    %eax,-0x18(%ebp)
     84d:	c1 e6 05             	shl    $0x5,%esi
     850:	39 1d 00 00 00 00    	cmp    %ebx,0x0
     856:	76 18                	jbe    870 <setup_per_zone_pages_min+0x150>
     858:	89 f7                	mov    %esi,%edi
     85a:	03 3d 00 00 00 00    	add    0x0,%edi
     860:	8b 07                	mov    (%edi),%eax
     862:	f6 c4 04             	test   $0x4,%ah
     865:	75 09                	jne    870 <setup_per_zone_pages_min+0x150>
     867:	a1 00 00 00 00       	mov    0x0,%eax
     86c:	85 c0                	test   %eax,%eax
     86e:	74 40                	je     8b0 <setup_per_zone_pages_min+0x190>
     870:	81 c3 00 02 00 00    	add    $0x200,%ebx
     876:	81 c6 00 40 00 00    	add    $0x4000,%esi
     87c:	39 5d ec             	cmp    %ebx,-0x14(%ebp)
     87f:	77 cf                	ja     850 <setup_per_zone_pages_min+0x130>
     881:	8b 55 e4             	mov    -0x1c(%ebp),%edx
     884:	8b 45 dc             	mov    -0x24(%ebp),%eax
     887:	e8 fc ff ff ff       	call   888 <setup_per_zone_pages_min+0x168>
     88c:	8b 45 f0             	mov    -0x10(%ebp),%eax
     88f:	e8 fc ff ff ff       	call   890 <setup_per_zone_pages_min+0x170>
     894:	85 c0                	test   %eax,%eax
     896:	89 45 f0             	mov    %eax,-0x10(%ebp)
     899:	0f 85 09 ff ff ff    	jne    7a8 <setup_per_zone_pages_min+0x88>
     89f:	e8 0c fc ff ff       	call   4b0 <calculate_totalreserve_pages>
     8a4:	83 c4 20             	add    $0x20,%esp
     8a7:	5b                   	pop    %ebx
     8a8:	5e                   	pop    %esi
     8a9:	5f                   	pop    %edi
     8aa:	5d                   	pop    %ebp
     8ab:	c3                   	ret    
     8ac:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
     8b0:	31 d2                	xor    %edx,%edx
     8b2:	b9 02 00 00 00       	mov    $0x2,%ecx
     8b7:	89 f8                	mov    %edi,%eax
     8b9:	e8 fc ff ff ff       	call   8ba <setup_per_zone_pages_min+0x19a>
     8be:	89 c1                	mov    %eax,%ecx
     8c0:	8b 45 e8             	mov    -0x18(%ebp),%eax
     8c3:	85 c0                	test   %eax,%eax
     8c5:	0f 95 c0             	setne  %al
     8c8:	83 f9 03             	cmp    $0x3,%ecx
     8cb:	0f 94 c2             	sete   %dl
     8ce:	84 c0                	test   %al,%al
     8d0:	75 2e                	jne    900 <setup_per_zone_pages_min+0x1e0>
     8d2:	84 d2                	test   %dl,%dl
     8d4:	74 9a                	je     870 <setup_per_zone_pages_min+0x150>
     8d6:	31 c9                	xor    %ecx,%ecx
     8d8:	89 f8                	mov    %edi,%eax
     8da:	ba 02 00 00 00       	mov    $0x2,%edx
     8df:	c7 04 24 02 00 00 00 	movl   $0x2,(%esp)
     8e6:	e8 fc ff ff ff       	call   8e7 <setup_per_zone_pages_min+0x1c7>
     8eb:	8b 45 f0             	mov    -0x10(%ebp),%eax
     8ee:	b9 02 00 00 00       	mov    $0x2,%ecx
     8f3:	89 fa                	mov    %edi,%edx
     8f5:	e8 d6 f7 ff ff       	call   d0 <move_freepages_block>
     8fa:	e9 71 ff ff ff       	jmp    870 <setup_per_zone_pages_min+0x150>
     8ff:	90                   	nop    
     900:	84 d2                	test   %dl,%dl
     902:	75 2e                	jne    932 <setup_per_zone_pages_min+0x212>
     904:	83 f9 02             	cmp    $0x2,%ecx
     907:	90                   	nop    
     908:	0f 85 62 ff ff ff    	jne    870 <setup_per_zone_pages_min+0x150>
     90e:	30 c9                	xor    %cl,%cl
     910:	ba 03 00 00 00       	mov    $0x3,%edx
     915:	89 f8                	mov    %edi,%eax
     917:	c7 04 24 02 00 00 00 	movl   $0x2,(%esp)
     91e:	e8 fc ff ff ff       	call   91f <setup_per_zone_pages_min+0x1ff>
     923:	8b 45 f0             	mov    -0x10(%ebp),%eax
     926:	b9 03 00 00 00       	mov    $0x3,%ecx
     92b:	89 fa                	mov    %edi,%edx
     92d:	e8 9e f7 ff ff       	call   d0 <move_freepages_block>
     932:	83 6d e8 01          	subl   $0x1,-0x18(%ebp)
     936:	e9 35 ff ff ff       	jmp    870 <setup_per_zone_pages_min+0x150>
     93b:	90                   	nop    
     93c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
     940:	83 3d 00 00 00 00 02 	cmpl   $0x2,0x0
     947:	0f 85 bd fe ff ff    	jne    80a <setup_per_zone_pages_min+0xea>
     94d:	8d 76 00             	lea    0x0(%esi),%esi
     950:	89 f0                	mov    %esi,%eax
     952:	c1 e8 0a             	shr    $0xa,%eax
     955:	83 f8 1f             	cmp    $0x1f,%eax
     958:	7f 16                	jg     970 <setup_per_zone_pages_min+0x250>
     95a:	b8 20 00 00 00       	mov    $0x20,%eax
     95f:	89 c2                	mov    %eax,%edx
     961:	8b 75 f0             	mov    -0x10(%ebp),%esi
     964:	89 16                	mov    %edx,(%esi)
     966:	e9 a4 fe ff ff       	jmp    80f <setup_per_zone_pages_min+0xef>
     96b:	90                   	nop    
     96c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
     970:	3d 80 00 00 00       	cmp    $0x80,%eax
     975:	ba 80 00 00 00       	mov    $0x80,%edx
     97a:	7f e5                	jg     961 <setup_per_zone_pages_min+0x241>
     97c:	eb e1                	jmp    95f <setup_per_zone_pages_min+0x23f>
     97e:	66 90                	xchg   %ax,%ax

00000980 <lowmem_reserve_ratio_sysctl_handler>:
     980:	55                   	push   %ebp
     981:	89 e5                	mov    %esp,%ebp
     983:	53                   	push   %ebx
     984:	83 ec 0c             	sub    $0xc,%esp
     987:	8b 5d 10             	mov    0x10(%ebp),%ebx
     98a:	89 5c 24 08          	mov    %ebx,0x8(%esp)
     98e:	8b 5d 0c             	mov    0xc(%ebp),%ebx
     991:	89 5c 24 04          	mov    %ebx,0x4(%esp)
     995:	8b 5d 08             	mov    0x8(%ebp),%ebx
     998:	89 1c 24             	mov    %ebx,(%esp)
     99b:	e8 fc ff ff ff       	call   99c <lowmem_reserve_ratio_sysctl_handler+0x1c>
     9a0:	e8 9b fb ff ff       	call   540 <setup_per_zone_lowmem_reserve>
     9a5:	31 c0                	xor    %eax,%eax
     9a7:	83 c4 0c             	add    $0xc,%esp
     9aa:	5b                   	pop    %ebx
     9ab:	5d                   	pop    %ebp
     9ac:	c3                   	ret    
     9ad:	8d 76 00             	lea    0x0(%esi),%esi

000009b0 <percpu_pagelist_fraction_sysctl_handler>:
     9b0:	55                   	push   %ebp
     9b1:	89 e5                	mov    %esp,%ebp
     9b3:	57                   	push   %edi
     9b4:	56                   	push   %esi
     9b5:	53                   	push   %ebx
     9b6:	89 d3                	mov    %edx,%ebx
     9b8:	83 ec 0c             	sub    $0xc,%esp
     9bb:	8b 55 10             	mov    0x10(%ebp),%edx
     9be:	89 54 24 08          	mov    %edx,0x8(%esp)
     9c2:	8b 55 0c             	mov    0xc(%ebp),%edx
     9c5:	89 54 24 04          	mov    %edx,0x4(%esp)
     9c9:	8b 55 08             	mov    0x8(%ebp),%edx
     9cc:	89 14 24             	mov    %edx,(%esp)
     9cf:	89 da                	mov    %ebx,%edx
     9d1:	e8 fc ff ff ff       	call   9d2 <percpu_pagelist_fraction_sysctl_handler+0x22>
     9d6:	85 db                	test   %ebx,%ebx
     9d8:	0f 84 98 00 00 00    	je     a76 <percpu_pagelist_fraction_sysctl_handler+0xc6>
     9de:	83 f8 ea             	cmp    $0xffffffea,%eax
     9e1:	0f 84 8f 00 00 00    	je     a76 <percpu_pagelist_fraction_sysctl_handler+0xc6>
     9e7:	90                   	nop    
     9e8:	e8 fc ff ff ff       	call   9e9 <percpu_pagelist_fraction_sysctl_handler+0x39>
     9ed:	85 c0                	test   %eax,%eax
     9ef:	89 c7                	mov    %eax,%edi
     9f1:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
     9f8:	74 7a                	je     a74 <percpu_pagelist_fraction_sysctl_handler+0xc4>
     9fa:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
     a00:	31 f6                	xor    %esi,%esi
     a02:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
     a08:	eb 42                	jmp    a4c <percpu_pagelist_fraction_sysctl_handler+0x9c>
     a0a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
     a10:	8b 8f 98 07 00 00    	mov    0x798(%edi),%ecx
     a16:	31 d2                	xor    %edx,%edx
     a18:	8d 73 01             	lea    0x1(%ebx),%esi
     a1b:	89 f3                	mov    %esi,%ebx
     a1d:	c1 e3 07             	shl    $0x7,%ebx
     a20:	89 c8                	mov    %ecx,%eax
     a22:	f7 35 00 00 00 00    	divl   0x0
     a28:	89 c2                	mov    %eax,%edx
     a2a:	89 c1                	mov    %eax,%ecx
     a2c:	c1 ea 02             	shr    $0x2,%edx
     a2f:	85 d2                	test   %edx,%edx
     a31:	89 44 3b 04          	mov    %eax,0x4(%ebx,%edi,1)
     a35:	b8 01 00 00 00       	mov    $0x1,%eax
     a3a:	0f 44 d0             	cmove  %eax,%edx
     a3d:	b0 60                	mov    $0x60,%al
     a3f:	81 f9 84 01 00 00    	cmp    $0x184,%ecx
     a45:	0f 42 c2             	cmovb  %edx,%eax
     a48:	89 44 3b 08          	mov    %eax,0x8(%ebx,%edi,1)
     a4c:	a1 00 00 00 00       	mov    0x0,%eax
     a51:	89 f1                	mov    %esi,%ecx
     a53:	ba 08 00 00 00       	mov    $0x8,%edx
     a58:	e8 fc ff ff ff       	call   a59 <percpu_pagelist_fraction_sysctl_handler+0xa9>
     a5d:	39 05 00 00 00 00    	cmp    %eax,0x0
     a63:	89 c3                	mov    %eax,%ebx
     a65:	77 a9                	ja     a10 <percpu_pagelist_fraction_sysctl_handler+0x60>
     a67:	89 f8                	mov    %edi,%eax
     a69:	e8 fc ff ff ff       	call   a6a <percpu_pagelist_fraction_sysctl_handler+0xba>
     a6e:	85 c0                	test   %eax,%eax
     a70:	89 c7                	mov    %eax,%edi
     a72:	75 8c                	jne    a00 <percpu_pagelist_fraction_sysctl_handler+0x50>
     a74:	31 c0                	xor    %eax,%eax
     a76:	83 c4 0c             	add    $0xc,%esp
     a79:	5b                   	pop    %ebx
     a7a:	5e                   	pop    %esi
     a7b:	5f                   	pop    %edi
     a7c:	5d                   	pop    %ebp
     a7d:	c3                   	ret    
     a7e:	66 90                	xchg   %ax,%ax

00000a80 <min_free_kbytes_sysctl_handler>:
     a80:	55                   	push   %ebp
     a81:	89 e5                	mov    %esp,%ebp
     a83:	53                   	push   %ebx
     a84:	89 d3                	mov    %edx,%ebx
     a86:	83 ec 0c             	sub    $0xc,%esp
     a89:	8b 55 10             	mov    0x10(%ebp),%edx
     a8c:	89 54 24 08          	mov    %edx,0x8(%esp)
     a90:	8b 55 0c             	mov    0xc(%ebp),%edx
     a93:	89 54 24 04          	mov    %edx,0x4(%esp)
     a97:	8b 55 08             	mov    0x8(%ebp),%edx
     a9a:	89 14 24             	mov    %edx,(%esp)
     a9d:	89 da                	mov    %ebx,%edx
     a9f:	e8 fc ff ff ff       	call   aa0 <min_free_kbytes_sysctl_handler+0x20>
     aa4:	85 db                	test   %ebx,%ebx
     aa6:	74 05                	je     aad <min_free_kbytes_sysctl_handler+0x2d>
     aa8:	e8 fc ff ff ff       	call   aa9 <min_free_kbytes_sysctl_handler+0x29>
     aad:	83 c4 0c             	add    $0xc,%esp
     ab0:	31 c0                	xor    %eax,%eax
     ab2:	5b                   	pop    %ebx
     ab3:	5d                   	pop    %ebp
     ab4:	c3                   	ret    
     ab5:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
     ab9:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

00000ac0 <show_free_areas>:
     ac0:	55                   	push   %ebp
     ac1:	89 e5                	mov    %esp,%ebp
     ac3:	57                   	push   %edi
     ac4:	56                   	push   %esi
     ac5:	53                   	push   %ebx
     ac6:	81 ec a0 00 00 00    	sub    $0xa0,%esp
     acc:	e8 fc ff ff ff       	call   acd <show_free_areas+0xd>
     ad1:	85 c0                	test   %eax,%eax
     ad3:	89 c3                	mov    %eax,%ebx
     ad5:	74 24                	je     afb <show_free_areas+0x3b>
     ad7:	8b 3d 00 00 00 00    	mov    0x0,%edi
     add:	8d 76 00             	lea    0x0(%esi),%esi
     ae0:	8b 83 98 07 00 00    	mov    0x798(%ebx),%eax
     ae6:	85 c0                	test   %eax,%eax
     ae8:	0f 85 ba 01 00 00    	jne    ca8 <show_free_areas+0x1e8>
     aee:	89 d8                	mov    %ebx,%eax
     af0:	e8 fc ff ff ff       	call   af1 <show_free_areas+0x31>
     af5:	85 c0                	test   %eax,%eax
     af7:	89 c3                	mov    %eax,%ebx
     af9:	75 e5                	jne    ae0 <show_free_areas+0x20>
     afb:	8b 15 40 00 00 00    	mov    0x40,%edx
     b01:	8b 1d 38 00 00 00    	mov    0x38,%ebx
     b07:	8b 35 20 00 00 00    	mov    0x20,%esi
     b0d:	a1 30 00 00 00       	mov    0x30,%eax
     b12:	8b 0d 34 00 00 00    	mov    0x34,%ecx
     b18:	89 45 94             	mov    %eax,-0x6c(%ebp)
     b1b:	a1 00 00 00 00       	mov    0x0,%eax
     b20:	8b 7d 94             	mov    -0x6c(%ebp),%edi
     b23:	89 45 98             	mov    %eax,-0x68(%ebp)
     b26:	a1 3c 00 00 00       	mov    0x3c,%eax
     b2b:	89 45 bc             	mov    %eax,-0x44(%ebp)
     b2e:	a1 2c 00 00 00       	mov    0x2c,%eax
     b33:	89 45 9c             	mov    %eax,-0x64(%ebp)
     b36:	a1 28 00 00 00       	mov    0x28,%eax
     b3b:	89 45 a0             	mov    %eax,-0x60(%ebp)
     b3e:	a1 14 00 00 00       	mov    0x14,%eax
     b43:	89 45 a4             	mov    %eax,-0x5c(%ebp)
     b46:	a1 0c 00 00 00       	mov    0xc,%eax
     b4b:	89 45 a8             	mov    %eax,-0x58(%ebp)
     b4e:	a1 04 00 00 00       	mov    0x4,%eax
     b53:	89 45 c0             	mov    %eax,-0x40(%ebp)
     b56:	a1 10 00 00 00       	mov    0x10,%eax
     b5b:	89 45 c4             	mov    %eax,-0x3c(%ebp)
     b5e:	a1 08 00 00 00       	mov    0x8,%eax
     b63:	89 45 ac             	mov    %eax,-0x54(%ebp)
     b66:	31 c0                	xor    %eax,%eax
     b68:	85 d2                	test   %edx,%edx
     b6a:	0f 48 d0             	cmovs  %eax,%edx
     b6d:	85 db                	test   %ebx,%ebx
     b6f:	89 54 24 34          	mov    %edx,0x34(%esp)
     b73:	8b 55 94             	mov    -0x6c(%ebp),%edx
     b76:	0f 48 d8             	cmovs  %eax,%ebx
     b79:	85 f6                	test   %esi,%esi
     b7b:	0f 48 f0             	cmovs  %eax,%esi
     b7e:	85 c9                	test   %ecx,%ecx
     b80:	0f 48 c8             	cmovs  %eax,%ecx
     b83:	85 ff                	test   %edi,%edi
     b85:	0f 48 d0             	cmovs  %eax,%edx
     b88:	89 74 24 2c          	mov    %esi,0x2c(%esp)
     b8c:	8b 75 98             	mov    -0x68(%ebp),%esi
     b8f:	01 d1                	add    %edx,%ecx
     b91:	8b 55 98             	mov    -0x68(%ebp),%edx
     b94:	89 5c 24 30          	mov    %ebx,0x30(%esp)
     b98:	8b 5d bc             	mov    -0x44(%ebp),%ebx
     b9b:	89 4c 24 28          	mov    %ecx,0x28(%esp)
     b9f:	85 f6                	test   %esi,%esi
     ba1:	0f 48 d0             	cmovs  %eax,%edx
     ba4:	89 54 24 24          	mov    %edx,0x24(%esp)
     ba8:	8b 55 bc             	mov    -0x44(%ebp),%edx
     bab:	85 db                	test   %ebx,%ebx
     bad:	0f 48 d0             	cmovs  %eax,%edx
     bb0:	89 54 24 20          	mov    %edx,0x20(%esp)
     bb4:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
     bb7:	8b 55 9c             	mov    -0x64(%ebp),%edx
     bba:	8b 7d a4             	mov    -0x5c(%ebp),%edi
     bbd:	8b 75 a8             	mov    -0x58(%ebp),%esi
     bc0:	85 c9                	test   %ecx,%ecx
     bc2:	8b 5d c0             	mov    -0x40(%ebp),%ebx
     bc5:	0f 48 d0             	cmovs  %eax,%edx
     bc8:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
     bcb:	89 54 24 1c          	mov    %edx,0x1c(%esp)
     bcf:	8b 55 a0             	mov    -0x60(%ebp),%edx
     bd2:	c7 04 24 a8 02 00 00 	movl   $0x2a8,(%esp)
     bd9:	85 d2                	test   %edx,%edx
     bdb:	8b 55 a0             	mov    -0x60(%ebp),%edx
     bde:	0f 48 d0             	cmovs  %eax,%edx
     be1:	85 ff                	test   %edi,%edi
     be3:	89 54 24 18          	mov    %edx,0x18(%esp)
     be7:	8b 55 a4             	mov    -0x5c(%ebp),%edx
     bea:	0f 48 d0             	cmovs  %eax,%edx
     bed:	85 f6                	test   %esi,%esi
     bef:	89 54 24 14          	mov    %edx,0x14(%esp)
     bf3:	8b 55 a8             	mov    -0x58(%ebp),%edx
     bf6:	0f 48 d0             	cmovs  %eax,%edx
     bf9:	85 db                	test   %ebx,%ebx
     bfb:	89 54 24 10          	mov    %edx,0x10(%esp)
     bff:	8b 55 c0             	mov    -0x40(%ebp),%edx
     c02:	0f 48 d0             	cmovs  %eax,%edx
     c05:	85 c9                	test   %ecx,%ecx
     c07:	89 54 24 0c          	mov    %edx,0xc(%esp)
     c0b:	8b 55 c4             	mov    -0x3c(%ebp),%edx
     c0e:	0f 48 d0             	cmovs  %eax,%edx
     c11:	89 54 24 08          	mov    %edx,0x8(%esp)
     c15:	8b 55 ac             	mov    -0x54(%ebp),%edx
     c18:	85 d2                	test   %edx,%edx
     c1a:	0f 49 45 ac          	cmovns -0x54(%ebp),%eax
     c1e:	89 44 24 04          	mov    %eax,0x4(%esp)
     c22:	e8 fc ff ff ff       	call   c23 <show_free_areas+0x163>
     c27:	e8 fc ff ff ff       	call   c28 <show_free_areas+0x168>
     c2c:	85 c0                	test   %eax,%eax
     c2e:	89 c7                	mov    %eax,%edi
     c30:	74 21                	je     c53 <show_free_areas+0x193>
     c32:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
     c38:	8b 97 98 07 00 00    	mov    0x798(%edi),%edx
     c3e:	85 d2                	test   %edx,%edx
     c40:	0f 85 ca 00 00 00    	jne    d10 <show_free_areas+0x250>
     c46:	89 f8                	mov    %edi,%eax
     c48:	e8 fc ff ff ff       	call   c49 <show_free_areas+0x189>
     c4d:	85 c0                	test   %eax,%eax
     c4f:	89 c7                	mov    %eax,%edi
     c51:	75 e5                	jne    c38 <show_free_areas+0x178>
     c53:	e8 fc ff ff ff       	call   c54 <show_free_areas+0x194>
     c58:	85 c0                	test   %eax,%eax
     c5a:	89 c3                	mov    %eax,%ebx
     c5c:	74 1d                	je     c7b <show_free_areas+0x1bb>
     c5e:	66 90                	xchg   %ax,%ax
     c60:	8b 83 98 07 00 00    	mov    0x798(%ebx),%eax
     c66:	85 c0                	test   %eax,%eax
     c68:	0f 85 f8 01 00 00    	jne    e66 <show_free_areas+0x3a6>
     c6e:	89 d8                	mov    %ebx,%eax
     c70:	e8 fc ff ff ff       	call   c71 <show_free_areas+0x1b1>
     c75:	85 c0                	test   %eax,%eax
     c77:	89 c3                	mov    %eax,%ebx
     c79:	75 e5                	jne    c60 <show_free_areas+0x1a0>
     c7b:	8b 15 24 00 00 00    	mov    0x24,%edx
     c81:	31 c0                	xor    %eax,%eax
     c83:	c7 04 24 c5 00 00 00 	movl   $0xc5,(%esp)
     c8a:	85 d2                	test   %edx,%edx
     c8c:	0f 49 c2             	cmovns %edx,%eax
     c8f:	89 44 24 04          	mov    %eax,0x4(%esp)
     c93:	e8 fc ff ff ff       	call   c94 <show_free_areas+0x1d4>
     c98:	e8 fc ff ff ff       	call   c99 <show_free_areas+0x1d9>
     c9d:	81 c4 a0 00 00 00    	add    $0xa0,%esp
     ca3:	5b                   	pop    %ebx
     ca4:	5e                   	pop    %esi
     ca5:	5f                   	pop    %edi
     ca6:	5d                   	pop    %ebp
     ca7:	c3                   	ret    
     ca8:	8b 83 9c 07 00 00    	mov    0x79c(%ebx),%eax
     cae:	31 f6                	xor    %esi,%esi
     cb0:	c7 04 24 7f 00 00 00 	movl   $0x7f,(%esp)
     cb7:	89 44 24 04          	mov    %eax,0x4(%esp)
     cbb:	e8 fc ff ff ff       	call   cbc <show_free_areas+0x1fc>
     cc0:	89 f1                	mov    %esi,%ecx
     cc2:	ba 08 00 00 00       	mov    $0x8,%edx
     cc7:	89 f8                	mov    %edi,%eax
     cc9:	e8 fc ff ff ff       	call   cca <show_free_areas+0x20a>
     cce:	3b 05 00 00 00 00    	cmp    0x0,%eax
     cd4:	89 c1                	mov    %eax,%ecx
     cd6:	0f 8d 12 fe ff ff    	jge    aee <show_free_areas+0x2e>
     cdc:	8d 71 01             	lea    0x1(%ecx),%esi
     cdf:	89 f2                	mov    %esi,%edx
     ce1:	c1 e2 07             	shl    $0x7,%edx
     ce4:	8b 04 1a             	mov    (%edx,%ebx,1),%eax
     ce7:	89 44 24 10          	mov    %eax,0x10(%esp)
     ceb:	8b 44 1a 08          	mov    0x8(%edx,%ebx,1),%eax
     cef:	89 44 24 0c          	mov    %eax,0xc(%esp)
     cf3:	8b 44 1a 04          	mov    0x4(%edx,%ebx,1),%eax
     cf7:	89 4c 24 04          	mov    %ecx,0x4(%esp)
     cfb:	c7 04 24 84 02 00 00 	movl   $0x284,(%esp)
     d02:	89 44 24 08          	mov    %eax,0x8(%esp)
     d06:	e8 fc ff ff ff       	call   d07 <show_free_areas+0x247>
     d0b:	eb b3                	jmp    cc0 <show_free_areas+0x200>
     d0d:	8d 76 00             	lea    0x0(%esi),%esi
     d10:	f6 87 d4 06 00 00 01 	testb  $0x1,0x6d4(%edi)
     d17:	b8 8f 00 00 00       	mov    $0x8f,%eax
     d1c:	b9 8c 00 00 00       	mov    $0x8c,%ecx
     d21:	0f 45 c8             	cmovne %eax,%ecx
     d24:	89 4d 8c             	mov    %ecx,-0x74(%ebp)
     d27:	8b 8f ec 06 00 00    	mov    0x6ec(%edi),%ecx
     d2d:	8b 9f e4 06 00 00    	mov    0x6e4(%edi),%ebx
     d33:	8b b7 e8 06 00 00    	mov    0x6e8(%edi),%esi
     d39:	8b 87 dc 06 00 00    	mov    0x6dc(%edi),%eax
     d3f:	89 45 b0             	mov    %eax,-0x50(%ebp)
     d42:	8b 87 e0 06 00 00    	mov    0x6e0(%edi),%eax
     d48:	89 45 b4             	mov    %eax,-0x4c(%ebp)
     d4b:	8b 87 d8 06 00 00    	mov    0x6d8(%edi),%eax
     d51:	89 45 b8             	mov    %eax,-0x48(%ebp)
     d54:	8b 45 8c             	mov    -0x74(%ebp),%eax
     d57:	89 44 24 34          	mov    %eax,0x34(%esp)
     d5b:	8b 87 d0 06 00 00    	mov    0x6d0(%edi),%eax
     d61:	89 44 24 30          	mov    %eax,0x30(%esp)
     d65:	8d 04 95 00 00 00 00 	lea    0x0(,%edx,4),%eax
     d6c:	31 d2                	xor    %edx,%edx
     d6e:	85 c9                	test   %ecx,%ecx
     d70:	0f 48 ca             	cmovs  %edx,%ecx
     d73:	c1 e1 02             	shl    $0x2,%ecx
     d76:	85 db                	test   %ebx,%ebx
     d78:	89 44 24 2c          	mov    %eax,0x2c(%esp)
     d7c:	8b 45 b0             	mov    -0x50(%ebp),%eax
     d7f:	0f 48 da             	cmovs  %edx,%ebx
     d82:	c1 e3 02             	shl    $0x2,%ebx
     d85:	85 f6                	test   %esi,%esi
     d87:	0f 48 f2             	cmovs  %edx,%esi
     d8a:	c1 e6 02             	shl    $0x2,%esi
     d8d:	85 c0                	test   %eax,%eax
     d8f:	8b 45 b0             	mov    -0x50(%ebp),%eax
     d92:	89 4c 24 28          	mov    %ecx,0x28(%esp)
     d96:	89 5c 24 24          	mov    %ebx,0x24(%esp)
     d9a:	89 74 24 20          	mov    %esi,0x20(%esp)
     d9e:	0f 48 c2             	cmovs  %edx,%eax
     da1:	c1 e0 02             	shl    $0x2,%eax
     da4:	89 44 24 1c          	mov    %eax,0x1c(%esp)
     da8:	8b 45 b4             	mov    -0x4c(%ebp),%eax
     dab:	85 c0                	test   %eax,%eax
     dad:	8b 45 b4             	mov    -0x4c(%ebp),%eax
     db0:	0f 48 c2             	cmovs  %edx,%eax
     db3:	c1 e0 02             	shl    $0x2,%eax
     db6:	89 44 24 18          	mov    %eax,0x18(%esp)
     dba:	8b 47 08             	mov    0x8(%edi),%eax
     dbd:	c1 e0 02             	shl    $0x2,%eax
     dc0:	89 44 24 14          	mov    %eax,0x14(%esp)
     dc4:	8b 47 04             	mov    0x4(%edi),%eax
     dc7:	c1 e0 02             	shl    $0x2,%eax
     dca:	89 44 24 10          	mov    %eax,0x10(%esp)
     dce:	8b 07                	mov    (%edi),%eax
     dd0:	c1 e0 02             	shl    $0x2,%eax
     dd3:	89 44 24 0c          	mov    %eax,0xc(%esp)
     dd7:	8b 45 b8             	mov    -0x48(%ebp),%eax
     dda:	85 c0                	test   %eax,%eax
     ddc:	0f 49 55 b8          	cmovns -0x48(%ebp),%edx
     de0:	c1 e2 02             	shl    $0x2,%edx
     de3:	89 54 24 08          	mov    %edx,0x8(%esp)
     de7:	8b 87 9c 07 00 00    	mov    0x79c(%edi),%eax
     ded:	c7 04 24 5c 03 00 00 	movl   $0x35c,(%esp)
     df4:	89 44 24 04          	mov    %eax,0x4(%esp)
     df8:	e8 fc ff ff ff       	call   df9 <show_free_areas+0x339>
     dfd:	c7 04 24 93 00 00 00 	movl   $0x93,(%esp)
     e04:	e8 fc ff ff ff       	call   e05 <show_free_areas+0x345>
     e09:	8b 47 0c             	mov    0xc(%edi),%eax
     e0c:	c7 04 24 a5 00 00 00 	movl   $0xa5,(%esp)
     e13:	89 44 24 04          	mov    %eax,0x4(%esp)
     e17:	e8 fc ff ff ff       	call   e18 <show_free_areas+0x358>
     e1c:	8b 47 10             	mov    0x10(%edi),%eax
     e1f:	c7 04 24 a5 00 00 00 	movl   $0xa5,(%esp)
     e26:	89 44 24 04          	mov    %eax,0x4(%esp)
     e2a:	e8 fc ff ff ff       	call   e2b <show_free_areas+0x36b>
     e2f:	8b 47 14             	mov    0x14(%edi),%eax
     e32:	c7 04 24 a5 00 00 00 	movl   $0xa5,(%esp)
     e39:	89 44 24 04          	mov    %eax,0x4(%esp)
     e3d:	e8 fc ff ff ff       	call   e3e <show_free_areas+0x37e>
     e42:	8b 47 18             	mov    0x18(%edi),%eax
     e45:	c7 04 24 a5 00 00 00 	movl   $0xa5,(%esp)
     e4c:	89 44 24 04          	mov    %eax,0x4(%esp)
     e50:	e8 fc ff ff ff       	call   e51 <show_free_areas+0x391>
     e55:	c7 04 24 aa 00 00 00 	movl   $0xaa,(%esp)
     e5c:	e8 fc ff ff ff       	call   e5d <show_free_areas+0x39d>
     e61:	e9 e0 fd ff ff       	jmp    c46 <show_free_areas+0x186>
     e66:	8b 83 9c 07 00 00    	mov    0x79c(%ebx),%eax
     e6c:	89 de                	mov    %ebx,%esi
     e6e:	31 ff                	xor    %edi,%edi
     e70:	c7 04 24 ac 00 00 00 	movl   $0xac,(%esp)
     e77:	89 44 24 04          	mov    %eax,0x4(%esp)
     e7b:	e8 fc ff ff ff       	call   e7c <show_free_areas+0x3bc>
     e80:	8d 8b 80 04 00 00    	lea    0x480(%ebx),%ecx
     e86:	89 c8                	mov    %ecx,%eax
     e88:	89 4d 90             	mov    %ecx,-0x70(%ebp)
     e8b:	e8 fc ff ff ff       	call   e8c <show_free_areas+0x3cc>
     e90:	31 c9                	xor    %ecx,%ecx
     e92:	89 c2                	mov    %eax,%edx
     e94:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
     e98:	8b 86 ac 04 00 00    	mov    0x4ac(%esi),%eax
     e9e:	83 c6 2c             	add    $0x2c,%esi
     ea1:	89 44 8d c8          	mov    %eax,-0x38(%ebp,%ecx,4)
     ea5:	d3 e0                	shl    %cl,%eax
     ea7:	83 c1 01             	add    $0x1,%ecx
     eaa:	01 c7                	add    %eax,%edi
     eac:	83 f9 0b             	cmp    $0xb,%ecx
     eaf:	75 e7                	jne    e98 <show_free_areas+0x3d8>
     eb1:	8b 45 90             	mov    -0x70(%ebp),%eax
     eb4:	31 f6                	xor    %esi,%esi
     eb6:	e8 fc ff ff ff       	call   eb7 <show_free_areas+0x3f7>
     ebb:	90                   	nop    
     ebc:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
     ec0:	89 f1                	mov    %esi,%ecx
     ec2:	b8 04 00 00 00       	mov    $0x4,%eax
     ec7:	d3 e0                	shl    %cl,%eax
     ec9:	89 44 24 08          	mov    %eax,0x8(%esp)
     ecd:	8b 44 b5 c8          	mov    -0x38(%ebp,%esi,4),%eax
     ed1:	83 c6 01             	add    $0x1,%esi
     ed4:	c7 04 24 b1 00 00 00 	movl   $0xb1,(%esp)
     edb:	89 44 24 04          	mov    %eax,0x4(%esp)
     edf:	e8 fc ff ff ff       	call   ee0 <show_free_areas+0x420>
     ee4:	83 fe 0b             	cmp    $0xb,%esi
     ee7:	75 d7                	jne    ec0 <show_free_areas+0x400>
     ee9:	8d 04 bd 00 00 00 00 	lea    0x0(,%edi,4),%eax
     ef0:	89 44 24 04          	mov    %eax,0x4(%esp)
     ef4:	c7 04 24 bc 00 00 00 	movl   $0xbc,(%esp)
     efb:	e8 fc ff ff ff       	call   efc <show_free_areas+0x43c>
     f00:	e9 69 fd ff ff       	jmp    c6e <show_free_areas+0x1ae>
     f05:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
     f09:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

00000f10 <si_meminfo>:
     f10:	55                   	push   %ebp
     f11:	89 e5                	mov    %esp,%ebp
     f13:	53                   	push   %ebx
     f14:	89 c3                	mov    %eax,%ebx
     f16:	a1 00 00 00 00       	mov    0x0,%eax
     f1b:	c7 43 18 00 00 00 00 	movl   $0x0,0x18(%ebx)
     f22:	89 43 10             	mov    %eax,0x10(%ebx)
     f25:	8b 15 00 00 00 00    	mov    0x0,%edx
     f2b:	31 c0                	xor    %eax,%eax
     f2d:	85 d2                	test   %edx,%edx
     f2f:	0f 49 c2             	cmovns %edx,%eax
     f32:	89 43 14             	mov    %eax,0x14(%ebx)
     f35:	e8 fc ff ff ff       	call   f36 <si_meminfo+0x26>
     f3a:	89 43 1c             	mov    %eax,0x1c(%ebx)
     f3d:	a1 00 00 00 00       	mov    0x0,%eax
     f42:	89 43 2c             	mov    %eax,0x2c(%ebx)
     f45:	e8 fc ff ff ff       	call   f46 <si_meminfo+0x36>
     f4a:	c7 43 34 00 10 00 00 	movl   $0x1000,0x34(%ebx)
     f51:	89 43 30             	mov    %eax,0x30(%ebx)
     f54:	5b                   	pop    %ebx
     f55:	5d                   	pop    %ebp
     f56:	c3                   	ret    
     f57:	89 f6                	mov    %esi,%esi
     f59:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

00000f60 <nr_free_zone_pages>:
     f60:	55                   	push   %ebp
     f61:	31 c9                	xor    %ecx,%ecx
     f63:	89 e5                	mov    %esp,%ebp
     f65:	89 c2                	mov    %eax,%edx
     f67:	57                   	push   %edi
     f68:	56                   	push   %esi
     f69:	89 c6                	mov    %eax,%esi
     f6b:	53                   	push   %ebx
     f6c:	b8 04 20 00 00       	mov    $0x2004,%eax
     f71:	83 ec 08             	sub    $0x8,%esp
     f74:	31 db                	xor    %ebx,%ebx
     f76:	8d 7d f0             	lea    -0x10(%ebp),%edi
     f79:	89 3c 24             	mov    %edi,(%esp)
     f7c:	e8 fc ff ff ff       	call   f7d <nr_free_zone_pages+0x1d>
     f81:	8b 4d f0             	mov    -0x10(%ebp),%ecx
     f84:	85 c9                	test   %ecx,%ecx
     f86:	74 27                	je     faf <nr_free_zone_pages+0x4f>
     f88:	8b 91 98 07 00 00    	mov    0x798(%ecx),%edx
     f8e:	8b 49 08             	mov    0x8(%ecx),%ecx
     f91:	39 ca                	cmp    %ecx,%edx
     f93:	76 04                	jbe    f99 <nr_free_zone_pages+0x39>
     f95:	29 ca                	sub    %ecx,%edx
     f97:	01 d3                	add    %edx,%ebx
     f99:	31 c9                	xor    %ecx,%ecx
     f9b:	83 c0 08             	add    $0x8,%eax
     f9e:	89 f2                	mov    %esi,%edx
     fa0:	89 3c 24             	mov    %edi,(%esp)
     fa3:	e8 fc ff ff ff       	call   fa4 <nr_free_zone_pages+0x44>
     fa8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
     fab:	85 c9                	test   %ecx,%ecx
     fad:	75 d9                	jne    f88 <nr_free_zone_pages+0x28>
     faf:	83 c4 08             	add    $0x8,%esp
     fb2:	89 d8                	mov    %ebx,%eax
     fb4:	5b                   	pop    %ebx
     fb5:	5e                   	pop    %esi
     fb6:	5f                   	pop    %edi
     fb7:	5d                   	pop    %ebp
     fb8:	c3                   	ret    
     fb9:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi

00000fc0 <nr_free_pagecache_pages>:
     fc0:	55                   	push   %ebp
     fc1:	b8 03 00 00 00       	mov    $0x3,%eax
     fc6:	89 e5                	mov    %esp,%ebp
     fc8:	e8 93 ff ff ff       	call   f60 <nr_free_zone_pages>
     fcd:	5d                   	pop    %ebp
     fce:	c3                   	ret    
     fcf:	90                   	nop    

00000fd0 <build_all_zonelists>:
     fd0:	55                   	push   %ebp
     fd1:	89 e5                	mov    %esp,%ebp
     fd3:	83 ec 14             	sub    $0x14,%esp
     fd6:	a1 00 00 00 00       	mov    0x0,%eax
     fdb:	c7 05 0c 00 00 00 02 	movl   $0x2,0xc
     fe2:	00 00 00 
     fe5:	85 c0                	test   %eax,%eax
     fe7:	75 5f                	jne    1048 <build_all_zonelists+0x78>
     fe9:	31 c0                	xor    %eax,%eax
     feb:	e8 e0 f2 ff ff       	call   2d0 <__build_all_zonelists>
     ff0:	e8 fc ff ff ff       	call   ff1 <build_all_zonelists+0x21>
     ff5:	e8 fc ff ff ff       	call   ff6 <build_all_zonelists+0x26>
     ffa:	3d ff 09 00 00       	cmp    $0x9ff,%eax
     fff:	a3 00 00 00 00       	mov    %eax,0x0
    1004:	77 52                	ja     1058 <build_all_zonelists+0x88>
    1006:	c7 05 00 00 00 00 01 	movl   $0x1,0x0
    100d:	00 00 00 
    1010:	ba e0 00 00 00       	mov    $0xe0,%edx
    1015:	89 44 24 10          	mov    %eax,0x10(%esp)
    1019:	a1 0c 00 00 00       	mov    0xc,%eax
    101e:	89 54 24 0c          	mov    %edx,0xc(%esp)
    1022:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
    1029:	00 
    102a:	c7 04 24 20 04 00 00 	movl   $0x420,(%esp)
    1031:	8d 04 c5 10 00 00 00 	lea    0x10(,%eax,8),%eax
    1038:	89 44 24 08          	mov    %eax,0x8(%esp)
    103c:	e8 fc ff ff ff       	call   103d <build_all_zonelists+0x6d>
    1041:	c9                   	leave  
    1042:	c3                   	ret    
    1043:	90                   	nop    
    1044:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    1048:	31 c9                	xor    %ecx,%ecx
    104a:	31 d2                	xor    %edx,%edx
    104c:	b8 d0 02 00 00       	mov    $0x2d0,%eax
    1051:	e8 fc ff ff ff       	call   1052 <build_all_zonelists+0x82>
    1056:	eb 9d                	jmp    ff5 <build_all_zonelists+0x25>
    1058:	c7 05 00 00 00 00 00 	movl   $0x0,0x0
    105f:	00 00 00 
    1062:	ba e4 00 00 00       	mov    $0xe4,%edx
    1067:	eb ac                	jmp    1015 <build_all_zonelists+0x45>
    1069:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi

00001070 <nr_free_buffer_pages>:
    1070:	55                   	push   %ebp
    1071:	b8 01 00 00 00       	mov    $0x1,%eax
    1076:	89 e5                	mov    %esp,%ebp
    1078:	e8 e3 fe ff ff       	call   f60 <nr_free_zone_pages>
    107d:	5d                   	pop    %ebp
    107e:	c3                   	ret    
    107f:	90                   	nop    

00001080 <bad_page>:
    1080:	55                   	push   %ebp
    1081:	89 e5                	mov    %esp,%ebp
    1083:	83 ec 28             	sub    $0x28,%esp
    1086:	8b 15 14 00 00 00    	mov    0x14,%edx
    108c:	89 5d f4             	mov    %ebx,-0xc(%ebp)
    108f:	89 c3                	mov    %eax,%ebx
    1091:	89 75 f8             	mov    %esi,-0x8(%ebp)
    1094:	89 7d fc             	mov    %edi,-0x4(%ebp)
    1097:	83 fa 3c             	cmp    $0x3c,%edx
    109a:	0f 85 d1 00 00 00    	jne    1171 <bad_page+0xf1>
    10a0:	a1 00 00 00 00       	mov    0x0,%eax
    10a5:	3b 05 18 00 00 00    	cmp    0x18,%eax
    10ab:	0f 88 b7 00 00 00    	js     1168 <bad_page+0xe8>
    10b1:	a1 10 00 00 00       	mov    0x10,%eax
    10b6:	85 c0                	test   %eax,%eax
    10b8:	0f 85 ca 00 00 00    	jne    1188 <bad_page+0x108>
    10be:	c7 05 14 00 00 00 01 	movl   $0x1,0x14
    10c5:	00 00 00 
    10c8:	a1 00 00 00 00       	mov    0x0,%eax
    10cd:	05 60 ea 00 00       	add    $0xea60,%eax
    10d2:	a3 18 00 00 00       	mov    %eax,0x18
    10d7:	89 d8                	mov    %ebx,%eax
    10d9:	2b 05 00 00 00 00    	sub    0x0,%eax
    10df:	64 8b 15 00 00 00 00 	mov    %fs:0x0,%edx
    10e6:	81 c2 c8 01 00 00    	add    $0x1c8,%edx
    10ec:	c1 f8 05             	sar    $0x5,%eax
    10ef:	89 54 24 04          	mov    %edx,0x4(%esp)
    10f3:	89 44 24 08          	mov    %eax,0x8(%esp)
    10f7:	c7 04 24 a0 04 00 00 	movl   $0x4a0,(%esp)
    10fe:	e8 fc ff ff ff       	call   10ff <bad_page+0x7f>
    1103:	8b 0b                	mov    (%ebx),%ecx
    1105:	89 da                	mov    %ebx,%edx
    1107:	8b 7b 14             	mov    0x14(%ebx),%edi
    110a:	8b 73 10             	mov    0x10(%ebx),%esi
    110d:	8b 43 08             	mov    0x8(%ebx),%eax
    1110:	f6 c5 40             	test   $0x40,%ch
    1113:	75 4b                	jne    1160 <bad_page+0xe0>
    1115:	8b 52 04             	mov    0x4(%edx),%edx
    1118:	83 c0 01             	add    $0x1,%eax
    111b:	89 4c 24 08          	mov    %ecx,0x8(%esp)
    111f:	89 7c 24 18          	mov    %edi,0x18(%esp)
    1123:	89 74 24 14          	mov    %esi,0x14(%esp)
    1127:	89 54 24 0c          	mov    %edx,0xc(%esp)
    112b:	89 44 24 10          	mov    %eax,0x10(%esp)
    112f:	89 5c 24 04          	mov    %ebx,0x4(%esp)
    1133:	c7 04 24 d4 04 00 00 	movl   $0x4d4,(%esp)
    113a:	e8 fc ff ff ff       	call   113b <bad_page+0xbb>
    113f:	e8 fc ff ff ff       	call   1140 <bad_page+0xc0>
    1144:	0f ba 33 12          	btrl   $0x12,(%ebx)
    1148:	b8 05 00 00 00       	mov    $0x5,%eax
    114d:	e8 fc ff ff ff       	call   114e <bad_page+0xce>
    1152:	8b 5d f4             	mov    -0xc(%ebp),%ebx
    1155:	8b 75 f8             	mov    -0x8(%ebp),%esi
    1158:	8b 7d fc             	mov    -0x4(%ebp),%edi
    115b:	89 ec                	mov    %ebp,%esp
    115d:	5d                   	pop    %ebp
    115e:	c3                   	ret    
    115f:	90                   	nop    
    1160:	8b 53 0c             	mov    0xc(%ebx),%edx
    1163:	eb b0                	jmp    1115 <bad_page+0x95>
    1165:	8d 76 00             	lea    0x0(%esi),%esi
    1168:	83 05 10 00 00 00 01 	addl   $0x1,0x10
    116f:	eb d3                	jmp    1144 <bad_page+0xc4>
    1171:	8d 42 01             	lea    0x1(%edx),%eax
    1174:	85 d2                	test   %edx,%edx
    1176:	a3 14 00 00 00       	mov    %eax,0x14
    117b:	0f 85 56 ff ff ff    	jne    10d7 <bad_page+0x57>
    1181:	e9 42 ff ff ff       	jmp    10c8 <bad_page+0x48>
    1186:	66 90                	xchg   %ax,%ax
    1188:	89 44 24 04          	mov    %eax,0x4(%esp)
    118c:	c7 04 24 6c 04 00 00 	movl   $0x46c,(%esp)
    1193:	e8 fc ff ff ff       	call   1194 <bad_page+0x114>
    1198:	c7 05 10 00 00 00 00 	movl   $0x0,0x10
    119f:	00 00 00 
    11a2:	e9 17 ff ff ff       	jmp    10be <bad_page+0x3e>
    11a7:	89 f6                	mov    %esi,%esi
    11a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

000011b0 <__free_pages_ok>:
    11b0:	55                   	push   %ebp
    11b1:	89 d1                	mov    %edx,%ecx
    11b3:	89 e5                	mov    %esp,%ebp
    11b5:	57                   	push   %edi
    11b6:	56                   	push   %esi
    11b7:	53                   	push   %ebx
    11b8:	83 ec 28             	sub    $0x28,%esp
    11bb:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
    11c2:	d3 65 ec             	shll   %cl,-0x14(%ebp)
    11c5:	89 55 d0             	mov    %edx,-0x30(%ebp)
    11c8:	8b 55 ec             	mov    -0x14(%ebp),%edx
    11cb:	89 45 d4             	mov    %eax,-0x2c(%ebp)
    11ce:	85 d2                	test   %edx,%edx
    11d0:	0f 8e ca 00 00 00    	jle    12a0 <__free_pages_ok+0xf0>
    11d6:	bf 00 00 00 00       	mov    $0x0,%edi
    11db:	89 c3                	mov    %eax,%ebx
    11dd:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
    11e4:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
    11eb:	89 7d cc             	mov    %edi,-0x34(%ebp)
    11ee:	eb 5e                	jmp    124e <__free_pages_ok+0x9e>
    11f0:	8b 33                	mov    (%ebx),%esi
    11f2:	89 da                	mov    %ebx,%edx
    11f4:	8b 7b 08             	mov    0x8(%ebx),%edi
    11f7:	8b 43 10             	mov    0x10(%ebx),%eax
    11fa:	f7 c6 00 40 00 00    	test   $0x4000,%esi
    1200:	74 03                	je     1205 <__free_pages_ok+0x55>
    1202:	8b 53 0c             	mov    0xc(%ebx),%edx
    1205:	8b 4a 04             	mov    0x4(%edx),%ecx
    1208:	31 d2                	xor    %edx,%edx
    120a:	85 c0                	test   %eax,%eax
    120c:	0f 95 c2             	setne  %dl
    120f:	8d 47 01             	lea    0x1(%edi),%eax
    1212:	09 c2                	or     %eax,%edx
    1214:	31 c0                	xor    %eax,%eax
    1216:	85 c9                	test   %ecx,%ecx
    1218:	0f 95 c0             	setne  %al
    121b:	09 c2                	or     %eax,%edx
    121d:	89 f0                	mov    %esi,%eax
    121f:	25 e1 9c 34 00       	and    $0x349ce1,%eax
    1224:	09 c2                	or     %eax,%edx
    1226:	75 58                	jne    1280 <__free_pages_ok+0xd0>
    1228:	31 c0                	xor    %eax,%eax
    122a:	f7 c6 ff ff 3f 00    	test   $0x3fffff,%esi
    1230:	74 0a                	je     123c <__free_pages_ok+0x8c>
    1232:	81 e6 00 00 c0 ff    	and    $0xffc00000,%esi
    1238:	31 c0                	xor    %eax,%eax
    123a:	89 33                	mov    %esi,(%ebx)
    123c:	83 45 dc 01          	addl   $0x1,-0x24(%ebp)
    1240:	83 c3 20             	add    $0x20,%ebx
    1243:	8b 4d ec             	mov    -0x14(%ebp),%ecx
    1246:	01 45 e0             	add    %eax,-0x20(%ebp)
    1249:	39 4d dc             	cmp    %ecx,-0x24(%ebp)
    124c:	7d 42                	jge    1290 <__free_pages_ok+0xe0>
    124e:	f0 0f ba 33 15       	lock btrl $0x15,(%ebx)
    1253:	19 c0                	sbb    %eax,%eax
    1255:	85 c0                	test   %eax,%eax
    1257:	74 97                	je     11f0 <__free_pages_ok+0x40>
    1259:	9c                   	pushf  
    125a:	5e                   	pop    %esi
    125b:	fa                   	cli    
    125c:	ba 06 00 00 00       	mov    $0x6,%edx
    1261:	89 d8                	mov    %ebx,%eax
    1263:	e8 fc ff ff ff       	call   1264 <__free_pages_ok+0xb4>
    1268:	8b 55 cc             	mov    -0x34(%ebp),%edx
    126b:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
    1271:	83 84 10 b4 00 00 00 	addl   $0x1,0xb4(%eax,%edx,1)
    1278:	01 
    1279:	56                   	push   %esi
    127a:	9d                   	popf   
    127b:	e9 70 ff ff ff       	jmp    11f0 <__free_pages_ok+0x40>
    1280:	89 d8                	mov    %ebx,%eax
    1282:	e8 f9 fd ff ff       	call   1080 <bad_page>
    1287:	b8 01 00 00 00       	mov    $0x1,%eax
    128c:	eb ae                	jmp    123c <__free_pages_ok+0x8c>
    128e:	66 90                	xchg   %ax,%ax
    1290:	8b 45 e0             	mov    -0x20(%ebp),%eax
    1293:	85 c0                	test   %eax,%eax
    1295:	74 09                	je     12a0 <__free_pages_ok+0xf0>
    1297:	83 c4 28             	add    $0x28,%esp
    129a:	5b                   	pop    %ebx
    129b:	5e                   	pop    %esi
    129c:	5f                   	pop    %edi
    129d:	5d                   	pop    %ebp
    129e:	c3                   	ret    
    129f:	90                   	nop    
    12a0:	8b 7d d4             	mov    -0x2c(%ebp),%edi
    12a3:	8b 07                	mov    (%edi),%eax
    12a5:	c1 e8 1e             	shr    $0x1e,%eax
    12a8:	c1 e0 0b             	shl    $0xb,%eax
    12ab:	05 00 00 00 00       	add    $0x0,%eax
    12b0:	2b 80 8c 07 00 00    	sub    0x78c(%eax),%eax
    12b6:	3d 00 10 00 00       	cmp    $0x1000,%eax
    12bb:	74 1b                	je     12d8 <__free_pages_ok+0x128>
    12bd:	3d 00 18 00 00       	cmp    $0x1800,%eax
    12c2:	0f 84 f8 01 00 00    	je     14c0 <__free_pages_ok+0x310>
    12c8:	8b 45 d4             	mov    -0x2c(%ebp),%eax
    12cb:	e8 fc ff ff ff       	call   12cc <__free_pages_ok+0x11c>
    12d0:	8b 45 d4             	mov    -0x2c(%ebp),%eax
    12d3:	e8 fc ff ff ff       	call   12d4 <__free_pages_ok+0x124>
    12d8:	9c                   	pushf  
    12d9:	8f 45 d8             	popl   -0x28(%ebp)
    12dc:	fa                   	cli    
    12dd:	8b 4d ec             	mov    -0x14(%ebp),%ecx
    12e0:	b8 00 00 00 00       	mov    $0x0,%eax
    12e5:	64 8b 15 00 00 00 00 	mov    %fs:0x0,%edx
    12ec:	01 4c 10 20          	add    %ecx,0x20(%eax,%edx,1)
    12f0:	8b 7d d4             	mov    -0x2c(%ebp),%edi
    12f3:	8b 07                	mov    (%edi),%eax
    12f5:	c1 e8 1e             	shr    $0x1e,%eax
    12f8:	c1 e0 0b             	shl    $0xb,%eax
    12fb:	05 00 00 00 00       	add    $0x0,%eax
    1300:	89 45 e4             	mov    %eax,-0x1c(%ebp)
    1303:	05 80 04 00 00       	add    $0x480,%eax
    1308:	89 45 f0             	mov    %eax,-0x10(%ebp)
    130b:	e8 fc ff ff ff       	call   130c <__free_pages_ok+0x15c>
    1310:	8b 45 e4             	mov    -0x1c(%ebp),%eax
    1313:	8b 55 e4             	mov    -0x1c(%ebp),%edx
    1316:	05 d4 06 00 00       	add    $0x6d4,%eax
    131b:	f0 80 a2 d4 06 00 00 	lock andb $0xfe,0x6d4(%edx)
    1322:	fe 
    1323:	c7 82 d0 06 00 00 00 	movl   $0x0,0x6d0(%edx)
    132a:	00 00 00 
    132d:	a1 00 00 00 00       	mov    0x0,%eax
    1332:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
    1339:	85 c0                	test   %eax,%eax
    133b:	0f 84 57 01 00 00    	je     1498 <__free_pages_ok+0x2e8>
    1341:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
    1344:	8b 01                	mov    (%ecx),%eax
    1346:	f6 c4 60             	test   $0x60,%ah
    1349:	0f 84 8f 00 00 00    	je     13de <__free_pages_ok+0x22e>
    134f:	c1 e8 0d             	shr    $0xd,%eax
    1352:	89 c2                	mov    %eax,%edx
    1354:	83 e2 01             	and    $0x1,%edx
    1357:	0f 84 33 01 00 00    	je     1490 <__free_pages_ok+0x2e0>
    135d:	8b 7d d4             	mov    -0x2c(%ebp),%edi
    1360:	8b 47 3c             	mov    0x3c(%edi),%eax
    1363:	39 45 d0             	cmp    %eax,-0x30(%ebp)
    1366:	75 06                	jne    136e <__free_pages_ok+0x1be>
    1368:	31 ff                	xor    %edi,%edi
    136a:	85 d2                	test   %edx,%edx
    136c:	75 0d                	jne    137b <__free_pages_ok+0x1cb>
    136e:	8b 45 d4             	mov    -0x2c(%ebp),%eax
    1371:	bf 01 00 00 00       	mov    $0x1,%edi
    1376:	e8 05 fd ff ff       	call   1080 <bad_page>
    137b:	8b 45 d4             	mov    -0x2c(%ebp),%eax
    137e:	0f ba 30 0d          	btrl   $0xd,(%eax)
    1382:	83 7d ec 01          	cmpl   $0x1,-0x14(%ebp)
    1386:	7e 48                	jle    13d0 <__free_pages_ok+0x220>
    1388:	89 c3                	mov    %eax,%ebx
    138a:	be 01 00 00 00       	mov    $0x1,%esi
    138f:	83 c3 20             	add    $0x20,%ebx
    1392:	eb 1e                	jmp    13b2 <__free_pages_ok+0x202>
    1394:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    1398:	8b 45 d4             	mov    -0x2c(%ebp),%eax
    139b:	83 c7 01             	add    $0x1,%edi
    139e:	e8 dd fc ff ff       	call   1080 <bad_page>
    13a3:	0f ba 33 0e          	btrl   $0xe,(%ebx)
    13a7:	83 c6 01             	add    $0x1,%esi
    13aa:	83 c3 20             	add    $0x20,%ebx
    13ad:	3b 75 ec             	cmp    -0x14(%ebp),%esi
    13b0:	7d 1e                	jge    13d0 <__free_pages_ok+0x220>
    13b2:	8b 03                	mov    (%ebx),%eax
    13b4:	f6 c4 40             	test   $0x40,%ah
    13b7:	74 df                	je     1398 <__free_pages_ok+0x1e8>
    13b9:	8b 55 d4             	mov    -0x2c(%ebp),%edx
    13bc:	3b 53 0c             	cmp    0xc(%ebx),%edx
    13bf:	75 d7                	jne    1398 <__free_pages_ok+0x1e8>
    13c1:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
    13c8:	eb d9                	jmp    13a3 <__free_pages_ok+0x1f3>
    13ca:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    13d0:	85 ff                	test   %edi,%edi
    13d2:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    13d8:	0f 85 99 00 00 00    	jne    1477 <__free_pages_ok+0x2c7>
    13de:	8b 4d ec             	mov    -0x14(%ebp),%ecx
    13e1:	31 d2                	xor    %edx,%edx
    13e3:	8b 45 e4             	mov    -0x1c(%ebp),%eax
    13e6:	8b 1d 00 00 00 00    	mov    0x0,%ebx
    13ec:	e8 fc ff ff ff       	call   13ed <__free_pages_ok+0x23d>
    13f1:	83 7d d0 09          	cmpl   $0x9,-0x30(%ebp)
    13f5:	77 34                	ja     142b <__free_pages_ok+0x27b>
    13f7:	8b 7d d4             	mov    -0x2c(%ebp),%edi
    13fa:	8b 45 ec             	mov    -0x14(%ebp),%eax
    13fd:	8b 55 d4             	mov    -0x2c(%ebp),%edx
    1400:	29 df                	sub    %ebx,%edi
    1402:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
    1405:	c1 ff 05             	sar    $0x5,%edi
    1408:	81 e7 ff 07 00 00    	and    $0x7ff,%edi
    140e:	31 f8                	xor    %edi,%eax
    1410:	29 f8                	sub    %edi,%eax
    1412:	c1 e0 05             	shl    $0x5,%eax
    1415:	01 c3                	add    %eax,%ebx
    1417:	8b 02                	mov    (%edx),%eax
    1419:	8b 0b                	mov    (%ebx),%ecx
    141b:	c1 e8 1e             	shr    $0x1e,%eax
    141e:	89 ca                	mov    %ecx,%edx
    1420:	c1 ea 1e             	shr    $0x1e,%edx
    1423:	39 d0                	cmp    %edx,%eax
    1425:	0f 84 ad 00 00 00    	je     14d8 <__free_pages_ok+0x328>
    142b:	8b 4d d0             	mov    -0x30(%ebp),%ecx
    142e:	8b 55 d4             	mov    -0x2c(%ebp),%edx
    1431:	89 4a 0c             	mov    %ecx,0xc(%edx)
    1434:	0f ba 2a 12          	btsl   $0x12,(%edx)
    1438:	8b 7d e8             	mov    -0x18(%ebp),%edi
    143b:	89 d6                	mov    %edx,%esi
    143d:	6b d1 2c             	imul   $0x2c,%ecx,%edx
    1440:	8b 45 e4             	mov    -0x1c(%ebp),%eax
    1443:	83 c6 18             	add    $0x18,%esi
    1446:	8d 0c fa             	lea    (%edx,%edi,8),%ecx
    1449:	8d 9c 08 80 04 00 00 	lea    0x480(%eax,%ecx,1),%ebx
    1450:	8b 43 04             	mov    0x4(%ebx),%eax
    1453:	89 70 04             	mov    %esi,0x4(%eax)
    1456:	8b 7d d4             	mov    -0x2c(%ebp),%edi
    1459:	89 47 18             	mov    %eax,0x18(%edi)
    145c:	8b 7d e4             	mov    -0x1c(%ebp),%edi
    145f:	8d 84 0f 84 04 00 00 	lea    0x484(%edi,%ecx,1),%eax
    1466:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
    1469:	89 73 04             	mov    %esi,0x4(%ebx)
    146c:	89 41 1c             	mov    %eax,0x1c(%ecx)
    146f:	83 84 17 ac 04 00 00 	addl   $0x1,0x4ac(%edi,%edx,1)
    1476:	01 
    1477:	8b 45 f0             	mov    -0x10(%ebp),%eax
    147a:	e8 fc ff ff ff       	call   147b <__free_pages_ok+0x2cb>
    147f:	ff 75 d8             	pushl  -0x28(%ebp)
    1482:	9d                   	popf   
    1483:	83 c4 28             	add    $0x28,%esp
    1486:	5b                   	pop    %ebx
    1487:	5e                   	pop    %esi
    1488:	5f                   	pop    %edi
    1489:	5d                   	pop    %ebp
    148a:	c3                   	ret    
    148b:	90                   	nop    
    148c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    1490:	31 c0                	xor    %eax,%eax
    1492:	e9 cc fe ff ff       	jmp    1363 <__free_pages_ok+0x1b3>
    1497:	90                   	nop    
    1498:	8b 45 d4             	mov    -0x2c(%ebp),%eax
    149b:	b9 02 00 00 00       	mov    $0x2,%ecx
    14a0:	31 d2                	xor    %edx,%edx
    14a2:	e8 fc ff ff ff       	call   14a3 <__free_pages_ok+0x2f3>
    14a7:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
    14aa:	89 45 e8             	mov    %eax,-0x18(%ebp)
    14ad:	8b 01                	mov    (%ecx),%eax
    14af:	f6 c4 60             	test   $0x60,%ah
    14b2:	0f 85 97 fe ff ff    	jne    134f <__free_pages_ok+0x19f>
    14b8:	e9 21 ff ff ff       	jmp    13de <__free_pages_ok+0x22e>
    14bd:	8d 76 00             	lea    0x0(%esi),%esi
    14c0:	83 3d 00 00 00 00 02 	cmpl   $0x2,0x0
    14c7:	0f 85 fb fd ff ff    	jne    12c8 <__free_pages_ok+0x118>
    14cd:	8d 76 00             	lea    0x0(%esi),%esi
    14d0:	e9 03 fe ff ff       	jmp    12d8 <__free_pages_ok+0x128>
    14d5:	8d 76 00             	lea    0x0(%esi),%esi
    14d8:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
    14de:	66 90                	xchg   %ax,%ax
    14e0:	0f 84 45 ff ff ff    	je     142b <__free_pages_ok+0x27b>
    14e6:	8b 45 d0             	mov    -0x30(%ebp),%eax
    14e9:	3b 43 0c             	cmp    0xc(%ebx),%eax
    14ec:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    14f0:	0f 85 35 ff ff ff    	jne    142b <__free_pages_ok+0x27b>
    14f6:	66 90                	xchg   %ax,%ax
    14f8:	80 e5 40             	and    $0x40,%ch
    14fb:	89 d8                	mov    %ebx,%eax
    14fd:	74 03                	je     1502 <__free_pages_ok+0x352>
    14ff:	8b 43 0c             	mov    0xc(%ebx),%eax
    1502:	8b 40 04             	mov    0x4(%eax),%eax
    1505:	85 c0                	test   %eax,%eax
    1507:	0f 85 9c 00 00 00    	jne    15a9 <__free_pages_ok+0x3f9>
    150d:	8b 53 18             	mov    0x18(%ebx),%edx
    1510:	8b 43 1c             	mov    0x1c(%ebx),%eax
    1513:	89 42 04             	mov    %eax,0x4(%edx)
    1516:	89 10                	mov    %edx,(%eax)
    1518:	c7 43 1c 00 02 20 00 	movl   $0x200200,0x1c(%ebx)
    151f:	c7 43 18 00 01 10 00 	movl   $0x100100,0x18(%ebx)
    1526:	8b 55 e4             	mov    -0x1c(%ebp),%edx
    1529:	6b 45 d0 2c          	imul   $0x2c,-0x30(%ebp),%eax
    152d:	83 ac 02 ac 04 00 00 	subl   $0x1,0x4ac(%edx,%eax,1)
    1534:	01 
    1535:	0f ba 33 12          	btrl   $0x12,(%ebx)
    1539:	c7 43 0c 00 00 00 00 	movl   $0x0,0xc(%ebx)
    1540:	8b 75 ec             	mov    -0x14(%ebp),%esi
    1543:	f7 d6                	not    %esi
    1545:	21 fe                	and    %edi,%esi
    1547:	89 f0                	mov    %esi,%eax
    1549:	29 f8                	sub    %edi,%eax
    154b:	8b 7d d0             	mov    -0x30(%ebp),%edi
    154e:	c1 e0 05             	shl    $0x5,%eax
    1551:	01 45 d4             	add    %eax,-0x2c(%ebp)
    1554:	83 c7 01             	add    $0x1,%edi
    1557:	83 ff 09             	cmp    $0x9,%edi
    155a:	77 2b                	ja     1587 <__free_pages_ok+0x3d7>
    155c:	89 f9                	mov    %edi,%ecx
    155e:	b8 01 00 00 00       	mov    $0x1,%eax
    1563:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
    1566:	d3 e0                	shl    %cl,%eax
    1568:	8b 55 d4             	mov    -0x2c(%ebp),%edx
    156b:	89 45 ec             	mov    %eax,-0x14(%ebp)
    156e:	31 f0                	xor    %esi,%eax
    1570:	29 f0                	sub    %esi,%eax
    1572:	c1 e0 05             	shl    $0x5,%eax
    1575:	01 c3                	add    %eax,%ebx
    1577:	8b 02                	mov    (%edx),%eax
    1579:	8b 0b                	mov    (%ebx),%ecx
    157b:	c1 e8 1e             	shr    $0x1e,%eax
    157e:	89 ca                	mov    %ecx,%edx
    1580:	c1 ea 1e             	shr    $0x1e,%edx
    1583:	39 d0                	cmp    %edx,%eax
    1585:	74 09                	je     1590 <__free_pages_ok+0x3e0>
    1587:	89 7d d0             	mov    %edi,-0x30(%ebp)
    158a:	e9 9c fe ff ff       	jmp    142b <__free_pages_ok+0x27b>
    158f:	90                   	nop    
    1590:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
    1596:	74 ef                	je     1587 <__free_pages_ok+0x3d7>
    1598:	8b 43 0c             	mov    0xc(%ebx),%eax
    159b:	39 f8                	cmp    %edi,%eax
    159d:	89 45 d0             	mov    %eax,-0x30(%ebp)
    15a0:	75 e5                	jne    1587 <__free_pages_ok+0x3d7>
    15a2:	89 f7                	mov    %esi,%edi
    15a4:	e9 4f ff ff ff       	jmp    14f8 <__free_pages_ok+0x348>
    15a9:	0f 0b                	ud2a   
    15ab:	eb fe                	jmp    15ab <__free_pages_ok+0x3fb>
    15ad:	8d 76 00             	lea    0x0(%esi),%esi

000015b0 <free_compound_page>:
    15b0:	55                   	push   %ebp
    15b1:	89 c1                	mov    %eax,%ecx
    15b3:	8b 00                	mov    (%eax),%eax
    15b5:	31 d2                	xor    %edx,%edx
    15b7:	89 e5                	mov    %esp,%ebp
    15b9:	f6 c4 20             	test   $0x20,%ah
    15bc:	74 03                	je     15c1 <free_compound_page+0x11>
    15be:	8b 51 3c             	mov    0x3c(%ecx),%edx
    15c1:	89 c8                	mov    %ecx,%eax
    15c3:	e8 e8 fb ff ff       	call   11b0 <__free_pages_ok>
    15c8:	5d                   	pop    %ebp
    15c9:	c3                   	ret    
    15ca:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

000015d0 <free_pages_bulk>:
    15d0:	55                   	push   %ebp
    15d1:	89 e5                	mov    %esp,%ebp
    15d3:	57                   	push   %edi
    15d4:	56                   	push   %esi
    15d5:	53                   	push   %ebx
    15d6:	89 d3                	mov    %edx,%ebx
    15d8:	83 ec 28             	sub    $0x28,%esp
    15db:	89 45 d0             	mov    %eax,-0x30(%ebp)
    15de:	05 80 04 00 00       	add    $0x480,%eax
    15e3:	89 45 d4             	mov    %eax,-0x2c(%ebp)
    15e6:	89 4d cc             	mov    %ecx,-0x34(%ebp)
    15e9:	e8 fc ff ff ff       	call   15ea <free_pages_bulk+0x1a>
    15ee:	8b 45 d0             	mov    -0x30(%ebp),%eax
    15f1:	8b 55 d0             	mov    -0x30(%ebp),%edx
    15f4:	05 d4 06 00 00       	add    $0x6d4,%eax
    15f9:	f0 80 a2 d4 06 00 00 	lock andb $0xfe,0x6d4(%edx)
    1600:	fe 
    1601:	c7 82 d0 06 00 00 00 	movl   $0x0,0x6d0(%edx)
    1608:	00 00 00 
    160b:	0f b6 4d 08          	movzbl 0x8(%ebp),%ecx
    160f:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
    1616:	89 5d ec             	mov    %ebx,-0x14(%ebp)
    1619:	d3 65 e8             	shll   %cl,-0x18(%ebp)
    161c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
    161f:	85 c9                	test   %ecx,%ecx
    1621:	0f 84 88 01 00 00    	je     17af <free_pages_bulk+0x1df>
    1627:	90                   	nop    
    1628:	8b 7d cc             	mov    -0x34(%ebp),%edi
    162b:	8b 7f 04             	mov    0x4(%edi),%edi
    162e:	89 7d d8             	mov    %edi,-0x28(%ebp)
    1631:	83 ef 18             	sub    $0x18,%edi
    1634:	89 7d dc             	mov    %edi,-0x24(%ebp)
    1637:	8b 47 1c             	mov    0x1c(%edi),%eax
    163a:	8b 57 18             	mov    0x18(%edi),%edx
    163d:	89 42 04             	mov    %eax,0x4(%edx)
    1640:	89 10                	mov    %edx,(%eax)
    1642:	c7 47 1c 00 02 20 00 	movl   $0x200200,0x1c(%edi)
    1649:	c7 47 18 00 01 10 00 	movl   $0x100100,0x18(%edi)
    1650:	8b 1d 00 00 00 00    	mov    0x0,%ebx
    1656:	8b 45 08             	mov    0x8(%ebp),%eax
    1659:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
    1660:	85 db                	test   %ebx,%ebx
    1662:	89 45 e0             	mov    %eax,-0x20(%ebp)
    1665:	0f 84 65 01 00 00    	je     17d0 <free_pages_bulk+0x200>
    166b:	8b 55 d8             	mov    -0x28(%ebp),%edx
    166e:	8b 42 e8             	mov    -0x18(%edx),%eax
    1671:	f6 c4 60             	test   $0x60,%ah
    1674:	0f 84 8c 00 00 00    	je     1706 <free_pages_bulk+0x136>
    167a:	c1 e8 0d             	shr    $0xd,%eax
    167d:	89 c2                	mov    %eax,%edx
    167f:	83 e2 01             	and    $0x1,%edx
    1682:	0f 85 38 01 00 00    	jne    17c0 <free_pages_bulk+0x1f0>
    1688:	31 c0                	xor    %eax,%eax
    168a:	39 45 08             	cmp    %eax,0x8(%ebp)
    168d:	75 06                	jne    1695 <free_pages_bulk+0xc5>
    168f:	31 ff                	xor    %edi,%edi
    1691:	85 d2                	test   %edx,%edx
    1693:	75 0d                	jne    16a2 <free_pages_bulk+0xd2>
    1695:	8b 45 dc             	mov    -0x24(%ebp),%eax
    1698:	bf 01 00 00 00       	mov    $0x1,%edi
    169d:	e8 de f9 ff ff       	call   1080 <bad_page>
    16a2:	8b 45 d8             	mov    -0x28(%ebp),%eax
    16a5:	8b 55 dc             	mov    -0x24(%ebp),%edx
    16a8:	0f ba 70 e8 0d       	btrl   $0xd,-0x18(%eax)
    16ad:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
    16b1:	7e 45                	jle    16f8 <free_pages_bulk+0x128>
    16b3:	89 c3                	mov    %eax,%ebx
    16b5:	be 01 00 00 00       	mov    $0x1,%esi
    16ba:	83 c3 08             	add    $0x8,%ebx
    16bd:	eb 1b                	jmp    16da <free_pages_bulk+0x10a>
    16bf:	90                   	nop    
    16c0:	8b 45 dc             	mov    -0x24(%ebp),%eax
    16c3:	83 c7 01             	add    $0x1,%edi
    16c6:	e8 b5 f9 ff ff       	call   1080 <bad_page>
    16cb:	0f ba 33 0e          	btrl   $0xe,(%ebx)
    16cf:	83 c6 01             	add    $0x1,%esi
    16d2:	83 c3 20             	add    $0x20,%ebx
    16d5:	39 75 e8             	cmp    %esi,-0x18(%ebp)
    16d8:	7e 1e                	jle    16f8 <free_pages_bulk+0x128>
    16da:	8b 03                	mov    (%ebx),%eax
    16dc:	f6 c4 40             	test   $0x40,%ah
    16df:	74 df                	je     16c0 <free_pages_bulk+0xf0>
    16e1:	8b 4d dc             	mov    -0x24(%ebp),%ecx
    16e4:	3b 4b 0c             	cmp    0xc(%ebx),%ecx
    16e7:	75 d7                	jne    16c0 <free_pages_bulk+0xf0>
    16e9:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
    16f0:	eb d9                	jmp    16cb <free_pages_bulk+0xfb>
    16f2:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    16f8:	85 ff                	test   %edi,%edi
    16fa:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    1700:	0f 85 9a 00 00 00    	jne    17a0 <free_pages_bulk+0x1d0>
    1706:	8b 4d e8             	mov    -0x18(%ebp),%ecx
    1709:	31 d2                	xor    %edx,%edx
    170b:	8b 45 d0             	mov    -0x30(%ebp),%eax
    170e:	8b 1d 00 00 00 00    	mov    0x0,%ebx
    1714:	e8 fc ff ff ff       	call   1715 <free_pages_bulk+0x145>
    1719:	83 7d 08 09          	cmpl   $0x9,0x8(%ebp)
    171d:	77 35                	ja     1754 <free_pages_bulk+0x184>
    171f:	8b 7d dc             	mov    -0x24(%ebp),%edi
    1722:	8b 45 e8             	mov    -0x18(%ebp),%eax
    1725:	8b 55 d8             	mov    -0x28(%ebp),%edx
    1728:	29 df                	sub    %ebx,%edi
    172a:	8b 5d dc             	mov    -0x24(%ebp),%ebx
    172d:	c1 ff 05             	sar    $0x5,%edi
    1730:	81 e7 ff 07 00 00    	and    $0x7ff,%edi
    1736:	31 f8                	xor    %edi,%eax
    1738:	29 f8                	sub    %edi,%eax
    173a:	c1 e0 05             	shl    $0x5,%eax
    173d:	01 c3                	add    %eax,%ebx
    173f:	8b 42 e8             	mov    -0x18(%edx),%eax
    1742:	8b 0b                	mov    (%ebx),%ecx
    1744:	c1 e8 1e             	shr    $0x1e,%eax
    1747:	89 ca                	mov    %ecx,%edx
    1749:	c1 ea 1e             	shr    $0x1e,%edx
    174c:	39 d0                	cmp    %edx,%eax
    174e:	0f 84 94 00 00 00    	je     17e8 <free_pages_bulk+0x218>
    1754:	8b 7d e0             	mov    -0x20(%ebp),%edi
    1757:	8b 4d dc             	mov    -0x24(%ebp),%ecx
    175a:	89 79 0c             	mov    %edi,0xc(%ecx)
    175d:	0f ba 29 12          	btsl   $0x12,(%ecx)
    1761:	8b 45 e4             	mov    -0x1c(%ebp),%eax
    1764:	6b d7 2c             	imul   $0x2c,%edi,%edx
    1767:	89 ce                	mov    %ecx,%esi
    1769:	8b 7d d0             	mov    -0x30(%ebp),%edi
    176c:	83 c6 18             	add    $0x18,%esi
    176f:	8d 0c c2             	lea    (%edx,%eax,8),%ecx
    1772:	8d 9c 0f 80 04 00 00 	lea    0x480(%edi,%ecx,1),%ebx
    1779:	8b 43 04             	mov    0x4(%ebx),%eax
    177c:	89 70 04             	mov    %esi,0x4(%eax)
    177f:	8b 7d dc             	mov    -0x24(%ebp),%edi
    1782:	89 47 18             	mov    %eax,0x18(%edi)
    1785:	8b 7d d0             	mov    -0x30(%ebp),%edi
    1788:	8d 84 0f 84 04 00 00 	lea    0x484(%edi,%ecx,1),%eax
    178f:	8b 4d dc             	mov    -0x24(%ebp),%ecx
    1792:	89 73 04             	mov    %esi,0x4(%ebx)
    1795:	89 41 1c             	mov    %eax,0x1c(%ecx)
    1798:	83 84 17 ac 04 00 00 	addl   $0x1,0x4ac(%edi,%edx,1)
    179f:	01 
    17a0:	83 6d ec 01          	subl   $0x1,-0x14(%ebp)
    17a4:	8b 4d ec             	mov    -0x14(%ebp),%ecx
    17a7:	85 c9                	test   %ecx,%ecx
    17a9:	0f 85 79 fe ff ff    	jne    1628 <free_pages_bulk+0x58>
    17af:	8b 45 d4             	mov    -0x2c(%ebp),%eax
    17b2:	e8 fc ff ff ff       	call   17b3 <free_pages_bulk+0x1e3>
    17b7:	83 c4 28             	add    $0x28,%esp
    17ba:	5b                   	pop    %ebx
    17bb:	5e                   	pop    %esi
    17bc:	5f                   	pop    %edi
    17bd:	5d                   	pop    %ebp
    17be:	c3                   	ret    
    17bf:	90                   	nop    
    17c0:	8b 4d dc             	mov    -0x24(%ebp),%ecx
    17c3:	8b 41 3c             	mov    0x3c(%ecx),%eax
    17c6:	e9 bf fe ff ff       	jmp    168a <free_pages_bulk+0xba>
    17cb:	90                   	nop    
    17cc:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    17d0:	8b 45 dc             	mov    -0x24(%ebp),%eax
    17d3:	b9 02 00 00 00       	mov    $0x2,%ecx
    17d8:	31 d2                	xor    %edx,%edx
    17da:	e8 fc ff ff ff       	call   17db <free_pages_bulk+0x20b>
    17df:	89 45 e4             	mov    %eax,-0x1c(%ebp)
    17e2:	e9 84 fe ff ff       	jmp    166b <free_pages_bulk+0x9b>
    17e7:	90                   	nop    
    17e8:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
    17ee:	0f 84 60 ff ff ff    	je     1754 <free_pages_bulk+0x184>
    17f4:	8b 45 e8             	mov    -0x18(%ebp),%eax
    17f7:	8b 55 08             	mov    0x8(%ebp),%edx
    17fa:	89 45 f0             	mov    %eax,-0x10(%ebp)
    17fd:	3b 53 0c             	cmp    0xc(%ebx),%edx
    1800:	0f 85 4e ff ff ff    	jne    1754 <free_pages_bulk+0x184>
    1806:	66 90                	xchg   %ax,%ax
    1808:	80 e5 40             	and    $0x40,%ch
    180b:	89 d8                	mov    %ebx,%eax
    180d:	74 03                	je     1812 <free_pages_bulk+0x242>
    180f:	8b 43 0c             	mov    0xc(%ebx),%eax
    1812:	8b 40 04             	mov    0x4(%eax),%eax
    1815:	85 c0                	test   %eax,%eax
    1817:	0f 85 9c 00 00 00    	jne    18b9 <free_pages_bulk+0x2e9>
    181d:	8b 53 18             	mov    0x18(%ebx),%edx
    1820:	8b 43 1c             	mov    0x1c(%ebx),%eax
    1823:	89 42 04             	mov    %eax,0x4(%edx)
    1826:	89 10                	mov    %edx,(%eax)
    1828:	c7 43 1c 00 02 20 00 	movl   $0x200200,0x1c(%ebx)
    182f:	c7 43 18 00 01 10 00 	movl   $0x100100,0x18(%ebx)
    1836:	8b 55 d0             	mov    -0x30(%ebp),%edx
    1839:	6b 45 e0 2c          	imul   $0x2c,-0x20(%ebp),%eax
    183d:	83 ac 02 ac 04 00 00 	subl   $0x1,0x4ac(%edx,%eax,1)
    1844:	01 
    1845:	0f ba 33 12          	btrl   $0x12,(%ebx)
    1849:	c7 43 0c 00 00 00 00 	movl   $0x0,0xc(%ebx)
    1850:	8b 75 f0             	mov    -0x10(%ebp),%esi
    1853:	f7 d6                	not    %esi
    1855:	21 fe                	and    %edi,%esi
    1857:	89 f0                	mov    %esi,%eax
    1859:	29 f8                	sub    %edi,%eax
    185b:	8b 7d e0             	mov    -0x20(%ebp),%edi
    185e:	c1 e0 05             	shl    $0x5,%eax
    1861:	01 45 dc             	add    %eax,-0x24(%ebp)
    1864:	83 c7 01             	add    $0x1,%edi
    1867:	83 ff 09             	cmp    $0x9,%edi
    186a:	77 2b                	ja     1897 <free_pages_bulk+0x2c7>
    186c:	89 f9                	mov    %edi,%ecx
    186e:	b8 01 00 00 00       	mov    $0x1,%eax
    1873:	8b 5d dc             	mov    -0x24(%ebp),%ebx
    1876:	d3 e0                	shl    %cl,%eax
    1878:	8b 55 dc             	mov    -0x24(%ebp),%edx
    187b:	89 45 f0             	mov    %eax,-0x10(%ebp)
    187e:	31 f0                	xor    %esi,%eax
    1880:	29 f0                	sub    %esi,%eax
    1882:	c1 e0 05             	shl    $0x5,%eax
    1885:	01 c3                	add    %eax,%ebx
    1887:	8b 02                	mov    (%edx),%eax
    1889:	8b 0b                	mov    (%ebx),%ecx
    188b:	c1 e8 1e             	shr    $0x1e,%eax
    188e:	89 ca                	mov    %ecx,%edx
    1890:	c1 ea 1e             	shr    $0x1e,%edx
    1893:	39 d0                	cmp    %edx,%eax
    1895:	74 09                	je     18a0 <free_pages_bulk+0x2d0>
    1897:	89 7d e0             	mov    %edi,-0x20(%ebp)
    189a:	e9 b5 fe ff ff       	jmp    1754 <free_pages_bulk+0x184>
    189f:	90                   	nop    
    18a0:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
    18a6:	74 ef                	je     1897 <free_pages_bulk+0x2c7>
    18a8:	8b 43 0c             	mov    0xc(%ebx),%eax
    18ab:	39 f8                	cmp    %edi,%eax
    18ad:	89 45 e0             	mov    %eax,-0x20(%ebp)
    18b0:	75 e5                	jne    1897 <free_pages_bulk+0x2c7>
    18b2:	89 f7                	mov    %esi,%edi
    18b4:	e9 4f ff ff ff       	jmp    1808 <free_pages_bulk+0x238>
    18b9:	0f 0b                	ud2a   
    18bb:	eb fe                	jmp    18bb <free_pages_bulk+0x2eb>
    18bd:	8d 76 00             	lea    0x0(%esi),%esi

000018c0 <drain_local_pages>:
    18c0:	55                   	push   %ebp
    18c1:	89 e5                	mov    %esp,%ebp
    18c3:	57                   	push   %edi
    18c4:	56                   	push   %esi
    18c5:	53                   	push   %ebx
    18c6:	83 ec 04             	sub    $0x4,%esp
    18c9:	64 8b 35 00 00 00 00 	mov    %fs:0x0,%esi
    18d0:	e8 fc ff ff ff       	call   18d1 <drain_local_pages+0x11>
    18d5:	85 c0                	test   %eax,%eax
    18d7:	89 c3                	mov    %eax,%ebx
    18d9:	74 52                	je     192d <drain_local_pages+0x6d>
    18db:	8d 7e 01             	lea    0x1(%esi),%edi
    18de:	c1 e7 07             	shl    $0x7,%edi
    18e1:	eb 12                	jmp    18f5 <drain_local_pages+0x35>
    18e3:	90                   	nop    
    18e4:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    18e8:	89 d8                	mov    %ebx,%eax
    18ea:	e8 fc ff ff ff       	call   18eb <drain_local_pages+0x2b>
    18ef:	85 c0                	test   %eax,%eax
    18f1:	89 c3                	mov    %eax,%ebx
    18f3:	74 38                	je     192d <drain_local_pages+0x6d>
    18f5:	8b b3 98 07 00 00    	mov    0x798(%ebx),%esi
    18fb:	85 f6                	test   %esi,%esi
    18fd:	74 e9                	je     18e8 <drain_local_pages+0x28>
    18ff:	9c                   	pushf  
    1900:	5e                   	pop    %esi
    1901:	fa                   	cli    
    1902:	8b 14 1f             	mov    (%edi,%ebx,1),%edx
    1905:	8d 4c 3b 0c          	lea    0xc(%ebx,%edi,1),%ecx
    1909:	89 d8                	mov    %ebx,%eax
    190b:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
    1912:	e8 b9 fc ff ff       	call   15d0 <free_pages_bulk>
    1917:	c7 04 1f 00 00 00 00 	movl   $0x0,(%edi,%ebx,1)
    191e:	56                   	push   %esi
    191f:	9d                   	popf   
    1920:	89 d8                	mov    %ebx,%eax
    1922:	e8 fc ff ff ff       	call   1923 <drain_local_pages+0x63>
    1927:	85 c0                	test   %eax,%eax
    1929:	89 c3                	mov    %eax,%ebx
    192b:	75 c8                	jne    18f5 <drain_local_pages+0x35>
    192d:	83 c4 04             	add    $0x4,%esp
    1930:	5b                   	pop    %ebx
    1931:	5e                   	pop    %esi
    1932:	5f                   	pop    %edi
    1933:	5d                   	pop    %ebp
    1934:	c3                   	ret    
    1935:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    1939:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

00001940 <__rmqueue_smallest>:
    1940:	55                   	push   %ebp
    1941:	89 e5                	mov    %esp,%ebp
    1943:	57                   	push   %edi
    1944:	89 c7                	mov    %eax,%edi
    1946:	56                   	push   %esi
    1947:	53                   	push   %ebx
    1948:	83 ec 20             	sub    $0x20,%esp
    194b:	83 fa 0a             	cmp    $0xa,%edx
    194e:	89 55 e4             	mov    %edx,-0x1c(%ebp)
    1951:	89 4d e0             	mov    %ecx,-0x20(%ebp)
    1954:	77 6b                	ja     19c1 <__rmqueue_smallest+0x81>
    1956:	6b c2 2c             	imul   $0x2c,%edx,%eax
    1959:	89 cb                	mov    %ecx,%ebx
    195b:	8b 75 e4             	mov    -0x1c(%ebp),%esi
    195e:	c1 e3 03             	shl    $0x3,%ebx
    1961:	8d 14 03             	lea    (%ebx,%eax,1),%edx
    1964:	8d 84 07 84 04 00 00 	lea    0x484(%edi,%eax,1),%eax
    196b:	8d 8c 17 84 04 00 00 	lea    0x484(%edi,%edx,1),%ecx
    1972:	89 45 e8             	mov    %eax,-0x18(%ebp)
    1975:	39 8c 17 84 04 00 00 	cmp    %ecx,0x484(%edi,%edx,1)
    197c:	75 5a                	jne    19d8 <__rmqueue_smallest+0x98>
    197e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
    1981:	8b 75 e4             	mov    -0x1c(%ebp),%esi
    1984:	83 c0 01             	add    $0x1,%eax
    1987:	6b c0 2c             	imul   $0x2c,%eax,%eax
    198a:	8d 84 03 80 04 00 00 	lea    0x480(%ebx,%eax,1),%eax
    1991:	8d 4c 07 04          	lea    0x4(%edi,%eax,1),%ecx
    1995:	eb 22                	jmp    19b9 <__rmqueue_smallest+0x79>
    1997:	90                   	nop    
    1998:	6b c6 2c             	imul   $0x2c,%esi,%eax
    199b:	8d 94 07 84 04 00 00 	lea    0x484(%edi,%eax,1),%edx
    19a2:	89 55 e8             	mov    %edx,-0x18(%ebp)
    19a5:	8b 11                	mov    (%ecx),%edx
    19a7:	8d 84 18 80 04 00 00 	lea    0x480(%eax,%ebx,1),%eax
    19ae:	8d 44 07 04          	lea    0x4(%edi,%eax,1),%eax
    19b2:	83 c1 2c             	add    $0x2c,%ecx
    19b5:	39 c2                	cmp    %eax,%edx
    19b7:	75 1f                	jne    19d8 <__rmqueue_smallest+0x98>
    19b9:	83 c6 01             	add    $0x1,%esi
    19bc:	83 fe 0b             	cmp    $0xb,%esi
    19bf:	75 d7                	jne    1998 <__rmqueue_smallest+0x58>
    19c1:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
    19c8:	8b 45 ec             	mov    -0x14(%ebp),%eax
    19cb:	83 c4 20             	add    $0x20,%esp
    19ce:	5b                   	pop    %ebx
    19cf:	5e                   	pop    %esi
    19d0:	5f                   	pop    %edi
    19d1:	5d                   	pop    %ebp
    19d2:	c3                   	ret    
    19d3:	90                   	nop    
    19d4:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    19d8:	8b 4d e0             	mov    -0x20(%ebp),%ecx
    19db:	c1 e1 03             	shl    $0x3,%ecx
    19de:	89 4d dc             	mov    %ecx,-0x24(%ebp)
    19e1:	6b ce 2c             	imul   $0x2c,%esi,%ecx
    19e4:	8b 45 dc             	mov    -0x24(%ebp),%eax
    19e7:	01 c8                	add    %ecx,%eax
    19e9:	8b 9c 07 84 04 00 00 	mov    0x484(%edi,%eax,1),%ebx
    19f0:	8d 43 e8             	lea    -0x18(%ebx),%eax
    19f3:	89 45 ec             	mov    %eax,-0x14(%ebp)
    19f6:	8b 50 18             	mov    0x18(%eax),%edx
    19f9:	8b 40 1c             	mov    0x1c(%eax),%eax
    19fc:	89 10                	mov    %edx,(%eax)
    19fe:	89 42 04             	mov    %eax,0x4(%edx)
    1a01:	8b 55 ec             	mov    -0x14(%ebp),%edx
    1a04:	c7 42 18 00 01 10 00 	movl   $0x100100,0x18(%edx)
    1a0b:	c7 42 1c 00 02 20 00 	movl   $0x200200,0x1c(%edx)
    1a12:	0f ba 73 e8 12       	btrl   $0x12,-0x18(%ebx)
    1a17:	c7 42 0c 00 00 00 00 	movl   $0x0,0xc(%edx)
    1a1e:	bb 01 00 00 00       	mov    $0x1,%ebx
    1a23:	31 d2                	xor    %edx,%edx
    1a25:	83 ac 0f ac 04 00 00 	subl   $0x1,0x4ac(%edi,%ecx,1)
    1a2c:	01 
    1a2d:	89 d8                	mov    %ebx,%eax
    1a2f:	0f b6 4d e4          	movzbl -0x1c(%ebp),%ecx
    1a33:	d3 e0                	shl    %cl,%eax
    1a35:	f7 d8                	neg    %eax
    1a37:	89 c1                	mov    %eax,%ecx
    1a39:	89 f8                	mov    %edi,%eax
    1a3b:	e8 fc ff ff ff       	call   1a3c <__rmqueue_smallest+0xfc>
    1a40:	89 f7                	mov    %esi,%edi
    1a42:	39 75 e4             	cmp    %esi,-0x1c(%ebp)
    1a45:	7d 81                	jge    19c8 <__rmqueue_smallest+0x88>
    1a47:	89 f1                	mov    %esi,%ecx
    1a49:	8b 45 dc             	mov    -0x24(%ebp),%eax
    1a4c:	d3 e3                	shl    %cl,%ebx
    1a4e:	89 5d f0             	mov    %ebx,-0x10(%ebp)
    1a51:	8b 5d e8             	mov    -0x18(%ebp),%ebx
    1a54:	89 45 d8             	mov    %eax,-0x28(%ebp)
    1a57:	83 eb 2c             	sub    $0x2c,%ebx
    1a5a:	8d 34 03             	lea    (%ebx,%eax,1),%esi
    1a5d:	eb 04                	jmp    1a63 <__rmqueue_smallest+0x123>
    1a5f:	90                   	nop    
    1a60:	83 eb 2c             	sub    $0x2c,%ebx
    1a63:	d1 6d f0             	shrl   -0x10(%ebp)
    1a66:	83 ef 01             	sub    $0x1,%edi
    1a69:	8b 45 f0             	mov    -0x10(%ebp),%eax
    1a6c:	8b 16                	mov    (%esi),%edx
    1a6e:	c1 e0 05             	shl    $0x5,%eax
    1a71:	03 45 ec             	add    -0x14(%ebp),%eax
    1a74:	8d 48 18             	lea    0x18(%eax),%ecx
    1a77:	89 4a 04             	mov    %ecx,0x4(%edx)
    1a7a:	89 50 18             	mov    %edx,0x18(%eax)
    1a7d:	8b 55 d8             	mov    -0x28(%ebp),%edx
    1a80:	89 0e                	mov    %ecx,(%esi)
    1a82:	01 da                	add    %ebx,%edx
    1a84:	89 50 1c             	mov    %edx,0x1c(%eax)
    1a87:	83 43 28 01          	addl   $0x1,0x28(%ebx)
    1a8b:	89 78 0c             	mov    %edi,0xc(%eax)
    1a8e:	0f ba 28 12          	btsl   $0x12,(%eax)
    1a92:	83 ee 2c             	sub    $0x2c,%esi
    1a95:	39 7d e4             	cmp    %edi,-0x1c(%ebp)
    1a98:	7c c6                	jl     1a60 <__rmqueue_smallest+0x120>
    1a9a:	8b 45 ec             	mov    -0x14(%ebp),%eax
    1a9d:	83 c4 20             	add    $0x20,%esp
    1aa0:	5b                   	pop    %ebx
    1aa1:	5e                   	pop    %esi
    1aa2:	5f                   	pop    %edi
    1aa3:	5d                   	pop    %ebp
    1aa4:	c3                   	ret    
    1aa5:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    1aa9:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

00001ab0 <__rmqueue>:
    1ab0:	55                   	push   %ebp
    1ab1:	89 e5                	mov    %esp,%ebp
    1ab3:	83 ec 3c             	sub    $0x3c,%esp
    1ab6:	89 5d f4             	mov    %ebx,-0xc(%ebp)
    1ab9:	89 75 f8             	mov    %esi,-0x8(%ebp)
    1abc:	89 c6                	mov    %eax,%esi
    1abe:	89 7d fc             	mov    %edi,-0x4(%ebp)
    1ac1:	89 cf                	mov    %ecx,%edi
    1ac3:	89 55 e0             	mov    %edx,-0x20(%ebp)
    1ac6:	e8 75 fe ff ff       	call   1940 <__rmqueue_smallest>
    1acb:	85 c0                	test   %eax,%eax
    1acd:	89 c3                	mov    %eax,%ebx
    1acf:	74 0f                	je     1ae0 <__rmqueue+0x30>
    1ad1:	89 d8                	mov    %ebx,%eax
    1ad3:	8b 75 f8             	mov    -0x8(%ebp),%esi
    1ad6:	8b 5d f4             	mov    -0xc(%ebp),%ebx
    1ad9:	8b 7d fc             	mov    -0x4(%ebp),%edi
    1adc:	89 ec                	mov    %ebp,%esp
    1ade:	5d                   	pop    %ebp
    1adf:	c3                   	ret    
    1ae0:	83 7d e0 0a          	cmpl   $0xa,-0x20(%ebp)
    1ae4:	7f 70                	jg     1b56 <__rmqueue+0xa6>
    1ae6:	89 f8                	mov    %edi,%eax
    1ae8:	c1 e0 04             	shl    $0x4,%eax
    1aeb:	05 20 00 00 00       	add    $0x20,%eax
    1af0:	c7 45 f0 0a 00 00 00 	movl   $0xa,-0x10(%ebp)
    1af7:	89 45 d0             	mov    %eax,-0x30(%ebp)
    1afa:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    1b00:	6b 45 f0 2c          	imul   $0x2c,-0x10(%ebp),%eax
    1b04:	31 c9                	xor    %ecx,%ecx
    1b06:	8b 5d d0             	mov    -0x30(%ebp),%ebx
    1b09:	8d 94 06 84 04 00 00 	lea    0x484(%esi,%eax,1),%edx
    1b10:	89 55 e8             	mov    %edx,-0x18(%ebp)
    1b13:	89 45 d4             	mov    %eax,-0x2c(%ebp)
    1b16:	8b 03                	mov    (%ebx),%eax
    1b18:	83 f8 03             	cmp    $0x3,%eax
    1b1b:	89 45 ec             	mov    %eax,-0x14(%ebp)
    1b1e:	74 1f                	je     1b3f <__rmqueue+0x8f>
    1b20:	8b 55 d4             	mov    -0x2c(%ebp),%edx
    1b23:	8d 14 c2             	lea    (%edx,%eax,8),%edx
    1b26:	8d 84 16 84 04 00 00 	lea    0x484(%esi,%edx,1),%eax
    1b2d:	89 45 c8             	mov    %eax,-0x38(%ebp)
    1b30:	8d 84 16 80 04 00 00 	lea    0x480(%esi,%edx,1),%eax
    1b37:	8b 55 c8             	mov    -0x38(%ebp),%edx
    1b3a:	39 50 04             	cmp    %edx,0x4(%eax)
    1b3d:	75 2d                	jne    1b6c <__rmqueue+0xbc>
    1b3f:	83 c1 01             	add    $0x1,%ecx
    1b42:	83 c3 04             	add    $0x4,%ebx
    1b45:	83 f9 04             	cmp    $0x4,%ecx
    1b48:	75 cc                	jne    1b16 <__rmqueue+0x66>
    1b4a:	83 6d f0 01          	subl   $0x1,-0x10(%ebp)
    1b4e:	8b 45 f0             	mov    -0x10(%ebp),%eax
    1b51:	39 45 e0             	cmp    %eax,-0x20(%ebp)
    1b54:	7e aa                	jle    1b00 <__rmqueue+0x50>
    1b56:	8b 55 e0             	mov    -0x20(%ebp),%edx
    1b59:	b9 03 00 00 00       	mov    $0x3,%ecx
    1b5e:	89 f0                	mov    %esi,%eax
    1b60:	e8 db fd ff ff       	call   1940 <__rmqueue_smallest>
    1b65:	89 c3                	mov    %eax,%ebx
    1b67:	e9 65 ff ff ff       	jmp    1ad1 <__rmqueue+0x21>
    1b6c:	8b 40 04             	mov    0x4(%eax),%eax
    1b6f:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
    1b72:	89 45 dc             	mov    %eax,-0x24(%ebp)
    1b75:	89 c3                	mov    %eax,%ebx
    1b77:	83 ac 0e ac 04 00 00 	subl   $0x1,0x4ac(%esi,%ecx,1)
    1b7e:	01 
    1b7f:	83 eb 18             	sub    $0x18,%ebx
    1b82:	83 7d f0 03          	cmpl   $0x3,-0x10(%ebp)
    1b86:	0f 8e d7 00 00 00    	jle    1c63 <__rmqueue+0x1b3>
    1b8c:	89 f9                	mov    %edi,%ecx
    1b8e:	89 da                	mov    %ebx,%edx
    1b90:	89 f0                	mov    %esi,%eax
    1b92:	e8 39 e5 ff ff       	call   d0 <move_freepages_block>
    1b97:	89 7d ec             	mov    %edi,-0x14(%ebp)
    1b9a:	3d ff 00 00 00       	cmp    $0xff,%eax
    1b9f:	0f 87 e7 00 00 00    	ja     1c8c <__rmqueue+0x1dc>
    1ba5:	8b 43 1c             	mov    0x1c(%ebx),%eax
    1ba8:	8b 53 18             	mov    0x18(%ebx),%edx
    1bab:	89 42 04             	mov    %eax,0x4(%edx)
    1bae:	89 10                	mov    %edx,(%eax)
    1bb0:	c7 43 1c 00 02 20 00 	movl   $0x200200,0x1c(%ebx)
    1bb7:	c7 43 18 00 01 10 00 	movl   $0x100100,0x18(%ebx)
    1bbe:	8b 45 dc             	mov    -0x24(%ebp),%eax
    1bc1:	0f ba 70 e8 12       	btrl   $0x12,-0x18(%eax)
    1bc6:	c7 43 0c 00 00 00 00 	movl   $0x0,0xc(%ebx)
    1bcd:	0f b6 4d e0          	movzbl -0x20(%ebp),%ecx
    1bd1:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
    1bd6:	31 d2                	xor    %edx,%edx
    1bd8:	d3 e0                	shl    %cl,%eax
    1bda:	89 c1                	mov    %eax,%ecx
    1bdc:	89 f0                	mov    %esi,%eax
    1bde:	e8 fc ff ff ff       	call   1bdf <__rmqueue+0x12f>
    1be3:	83 7d f0 09          	cmpl   $0x9,-0x10(%ebp)
    1be7:	0f 84 88 00 00 00    	je     1c75 <__rmqueue+0x1c5>
    1bed:	8b 45 f0             	mov    -0x10(%ebp),%eax
    1bf0:	39 45 e0             	cmp    %eax,-0x20(%ebp)
    1bf3:	0f 8d d8 fe ff ff    	jge    1ad1 <__rmqueue+0x21>
    1bf9:	89 c1                	mov    %eax,%ecx
    1bfb:	8b 75 e8             	mov    -0x18(%ebp),%esi
    1bfe:	8b 45 ec             	mov    -0x14(%ebp),%eax
    1c01:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
    1c08:	d3 65 e4             	shll   %cl,-0x1c(%ebp)
    1c0b:	83 ee 2c             	sub    $0x2c,%esi
    1c0e:	c1 e0 03             	shl    $0x3,%eax
    1c11:	8d 3c 06             	lea    (%esi,%eax,1),%edi
    1c14:	89 45 d8             	mov    %eax,-0x28(%ebp)
    1c17:	eb 0a                	jmp    1c23 <__rmqueue+0x173>
    1c19:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
    1c20:	83 ee 2c             	sub    $0x2c,%esi
    1c23:	d1 6d e4             	shrl   -0x1c(%ebp)
    1c26:	8b 45 e4             	mov    -0x1c(%ebp),%eax
    1c29:	83 6d f0 01          	subl   $0x1,-0x10(%ebp)
    1c2d:	8b 17                	mov    (%edi),%edx
    1c2f:	c1 e0 05             	shl    $0x5,%eax
    1c32:	8d 04 03             	lea    (%ebx,%eax,1),%eax
    1c35:	8d 48 18             	lea    0x18(%eax),%ecx
    1c38:	89 4a 04             	mov    %ecx,0x4(%edx)
    1c3b:	89 50 18             	mov    %edx,0x18(%eax)
    1c3e:	8b 55 d8             	mov    -0x28(%ebp),%edx
    1c41:	89 0f                	mov    %ecx,(%edi)
    1c43:	01 f2                	add    %esi,%edx
    1c45:	89 50 1c             	mov    %edx,0x1c(%eax)
    1c48:	83 46 28 01          	addl   $0x1,0x28(%esi)
    1c4c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
    1c4f:	89 48 0c             	mov    %ecx,0xc(%eax)
    1c52:	0f ba 28 12          	btsl   $0x12,(%eax)
    1c56:	83 ef 2c             	sub    $0x2c,%edi
    1c59:	39 4d e0             	cmp    %ecx,-0x20(%ebp)
    1c5c:	7c c2                	jl     1c20 <__rmqueue+0x170>
    1c5e:	e9 6e fe ff ff       	jmp    1ad1 <__rmqueue+0x21>
    1c63:	83 ff 01             	cmp    $0x1,%edi
    1c66:	0f 85 39 ff ff ff    	jne    1ba5 <__rmqueue+0xf5>
    1c6c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    1c70:	e9 17 ff ff ff       	jmp    1b8c <__rmqueue+0xdc>
    1c75:	31 c9                	xor    %ecx,%ecx
    1c77:	89 fa                	mov    %edi,%edx
    1c79:	89 d8                	mov    %ebx,%eax
    1c7b:	c7 04 24 02 00 00 00 	movl   $0x2,(%esp)
    1c82:	e8 fc ff ff ff       	call   1c83 <__rmqueue+0x1d3>
    1c87:	e9 61 ff ff ff       	jmp    1bed <__rmqueue+0x13d>
    1c8c:	31 c9                	xor    %ecx,%ecx
    1c8e:	89 fa                	mov    %edi,%edx
    1c90:	89 d8                	mov    %ebx,%eax
    1c92:	c7 04 24 02 00 00 00 	movl   $0x2,(%esp)
    1c99:	e8 fc ff ff ff       	call   1c9a <__rmqueue+0x1ea>
    1c9e:	89 7d ec             	mov    %edi,-0x14(%ebp)
    1ca1:	e9 ff fe ff ff       	jmp    1ba5 <__rmqueue+0xf5>
    1ca6:	8d 76 00             	lea    0x0(%esi),%esi
    1ca9:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

00001cb0 <rmqueue_bulk>:
    1cb0:	55                   	push   %ebp
    1cb1:	89 e5                	mov    %esp,%ebp
    1cb3:	57                   	push   %edi
    1cb4:	89 cf                	mov    %ecx,%edi
    1cb6:	56                   	push   %esi
    1cb7:	31 f6                	xor    %esi,%esi
    1cb9:	53                   	push   %ebx
    1cba:	83 ec 0c             	sub    $0xc,%esp
    1cbd:	8b 5d 08             	mov    0x8(%ebp),%ebx
    1cc0:	89 45 ec             	mov    %eax,-0x14(%ebp)
    1cc3:	05 80 04 00 00       	add    $0x480,%eax
    1cc8:	89 55 e8             	mov    %edx,-0x18(%ebp)
    1ccb:	89 45 f0             	mov    %eax,-0x10(%ebp)
    1cce:	e8 fc ff ff ff       	call   1ccf <rmqueue_bulk+0x1f>
    1cd3:	85 ff                	test   %edi,%edi
    1cd5:	75 0b                	jne    1ce2 <rmqueue_bulk+0x32>
    1cd7:	eb 3a                	jmp    1d13 <rmqueue_bulk+0x63>
    1cd9:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
    1ce0:	89 cb                	mov    %ecx,%ebx
    1ce2:	8b 55 e8             	mov    -0x18(%ebp),%edx
    1ce5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
    1ce8:	8b 45 ec             	mov    -0x14(%ebp),%eax
    1ceb:	e8 c0 fd ff ff       	call   1ab0 <__rmqueue>
    1cf0:	85 c0                	test   %eax,%eax
    1cf2:	89 c2                	mov    %eax,%edx
    1cf4:	74 1d                	je     1d13 <rmqueue_bulk+0x63>
    1cf6:	8d 48 18             	lea    0x18(%eax),%ecx
    1cf9:	8b 03                	mov    (%ebx),%eax
    1cfb:	83 c6 01             	add    $0x1,%esi
    1cfe:	39 fe                	cmp    %edi,%esi
    1d00:	89 48 04             	mov    %ecx,0x4(%eax)
    1d03:	89 42 18             	mov    %eax,0x18(%edx)
    1d06:	89 5a 1c             	mov    %ebx,0x1c(%edx)
    1d09:	89 0b                	mov    %ecx,(%ebx)
    1d0b:	8b 45 0c             	mov    0xc(%ebp),%eax
    1d0e:	89 42 0c             	mov    %eax,0xc(%edx)
    1d11:	72 cd                	jb     1ce0 <rmqueue_bulk+0x30>
    1d13:	8b 45 f0             	mov    -0x10(%ebp),%eax
    1d16:	e8 fc ff ff ff       	call   1d17 <rmqueue_bulk+0x67>
    1d1b:	89 f0                	mov    %esi,%eax
    1d1d:	83 c4 0c             	add    $0xc,%esp
    1d20:	5b                   	pop    %ebx
    1d21:	5e                   	pop    %esi
    1d22:	5f                   	pop    %edi
    1d23:	5d                   	pop    %ebp
    1d24:	c3                   	ret    
    1d25:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    1d29:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

00001d30 <free_hot_cold_page>:
    1d30:	55                   	push   %ebp
    1d31:	89 e5                	mov    %esp,%ebp
    1d33:	57                   	push   %edi
    1d34:	56                   	push   %esi
    1d35:	89 c6                	mov    %eax,%esi
    1d37:	53                   	push   %ebx
    1d38:	83 ec 14             	sub    $0x14,%esp
    1d3b:	89 55 e8             	mov    %edx,-0x18(%ebp)
    1d3e:	8b 00                	mov    (%eax),%eax
    1d40:	89 45 f0             	mov    %eax,-0x10(%ebp)
    1d43:	f6 46 10 01          	testb  $0x1,0x10(%esi)
    1d47:	74 07                	je     1d50 <free_hot_cold_page+0x20>
    1d49:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
    1d50:	f0 0f ba 36 15       	lock btrl $0x15,(%esi)
    1d55:	19 c0                	sbb    %eax,%eax
    1d57:	85 c0                	test   %eax,%eax
    1d59:	0f 85 81 01 00 00    	jne    1ee0 <free_hot_cold_page+0x1b0>
    1d5f:	8b 1e                	mov    (%esi),%ebx
    1d61:	89 f2                	mov    %esi,%edx
    1d63:	8b 7e 08             	mov    0x8(%esi),%edi
    1d66:	8b 46 10             	mov    0x10(%esi),%eax
    1d69:	f6 c7 40             	test   $0x40,%bh
    1d6c:	74 03                	je     1d71 <free_hot_cold_page+0x41>
    1d6e:	8b 56 0c             	mov    0xc(%esi),%edx
    1d71:	8b 4a 04             	mov    0x4(%edx),%ecx
    1d74:	31 d2                	xor    %edx,%edx
    1d76:	85 c0                	test   %eax,%eax
    1d78:	0f 95 c2             	setne  %dl
    1d7b:	8d 47 01             	lea    0x1(%edi),%eax
    1d7e:	09 c2                	or     %eax,%edx
    1d80:	31 c0                	xor    %eax,%eax
    1d82:	85 c9                	test   %ecx,%ecx
    1d84:	0f 95 c0             	setne  %al
    1d87:	09 c2                	or     %eax,%edx
    1d89:	89 d8                	mov    %ebx,%eax
    1d8b:	25 e1 9c 34 00       	and    $0x349ce1,%eax
    1d90:	09 c2                	or     %eax,%edx
    1d92:	0f 85 38 01 00 00    	jne    1ed0 <free_hot_cold_page+0x1a0>
    1d98:	f7 c3 ff ff 3f 00    	test   $0x3fffff,%ebx
    1d9e:	74 08                	je     1da8 <free_hot_cold_page+0x78>
    1da0:	81 e3 00 00 c0 ff    	and    $0xffc00000,%ebx
    1da6:	89 1e                	mov    %ebx,(%esi)
    1da8:	c1 eb 1e             	shr    $0x1e,%ebx
    1dab:	c1 e3 0b             	shl    $0xb,%ebx
    1dae:	8d 83 00 00 00 00    	lea    0x0(%ebx),%eax
    1db4:	2b 80 8c 07 00 00    	sub    0x78c(%eax),%eax
    1dba:	3d 00 10 00 00       	cmp    $0x1000,%eax
    1dbf:	74 19                	je     1dda <free_hot_cold_page+0xaa>
    1dc1:	3d 00 18 00 00       	cmp    $0x1800,%eax
    1dc6:	0f 84 74 01 00 00    	je     1f40 <free_hot_cold_page+0x210>
    1dcc:	89 f0                	mov    %esi,%eax
    1dce:	e8 fc ff ff ff       	call   1dcf <free_hot_cold_page+0x9f>
    1dd3:	89 f0                	mov    %esi,%eax
    1dd5:	e8 fc ff ff ff       	call   1dd6 <free_hot_cold_page+0xa6>
    1dda:	8b 55 f0             	mov    -0x10(%ebp),%edx
    1ddd:	89 e0                	mov    %esp,%eax
    1ddf:	25 00 f0 ff ff       	and    $0xfffff000,%eax
    1de4:	c1 ea 1e             	shr    $0x1e,%edx
    1de7:	c1 e2 0b             	shl    $0xb,%edx
    1dea:	89 d7                	mov    %edx,%edi
    1dec:	89 55 e4             	mov    %edx,-0x1c(%ebp)
    1def:	81 c7 00 00 00 00    	add    $0x0,%edi
    1df5:	83 40 14 01          	addl   $0x1,0x14(%eax)
    1df9:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
    1e00:	9c                   	pushf  
    1e01:	8f 45 ec             	popl   -0x14(%ebp)
    1e04:	fa                   	cli    
    1e05:	64 8b 15 00 00 00 00 	mov    %fs:0x0,%edx
    1e0c:	b8 00 00 00 00       	mov    $0x0,%eax
    1e11:	83 44 10 20 01       	addl   $0x1,0x20(%eax,%edx,1)
    1e16:	8b 4d e8             	mov    -0x18(%ebp),%ecx
    1e19:	85 c9                	test   %ecx,%ecx
    1e1b:	75 73                	jne    1e90 <free_hot_cold_page+0x160>
    1e1d:	83 c3 01             	add    $0x1,%ebx
    1e20:	89 da                	mov    %ebx,%edx
    1e22:	c1 e2 07             	shl    $0x7,%edx
    1e25:	8b 44 3a 0c          	mov    0xc(%edx,%edi,1),%eax
    1e29:	8d 4e 18             	lea    0x18(%esi),%ecx
    1e2c:	89 48 04             	mov    %ecx,0x4(%eax)
    1e2f:	89 46 18             	mov    %eax,0x18(%esi)
    1e32:	8d 44 17 0c          	lea    0xc(%edi,%edx,1),%eax
    1e36:	89 46 1c             	mov    %eax,0x1c(%esi)
    1e39:	31 c0                	xor    %eax,%eax
    1e3b:	89 4c 3a 0c          	mov    %ecx,0xc(%edx,%edi,1)
    1e3f:	8b 15 00 00 00 00    	mov    0x0,%edx
    1e45:	85 d2                	test   %edx,%edx
    1e47:	74 72                	je     1ebb <free_hot_cold_page+0x18b>
    1e49:	89 46 0c             	mov    %eax,0xc(%esi)
    1e4c:	8b 55 e4             	mov    -0x1c(%ebp),%edx
    1e4f:	c1 e3 07             	shl    $0x7,%ebx
    1e52:	8b 84 1a 00 00 00 00 	mov    0x0(%edx,%ebx,1),%eax
    1e59:	83 c0 01             	add    $0x1,%eax
    1e5c:	3b 44 3b 04          	cmp    0x4(%ebx,%edi,1),%eax
    1e60:	89 84 1a 00 00 00 00 	mov    %eax,0x0(%edx,%ebx,1)
    1e67:	0f 8d a3 00 00 00    	jge    1f10 <free_hot_cold_page+0x1e0>
    1e6d:	ff 75 ec             	pushl  -0x14(%ebp)
    1e70:	9d                   	popf   
    1e71:	89 e0                	mov    %esp,%eax
    1e73:	25 00 f0 ff ff       	and    $0xfffff000,%eax
    1e78:	83 68 14 01          	subl   $0x1,0x14(%eax)
    1e7c:	f6 40 08 08          	testb  $0x8,0x8(%eax)
    1e80:	0f 85 cc 00 00 00    	jne    1f52 <free_hot_cold_page+0x222>
    1e86:	83 c4 14             	add    $0x14,%esp
    1e89:	5b                   	pop    %ebx
    1e8a:	5e                   	pop    %esi
    1e8b:	5f                   	pop    %edi
    1e8c:	5d                   	pop    %ebp
    1e8d:	c3                   	ret    
    1e8e:	66 90                	xchg   %ax,%ax
    1e90:	83 c3 01             	add    $0x1,%ebx
    1e93:	89 d8                	mov    %ebx,%eax
    1e95:	c1 e0 07             	shl    $0x7,%eax
    1e98:	8b 54 38 10          	mov    0x10(%eax,%edi,1),%edx
    1e9c:	8d 4e 18             	lea    0x18(%esi),%ecx
    1e9f:	89 4c 38 10          	mov    %ecx,0x10(%eax,%edi,1)
    1ea3:	8d 44 07 0c          	lea    0xc(%edi,%eax,1),%eax
    1ea7:	89 46 18             	mov    %eax,0x18(%esi)
    1eaa:	31 c0                	xor    %eax,%eax
    1eac:	89 56 1c             	mov    %edx,0x1c(%esi)
    1eaf:	89 0a                	mov    %ecx,(%edx)
    1eb1:	8b 15 00 00 00 00    	mov    0x0,%edx
    1eb7:	85 d2                	test   %edx,%edx
    1eb9:	75 8e                	jne    1e49 <free_hot_cold_page+0x119>
    1ebb:	b9 02 00 00 00       	mov    $0x2,%ecx
    1ec0:	31 d2                	xor    %edx,%edx
    1ec2:	89 f0                	mov    %esi,%eax
    1ec4:	e8 fc ff ff ff       	call   1ec5 <free_hot_cold_page+0x195>
    1ec9:	e9 7b ff ff ff       	jmp    1e49 <free_hot_cold_page+0x119>
    1ece:	66 90                	xchg   %ax,%ax
    1ed0:	89 f0                	mov    %esi,%eax
    1ed2:	e8 a9 f1 ff ff       	call   1080 <bad_page>
    1ed7:	83 c4 14             	add    $0x14,%esp
    1eda:	5b                   	pop    %ebx
    1edb:	5e                   	pop    %esi
    1edc:	5f                   	pop    %edi
    1edd:	5d                   	pop    %ebp
    1ede:	c3                   	ret    
    1edf:	90                   	nop    
    1ee0:	9c                   	pushf  
    1ee1:	5b                   	pop    %ebx
    1ee2:	fa                   	cli    
    1ee3:	ba 06 00 00 00       	mov    $0x6,%edx
    1ee8:	89 f0                	mov    %esi,%eax
    1eea:	e8 fc ff ff ff       	call   1eeb <free_hot_cold_page+0x1bb>
    1eef:	b8 00 00 00 00       	mov    $0x0,%eax
    1ef4:	64 8b 15 00 00 00 00 	mov    %fs:0x0,%edx
    1efb:	83 84 10 b4 00 00 00 	addl   $0x1,0xb4(%eax,%edx,1)
    1f02:	01 
    1f03:	53                   	push   %ebx
    1f04:	9d                   	popf   
    1f05:	e9 55 fe ff ff       	jmp    1d5f <free_hot_cold_page+0x2f>
    1f0a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    1f10:	8b 54 3b 08          	mov    0x8(%ebx,%edi,1),%edx
    1f14:	89 f8                	mov    %edi,%eax
    1f16:	8d 4c 1f 0c          	lea    0xc(%edi,%ebx,1),%ecx
    1f1a:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
    1f21:	e8 aa f6 ff ff       	call   15d0 <free_pages_bulk>
    1f26:	8b 55 e4             	mov    -0x1c(%ebp),%edx
    1f29:	8b 84 1a 00 00 00 00 	mov    0x0(%edx,%ebx,1),%eax
    1f30:	2b 44 1f 08          	sub    0x8(%edi,%ebx,1),%eax
    1f34:	89 84 1a 00 00 00 00 	mov    %eax,0x0(%edx,%ebx,1)
    1f3b:	e9 2d ff ff ff       	jmp    1e6d <free_hot_cold_page+0x13d>
    1f40:	83 3d 00 00 00 00 02 	cmpl   $0x2,0x0
    1f47:	0f 85 7f fe ff ff    	jne    1dcc <free_hot_cold_page+0x9c>
    1f4d:	e9 88 fe ff ff       	jmp    1dda <free_hot_cold_page+0xaa>
    1f52:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    1f58:	e8 fc ff ff ff       	call   1f59 <free_hot_cold_page+0x229>
    1f5d:	8d 76 00             	lea    0x0(%esi),%esi
    1f60:	e9 21 ff ff ff       	jmp    1e86 <free_hot_cold_page+0x156>
    1f65:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    1f69:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

00001f70 <__pagevec_free>:
    1f70:	55                   	push   %ebp
    1f71:	89 e5                	mov    %esp,%ebp
    1f73:	57                   	push   %edi
    1f74:	89 c7                	mov    %eax,%edi
    1f76:	56                   	push   %esi
    1f77:	53                   	push   %ebx
    1f78:	8b 00                	mov    (%eax),%eax
    1f7a:	89 c6                	mov    %eax,%esi
    1f7c:	83 ee 01             	sub    $0x1,%esi
    1f7f:	78 19                	js     1f9a <__pagevec_free+0x2a>
    1f81:	8d 5c b7 08          	lea    0x8(%edi,%esi,4),%ebx
    1f85:	8d 76 00             	lea    0x0(%esi),%esi
    1f88:	8b 03                	mov    (%ebx),%eax
    1f8a:	83 eb 04             	sub    $0x4,%ebx
    1f8d:	8b 57 04             	mov    0x4(%edi),%edx
    1f90:	e8 9b fd ff ff       	call   1d30 <free_hot_cold_page>
    1f95:	83 ee 01             	sub    $0x1,%esi
    1f98:	79 ee                	jns    1f88 <__pagevec_free+0x18>
    1f9a:	5b                   	pop    %ebx
    1f9b:	5e                   	pop    %esi
    1f9c:	5f                   	pop    %edi
    1f9d:	5d                   	pop    %ebp
    1f9e:	c3                   	ret    
    1f9f:	90                   	nop    

00001fa0 <free_cold_page>:
    1fa0:	55                   	push   %ebp
    1fa1:	ba 01 00 00 00       	mov    $0x1,%edx
    1fa6:	89 e5                	mov    %esp,%ebp
    1fa8:	e8 83 fd ff ff       	call   1d30 <free_hot_cold_page>
    1fad:	5d                   	pop    %ebp
    1fae:	c3                   	ret    
    1faf:	90                   	nop    

00001fb0 <free_hot_page>:
    1fb0:	55                   	push   %ebp
    1fb1:	31 d2                	xor    %edx,%edx
    1fb3:	89 e5                	mov    %esp,%ebp
    1fb5:	e8 76 fd ff ff       	call   1d30 <free_hot_cold_page>
    1fba:	5d                   	pop    %ebp
    1fbb:	c3                   	ret    
    1fbc:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi

00001fc0 <__free_pages>:
    1fc0:	55                   	push   %ebp
    1fc1:	89 c1                	mov    %eax,%ecx
    1fc3:	89 e5                	mov    %esp,%ebp
    1fc5:	8d 40 04             	lea    0x4(%eax),%eax
    1fc8:	53                   	push   %ebx
    1fc9:	89 d3                	mov    %edx,%ebx
    1fcb:	f0 ff 08             	lock decl (%eax)
    1fce:	0f 94 c2             	sete   %dl
    1fd1:	84 d2                	test   %dl,%dl
    1fd3:	74 0d                	je     1fe2 <__free_pages+0x22>
    1fd5:	85 db                	test   %ebx,%ebx
    1fd7:	74 0f                	je     1fe8 <__free_pages+0x28>
    1fd9:	89 da                	mov    %ebx,%edx
    1fdb:	89 c8                	mov    %ecx,%eax
    1fdd:	e8 ce f1 ff ff       	call   11b0 <__free_pages_ok>
    1fe2:	5b                   	pop    %ebx
    1fe3:	5d                   	pop    %ebp
    1fe4:	c3                   	ret    
    1fe5:	8d 76 00             	lea    0x0(%esi),%esi
    1fe8:	89 c8                	mov    %ecx,%eax
    1fea:	e8 fc ff ff ff       	call   1feb <__free_pages+0x2b>
    1fef:	5b                   	pop    %ebx
    1ff0:	5d                   	pop    %ebp
    1ff1:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
    1ff8:	c3                   	ret    
    1ff9:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi

00002000 <free_pages>:
    2000:	55                   	push   %ebp
    2001:	85 c0                	test   %eax,%eax
    2003:	89 e5                	mov    %esp,%ebp
    2005:	75 09                	jne    2010 <free_pages+0x10>
    2007:	5d                   	pop    %ebp
    2008:	c3                   	ret    
    2009:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
    2010:	05 00 00 00 40       	add    $0x40000000,%eax
    2015:	c1 e8 0c             	shr    $0xc,%eax
    2018:	c1 e0 05             	shl    $0x5,%eax
    201b:	03 05 00 00 00 00    	add    0x0,%eax
    2021:	e8 fc ff ff ff       	call   2022 <free_pages+0x22>
    2026:	5d                   	pop    %ebp
    2027:	c3                   	ret    
    2028:	90                   	nop    
    2029:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi

00002030 <free_pages_exact>:
    2030:	81 c2 ff 0f 00 00    	add    $0xfff,%edx
    2036:	55                   	push   %ebp
    2037:	81 e2 00 f0 ff ff    	and    $0xfffff000,%edx
    203d:	89 e5                	mov    %esp,%ebp
    203f:	56                   	push   %esi
    2040:	8d 34 10             	lea    (%eax,%edx,1),%esi
    2043:	39 f0                	cmp    %esi,%eax
    2045:	53                   	push   %ebx
    2046:	89 c3                	mov    %eax,%ebx
    2048:	73 19                	jae    2063 <free_pages_exact+0x33>
    204a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    2050:	31 d2                	xor    %edx,%edx
    2052:	89 d8                	mov    %ebx,%eax
    2054:	81 c3 00 10 00 00    	add    $0x1000,%ebx
    205a:	e8 fc ff ff ff       	call   205b <free_pages_exact+0x2b>
    205f:	39 de                	cmp    %ebx,%esi
    2061:	77 ed                	ja     2050 <free_pages_exact+0x20>
    2063:	5b                   	pop    %ebx
    2064:	5e                   	pop    %esi
    2065:	5d                   	pop    %ebp
    2066:	c3                   	ret    
    2067:	89 f6                	mov    %esi,%esi
    2069:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

00002070 <get_page_from_freelist>:
    2070:	55                   	push   %ebp
    2071:	89 e5                	mov    %esp,%ebp
    2073:	57                   	push   %edi
    2074:	56                   	push   %esi
    2075:	53                   	push   %ebx
    2076:	83 ec 54             	sub    $0x54,%esp
    2079:	8b 5d 08             	mov    0x8(%ebp),%ebx
    207c:	89 45 c8             	mov    %eax,-0x38(%ebp)
    207f:	8d 45 ec             	lea    -0x14(%ebp),%eax
    2082:	89 55 c4             	mov    %edx,-0x3c(%ebp)
    2085:	89 4d c0             	mov    %ecx,-0x40(%ebp)
    2088:	89 d1                	mov    %edx,%ecx
    208a:	89 04 24             	mov    %eax,(%esp)
    208d:	8b 55 0c             	mov    0xc(%ebp),%edx
    2090:	83 c3 04             	add    $0x4,%ebx
    2093:	89 d8                	mov    %ebx,%eax
    2095:	e8 fc ff ff ff       	call   2096 <get_page_from_freelist+0x26>
    209a:	8b 45 ec             	mov    -0x14(%ebp),%eax
    209d:	85 c0                	test   %eax,%eax
    209f:	0f 84 e3 03 00 00    	je     2488 <get_page_from_freelist+0x418>
    20a5:	2b 80 8c 07 00 00    	sub    0x78c(%eax),%eax
    20ab:	c1 f8 0b             	sar    $0xb,%eax
    20ae:	89 45 bc             	mov    %eax,-0x44(%ebp)
    20b1:	8d 45 f0             	lea    -0x10(%ebp),%eax
    20b4:	89 04 24             	mov    %eax,(%esp)
    20b7:	8b 55 0c             	mov    0xc(%ebp),%edx
    20ba:	89 d8                	mov    %ebx,%eax
    20bc:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
    20bf:	e8 fc ff ff ff       	call   20c0 <get_page_from_freelist+0x50>
    20c4:	8b 55 f0             	mov    -0x10(%ebp),%edx
    20c7:	85 d2                	test   %edx,%edx
    20c9:	89 55 b8             	mov    %edx,-0x48(%ebp)
    20cc:	89 45 e8             	mov    %eax,-0x18(%ebp)
    20cf:	0f 84 b3 03 00 00    	je     2488 <get_page_from_freelist+0x418>
    20d5:	8b 4d 10             	mov    0x10(%ebp),%ecx
    20d8:	b8 00 00 00 00       	mov    $0x0,%eax
    20dd:	89 45 b4             	mov    %eax,-0x4c(%ebp)
    20e0:	83 e1 01             	and    $0x1,%ecx
    20e3:	89 4d e0             	mov    %ecx,-0x20(%ebp)
    20e6:	66 90                	xchg   %ax,%ax
    20e8:	8b 75 e0             	mov    -0x20(%ebp),%esi
    20eb:	85 f6                	test   %esi,%esi
    20ed:	75 35                	jne    2124 <get_page_from_freelist+0xb4>
    20ef:	f6 45 10 02          	testb  $0x2,0x10(%ebp)
    20f3:	0f 84 9f 03 00 00    	je     2498 <get_page_from_freelist+0x428>
    20f9:	8b 55 b8             	mov    -0x48(%ebp),%edx
    20fc:	8b 0a                	mov    (%edx),%ecx
    20fe:	8b 45 10             	mov    0x10(%ebp),%eax
    2101:	89 44 24 04          	mov    %eax,0x4(%esp)
    2105:	8b 55 bc             	mov    -0x44(%ebp),%edx
    2108:	89 14 24             	mov    %edx,(%esp)
    210b:	8b 55 c0             	mov    -0x40(%ebp),%edx
    210e:	8b 45 b8             	mov    -0x48(%ebp),%eax
    2111:	e8 fc ff ff ff       	call   2112 <get_page_from_freelist+0xa2>
    2116:	85 c0                	test   %eax,%eax
    2118:	0f 84 42 03 00 00    	je     2460 <get_page_from_freelist+0x3f0>
    211e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
    2121:	89 4d b8             	mov    %ecx,-0x48(%ebp)
    2124:	8b 45 c8             	mov    -0x38(%ebp),%eax
    2127:	25 00 01 00 00       	and    $0x100,%eax
    212c:	89 45 dc             	mov    %eax,-0x24(%ebp)
    212f:	8b 45 c8             	mov    -0x38(%ebp),%eax
    2132:	25 00 00 18 00       	and    $0x180000,%eax
    2137:	3d 00 00 18 00       	cmp    $0x180000,%eax
    213c:	0f 84 76 03 00 00    	je     24b8 <get_page_from_freelist+0x448>
    2142:	8b 1d 00 00 00 00    	mov    0x0,%ebx
    2148:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
    214f:	85 db                	test   %ebx,%ebx
    2151:	75 20                	jne    2173 <get_page_from_freelist+0x103>
    2153:	8b 45 c8             	mov    -0x38(%ebp),%eax
    2156:	25 00 00 10 00       	and    $0x100000,%eax
    215b:	83 f8 01             	cmp    $0x1,%eax
    215e:	8b 45 c8             	mov    -0x38(%ebp),%eax
    2161:	19 d2                	sbb    %edx,%edx
    2163:	f7 d2                	not    %edx
    2165:	83 e2 02             	and    $0x2,%edx
    2168:	c1 e8 13             	shr    $0x13,%eax
    216b:	83 e0 01             	and    $0x1,%eax
    216e:	09 c2                	or     %eax,%edx
    2170:	89 55 cc             	mov    %edx,-0x34(%ebp)
    2173:	8b 4d b8             	mov    -0x48(%ebp),%ecx
    2176:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
    217d:	81 c1 80 04 00 00    	add    $0x480,%ecx
    2183:	89 4d d8             	mov    %ecx,-0x28(%ebp)
    2186:	0f b6 4d c0          	movzbl -0x40(%ebp),%ecx
    218a:	d3 65 d4             	shll   %cl,-0x2c(%ebp)
    218d:	89 e0                	mov    %esp,%eax
    218f:	25 00 f0 ff ff       	and    $0xfffff000,%eax
    2194:	83 40 14 01          	addl   $0x1,0x14(%eax)
    2198:	8b 4d c0             	mov    -0x40(%ebp),%ecx
    219b:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
    21a1:	85 c9                	test   %ecx,%ecx
    21a3:	0f 85 3c 03 00 00    	jne    24e5 <get_page_from_freelist+0x475>
    21a9:	9c                   	pushf  
    21aa:	8f 45 d0             	popl   -0x30(%ebp)
    21ad:	fa                   	cli    
    21ae:	8d 78 01             	lea    0x1(%eax),%edi
    21b1:	8b 45 b8             	mov    -0x48(%ebp),%eax
    21b4:	89 fb                	mov    %edi,%ebx
    21b6:	c1 e3 07             	shl    $0x7,%ebx
    21b9:	8b 14 18             	mov    (%eax,%ebx,1),%edx
    21bc:	85 d2                	test   %edx,%edx
    21be:	0f 84 54 02 00 00    	je     2418 <get_page_from_freelist+0x3a8>
    21c4:	8b 45 dc             	mov    -0x24(%ebp),%eax
    21c7:	85 c0                	test   %eax,%eax
    21c9:	0f 84 81 01 00 00    	je     2350 <get_page_from_freelist+0x2e0>
    21cf:	8b 45 b8             	mov    -0x48(%ebp),%eax
    21d2:	89 fb                	mov    %edi,%ebx
    21d4:	c1 e3 07             	shl    $0x7,%ebx
    21d7:	8b 54 18 10          	mov    0x10(%eax,%ebx,1),%edx
    21db:	8d 72 e8             	lea    -0x18(%edx),%esi
    21de:	8b 4e 1c             	mov    0x1c(%esi),%ecx
    21e1:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    21e5:	8d 5c 18 0c          	lea    0xc(%eax,%ebx,1),%ebx
    21e9:	39 d3                	cmp    %edx,%ebx
    21eb:	89 d8                	mov    %ebx,%eax
    21ed:	74 30                	je     221f <get_page_from_freelist+0x1af>
    21ef:	8b 55 cc             	mov    -0x34(%ebp),%edx
    21f2:	39 56 0c             	cmp    %edx,0xc(%esi)
    21f5:	75 17                	jne    220e <get_page_from_freelist+0x19e>
    21f7:	e9 94 02 00 00       	jmp    2490 <get_page_from_freelist+0x420>
    21fc:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    2200:	8b 45 cc             	mov    -0x34(%ebp),%eax
    2203:	39 46 0c             	cmp    %eax,0xc(%esi)
    2206:	66 90                	xchg   %ax,%ax
    2208:	0f 84 82 02 00 00    	je     2490 <get_page_from_freelist+0x420>
    220e:	8d 71 e8             	lea    -0x18(%ecx),%esi
    2211:	8b 4e 1c             	mov    0x1c(%esi),%ecx
    2214:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    2218:	8d 46 18             	lea    0x18(%esi),%eax
    221b:	39 c3                	cmp    %eax,%ebx
    221d:	75 e1                	jne    2200 <get_page_from_freelist+0x190>
    221f:	8b 55 b8             	mov    -0x48(%ebp),%edx
    2222:	89 fb                	mov    %edi,%ebx
    2224:	c1 e3 07             	shl    $0x7,%ebx
    2227:	8b 34 1a             	mov    (%edx,%ebx,1),%esi
    222a:	8b 4c 1a 08          	mov    0x8(%edx,%ebx,1),%ecx
    222e:	8b 55 cc             	mov    -0x34(%ebp),%edx
    2231:	89 04 24             	mov    %eax,(%esp)
    2234:	89 54 24 04          	mov    %edx,0x4(%esp)
    2238:	8b 45 b8             	mov    -0x48(%ebp),%eax
    223b:	31 d2                	xor    %edx,%edx
    223d:	e8 6e fa ff ff       	call   1cb0 <rmqueue_bulk>
    2242:	8b 4d b8             	mov    -0x48(%ebp),%ecx
    2245:	01 f0                	add    %esi,%eax
    2247:	89 04 19             	mov    %eax,(%ecx,%ebx,1)
    224a:	8b 44 19 0c          	mov    0xc(%ecx,%ebx,1),%eax
    224e:	8d 70 e8             	lea    -0x18(%eax),%esi
    2251:	8b 5e 18             	mov    0x18(%esi),%ebx
    2254:	8b 4e 1c             	mov    0x1c(%esi),%ecx
    2257:	89 4b 04             	mov    %ecx,0x4(%ebx)
    225a:	c1 e7 07             	shl    $0x7,%edi
    225d:	89 19                	mov    %ebx,(%ecx)
    225f:	c7 46 1c 00 02 20 00 	movl   $0x200200,0x1c(%esi)
    2266:	c7 46 18 00 01 10 00 	movl   $0x100100,0x18(%esi)
    226d:	8b 55 b8             	mov    -0x48(%ebp),%edx
    2270:	83 2c 3a 01          	subl   $0x1,(%edx,%edi,1)
    2274:	8b 55 b8             	mov    -0x48(%ebp),%edx
    2277:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
    227d:	03 45 b4             	add    -0x4c(%ebp),%eax
    2280:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
    2283:	2b 92 8c 07 00 00    	sub    0x78c(%edx),%edx
    2289:	c1 fa 0b             	sar    $0xb,%edx
    228c:	01 4c 90 10          	add    %ecx,0x10(%eax,%edx,4)
    2290:	ff 75 d0             	pushl  -0x30(%ebp)
    2293:	9d                   	popf   
    2294:	89 e0                	mov    %esp,%eax
    2296:	25 00 f0 ff ff       	and    $0xfffff000,%eax
    229b:	83 68 14 01          	subl   $0x1,0x14(%eax)
    229f:	f6 40 08 08          	testb  $0x8,0x8(%eax)
    22a3:	0f 85 30 02 00 00    	jne    24d9 <get_page_from_freelist+0x469>
    22a9:	8b 1e                	mov    (%esi),%ebx
    22ab:	89 f2                	mov    %esi,%edx
    22ad:	8b 46 08             	mov    0x8(%esi),%eax
    22b0:	8b 7e 10             	mov    0x10(%esi),%edi
    22b3:	f6 c7 40             	test   $0x40,%bh
    22b6:	74 03                	je     22bb <get_page_from_freelist+0x24b>
    22b8:	8b 56 0c             	mov    0xc(%esi),%edx
    22bb:	8b 4a 04             	mov    0x4(%edx),%ecx
    22be:	31 d2                	xor    %edx,%edx
    22c0:	85 ff                	test   %edi,%edi
    22c2:	0f 95 c2             	setne  %dl
    22c5:	83 c0 01             	add    $0x1,%eax
    22c8:	09 c2                	or     %eax,%edx
    22ca:	31 c0                	xor    %eax,%eax
    22cc:	85 c9                	test   %ecx,%ecx
    22ce:	0f 95 c0             	setne  %al
    22d1:	81 e3 ff ff 3f 00    	and    $0x3fffff,%ebx
    22d7:	09 c2                	or     %eax,%edx
    22d9:	09 da                	or     %ebx,%edx
    22db:	0f 85 27 01 00 00    	jne    2408 <get_page_from_freelist+0x398>
    22e1:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
    22e8:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
    22ef:	66 83 7d c8 00       	cmpw   $0x0,-0x38(%ebp)
    22f4:	79 46                	jns    233c <get_page_from_freelist+0x2cc>
    22f6:	8b 7d d4             	mov    -0x2c(%ebp),%edi
    22f9:	85 ff                	test   %edi,%edi
    22fb:	7e 3f                	jle    233c <get_page_from_freelist+0x2cc>
    22fd:	89 75 e4             	mov    %esi,-0x1c(%ebp)
    2300:	31 db                	xor    %ebx,%ebx
    2302:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    2308:	8b 45 e4             	mov    -0x1c(%ebp),%eax
    230b:	ba 03 00 00 00       	mov    $0x3,%edx
    2310:	e8 fc ff ff ff       	call   2311 <get_page_from_freelist+0x2a1>
    2315:	b9 00 04 00 00       	mov    $0x400,%ecx
    231a:	89 45 b0             	mov    %eax,-0x50(%ebp)
    231d:	89 c7                	mov    %eax,%edi
    231f:	31 c0                	xor    %eax,%eax
    2321:	f3 ab                	rep stos %eax,%es:(%edi)
    2323:	8b 45 b0             	mov    -0x50(%ebp),%eax
    2326:	ba 03 00 00 00       	mov    $0x3,%edx
    232b:	83 c3 01             	add    $0x1,%ebx
    232e:	e8 fc ff ff ff       	call   232f <get_page_from_freelist+0x2bf>
    2333:	83 45 e4 20          	addl   $0x20,-0x1c(%ebp)
    2337:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
    233a:	7f cc                	jg     2308 <get_page_from_freelist+0x298>
    233c:	8b 5d c0             	mov    -0x40(%ebp),%ebx
    233f:	85 db                	test   %ebx,%ebx
    2341:	75 75                	jne    23b8 <get_page_from_freelist+0x348>
    2343:	83 c4 54             	add    $0x54,%esp
    2346:	89 f0                	mov    %esi,%eax
    2348:	5b                   	pop    %ebx
    2349:	5e                   	pop    %esi
    234a:	5f                   	pop    %edi
    234b:	5d                   	pop    %ebp
    234c:	c3                   	ret    
    234d:	8d 76 00             	lea    0x0(%esi),%esi
    2350:	8b 4d b8             	mov    -0x48(%ebp),%ecx
    2353:	89 fa                	mov    %edi,%edx
    2355:	c1 e2 07             	shl    $0x7,%edx
    2358:	8b 4c 11 0c          	mov    0xc(%ecx,%edx,1),%ecx
    235c:	89 ce                	mov    %ecx,%esi
    235e:	83 ee 18             	sub    $0x18,%esi
    2361:	89 4d ac             	mov    %ecx,-0x54(%ebp)
    2364:	8b 5e 18             	mov    0x18(%esi),%ebx
    2367:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    236b:	8b 45 b8             	mov    -0x48(%ebp),%eax
    236e:	8d 4c 10 0c          	lea    0xc(%eax,%edx,1),%ecx
    2372:	3b 4d ac             	cmp    -0x54(%ebp),%ecx
    2375:	89 c8                	mov    %ecx,%eax
    2377:	0f 84 a2 fe ff ff    	je     221f <get_page_from_freelist+0x1af>
    237d:	8b 55 cc             	mov    -0x34(%ebp),%edx
    2380:	39 56 0c             	cmp    %edx,0xc(%esi)
    2383:	75 19                	jne    239e <get_page_from_freelist+0x32e>
    2385:	e9 ca fe ff ff       	jmp    2254 <get_page_from_freelist+0x1e4>
    238a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    2390:	8b 45 cc             	mov    -0x34(%ebp),%eax
    2393:	39 46 0c             	cmp    %eax,0xc(%esi)
    2396:	66 90                	xchg   %ax,%ax
    2398:	0f 84 b6 fe ff ff    	je     2254 <get_page_from_freelist+0x1e4>
    239e:	8d 73 e8             	lea    -0x18(%ebx),%esi
    23a1:	8b 5e 18             	mov    0x18(%esi),%ebx
    23a4:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    23a8:	8d 46 18             	lea    0x18(%esi),%eax
    23ab:	39 c1                	cmp    %eax,%ecx
    23ad:	75 e1                	jne    2390 <get_page_from_freelist+0x320>
    23af:	e9 6b fe ff ff       	jmp    221f <get_page_from_freelist+0x1af>
    23b4:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    23b8:	f7 45 c8 00 40 00 00 	testl  $0x4000,-0x38(%ebp)
    23bf:	74 82                	je     2343 <get_page_from_freelist+0x2d3>
    23c1:	8d 46 20             	lea    0x20(%esi),%eax
    23c4:	c7 40 18 b0 15 00 00 	movl   $0x15b0,0x18(%eax)
    23cb:	8b 55 c0             	mov    -0x40(%ebp),%edx
    23ce:	89 50 1c             	mov    %edx,0x1c(%eax)
    23d1:	0f ba 2e 0d          	btsl   $0xd,(%esi)
    23d5:	83 7d d4 01          	cmpl   $0x1,-0x2c(%ebp)
    23d9:	0f 8e 64 ff ff ff    	jle    2343 <get_page_from_freelist+0x2d3>
    23df:	ba 01 00 00 00       	mov    $0x1,%edx
    23e4:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    23e8:	0f ba 28 0e          	btsl   $0xe,(%eax)
    23ec:	89 70 0c             	mov    %esi,0xc(%eax)
    23ef:	83 c2 01             	add    $0x1,%edx
    23f2:	83 c0 20             	add    $0x20,%eax
    23f5:	39 55 d4             	cmp    %edx,-0x2c(%ebp)
    23f8:	7f ee                	jg     23e8 <get_page_from_freelist+0x378>
    23fa:	83 c4 54             	add    $0x54,%esp
    23fd:	89 f0                	mov    %esi,%eax
    23ff:	5b                   	pop    %ebx
    2400:	5e                   	pop    %esi
    2401:	5f                   	pop    %edi
    2402:	5d                   	pop    %ebp
    2403:	c3                   	ret    
    2404:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    2408:	89 f0                	mov    %esi,%eax
    240a:	e8 71 ec ff ff       	call   1080 <bad_page>
    240f:	e9 79 fd ff ff       	jmp    218d <get_page_from_freelist+0x11d>
    2414:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    2418:	8b 55 cc             	mov    -0x34(%ebp),%edx
    241b:	8b 4c 18 08          	mov    0x8(%eax,%ebx,1),%ecx
    241f:	8d 44 18 0c          	lea    0xc(%eax,%ebx,1),%eax
    2423:	89 04 24             	mov    %eax,(%esp)
    2426:	89 54 24 04          	mov    %edx,0x4(%esp)
    242a:	8b 45 b8             	mov    -0x48(%ebp),%eax
    242d:	31 d2                	xor    %edx,%edx
    242f:	e8 7c f8 ff ff       	call   1cb0 <rmqueue_bulk>
    2434:	8b 4d b8             	mov    -0x48(%ebp),%ecx
    2437:	85 c0                	test   %eax,%eax
    2439:	89 04 19             	mov    %eax,(%ecx,%ebx,1)
    243c:	0f 85 82 fd ff ff    	jne    21c4 <get_page_from_freelist+0x154>
    2442:	ff 75 d0             	pushl  -0x30(%ebp)
    2445:	9d                   	popf   
    2446:	89 e0                	mov    %esp,%eax
    2448:	25 00 f0 ff ff       	and    $0xfffff000,%eax
    244d:	83 68 14 01          	subl   $0x1,0x14(%eax)
    2451:	f6 40 08 08          	testb  $0x8,0x8(%eax)
    2455:	0f 85 ba 00 00 00    	jne    2515 <get_page_from_freelist+0x4a5>
    245b:	90                   	nop    
    245c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    2460:	8b 45 e8             	mov    -0x18(%ebp),%eax
    2463:	8d 4d f0             	lea    -0x10(%ebp),%ecx
    2466:	89 0c 24             	mov    %ecx,(%esp)
    2469:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
    246c:	8b 55 0c             	mov    0xc(%ebp),%edx
    246f:	83 c0 08             	add    $0x8,%eax
    2472:	e8 fc ff ff ff       	call   2473 <get_page_from_freelist+0x403>
    2477:	89 45 e8             	mov    %eax,-0x18(%ebp)
    247a:	8b 45 f0             	mov    -0x10(%ebp),%eax
    247d:	85 c0                	test   %eax,%eax
    247f:	89 45 b8             	mov    %eax,-0x48(%ebp)
    2482:	0f 85 60 fc ff ff    	jne    20e8 <get_page_from_freelist+0x78>
    2488:	31 f6                	xor    %esi,%esi
    248a:	e9 b4 fe ff ff       	jmp    2343 <get_page_from_freelist+0x2d3>
    248f:	90                   	nop    
    2490:	8b 5e 18             	mov    0x18(%esi),%ebx
    2493:	e9 bf fd ff ff       	jmp    2257 <get_page_from_freelist+0x1e7>
    2498:	f6 45 10 04          	testb  $0x4,0x10(%ebp)
    249c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    24a0:	74 0b                	je     24ad <get_page_from_freelist+0x43d>
    24a2:	8b 45 b8             	mov    -0x48(%ebp),%eax
    24a5:	8b 48 04             	mov    0x4(%eax),%ecx
    24a8:	e9 51 fc ff ff       	jmp    20fe <get_page_from_freelist+0x8e>
    24ad:	8b 55 b8             	mov    -0x48(%ebp),%edx
    24b0:	8b 4a 08             	mov    0x8(%edx),%ecx
    24b3:	e9 46 fc ff ff       	jmp    20fe <get_page_from_freelist+0x8e>
    24b8:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)
    24bf:	00 
    24c0:	c7 44 24 04 68 00 00 	movl   $0x68,0x4(%esp)
    24c7:	00 
    24c8:	c7 04 24 e7 00 00 00 	movl   $0xe7,(%esp)
    24cf:	e8 fc ff ff ff       	call   24d0 <get_page_from_freelist+0x460>
    24d4:	e9 69 fc ff ff       	jmp    2142 <get_page_from_freelist+0xd2>
    24d9:	e8 fc ff ff ff       	call   24da <get_page_from_freelist+0x46a>
    24de:	66 90                	xchg   %ax,%ax
    24e0:	e9 c4 fd ff ff       	jmp    22a9 <get_page_from_freelist+0x239>
    24e5:	8b 45 d8             	mov    -0x28(%ebp),%eax
    24e8:	e8 fc ff ff ff       	call   24e9 <get_page_from_freelist+0x479>
    24ed:	8b 4d cc             	mov    -0x34(%ebp),%ecx
    24f0:	8b 55 c0             	mov    -0x40(%ebp),%edx
    24f3:	89 45 d0             	mov    %eax,-0x30(%ebp)
    24f6:	8b 45 b8             	mov    -0x48(%ebp),%eax
    24f9:	e8 b2 f5 ff ff       	call   1ab0 <__rmqueue>
    24fe:	89 c6                	mov    %eax,%esi
    2500:	8b 45 d8             	mov    -0x28(%ebp),%eax
    2503:	e8 fc ff ff ff       	call   2504 <get_page_from_freelist+0x494>
    2508:	85 f6                	test   %esi,%esi
    250a:	0f 85 64 fd ff ff    	jne    2274 <get_page_from_freelist+0x204>
    2510:	e9 2d ff ff ff       	jmp    2442 <get_page_from_freelist+0x3d2>
    2515:	8d 76 00             	lea    0x0(%esi),%esi
    2518:	e8 fc ff ff ff       	call   2519 <get_page_from_freelist+0x4a9>
    251d:	8d 76 00             	lea    0x0(%esi),%esi
    2520:	e9 3b ff ff ff       	jmp    2460 <get_page_from_freelist+0x3f0>
    2525:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    2529:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

00002530 <drain_all_pages>:
    2530:	55                   	push   %ebp
    2531:	b9 01 00 00 00       	mov    $0x1,%ecx
    2536:	89 e5                	mov    %esp,%ebp
    2538:	31 d2                	xor    %edx,%edx
    253a:	b8 00 00 00 00       	mov    $0x0,%eax
    253f:	e8 fc ff ff ff       	call   2540 <drain_all_pages+0x10>
    2544:	5d                   	pop    %ebp
    2545:	c3                   	ret    
    2546:	8d 76 00             	lea    0x0(%esi),%esi
    2549:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

00002550 <set_migratetype_isolate>:
    2550:	55                   	push   %ebp
    2551:	89 e5                	mov    %esp,%ebp
    2553:	83 ec 14             	sub    $0x14,%esp
    2556:	89 5d f4             	mov    %ebx,-0xc(%ebp)
    2559:	89 c3                	mov    %eax,%ebx
    255b:	89 75 f8             	mov    %esi,-0x8(%ebp)
    255e:	89 7d fc             	mov    %edi,-0x4(%ebp)
    2561:	8b 00                	mov    (%eax),%eax
    2563:	c1 e8 1e             	shr    $0x1e,%eax
    2566:	c1 e0 0b             	shl    $0xb,%eax
    2569:	8d b8 00 00 00 00    	lea    0x0(%eax),%edi
    256f:	8d b7 80 04 00 00    	lea    0x480(%edi),%esi
    2575:	89 f0                	mov    %esi,%eax
    2577:	e8 fc ff ff ff       	call   2578 <set_migratetype_isolate+0x28>
    257c:	89 45 f0             	mov    %eax,-0x10(%ebp)
    257f:	a1 00 00 00 00       	mov    0x0,%eax
    2584:	85 c0                	test   %eax,%eax
    2586:	74 20                	je     25a8 <set_migratetype_isolate+0x58>
    2588:	8b 55 f0             	mov    -0x10(%ebp),%edx
    258b:	89 f0                	mov    %esi,%eax
    258d:	e8 fc ff ff ff       	call   258e <set_migratetype_isolate+0x3e>
    2592:	b8 f0 ff ff ff       	mov    $0xfffffff0,%eax
    2597:	8b 5d f4             	mov    -0xc(%ebp),%ebx
    259a:	8b 75 f8             	mov    -0x8(%ebp),%esi
    259d:	8b 7d fc             	mov    -0x4(%ebp),%edi
    25a0:	89 ec                	mov    %ebp,%esp
    25a2:	5d                   	pop    %ebp
    25a3:	c3                   	ret    
    25a4:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    25a8:	31 d2                	xor    %edx,%edx
    25aa:	b9 02 00 00 00       	mov    $0x2,%ecx
    25af:	89 d8                	mov    %ebx,%eax
    25b1:	e8 fc ff ff ff       	call   25b2 <set_migratetype_isolate+0x62>
    25b6:	83 f8 02             	cmp    $0x2,%eax
    25b9:	75 cd                	jne    2588 <set_migratetype_isolate+0x38>
    25bb:	31 c9                	xor    %ecx,%ecx
    25bd:	ba 04 00 00 00       	mov    $0x4,%edx
    25c2:	89 d8                	mov    %ebx,%eax
    25c4:	c7 04 24 02 00 00 00 	movl   $0x2,(%esp)
    25cb:	e8 fc ff ff ff       	call   25cc <set_migratetype_isolate+0x7c>
    25d0:	b9 04 00 00 00       	mov    $0x4,%ecx
    25d5:	89 da                	mov    %ebx,%edx
    25d7:	89 f8                	mov    %edi,%eax
    25d9:	e8 f2 da ff ff       	call   d0 <move_freepages_block>
    25de:	8b 55 f0             	mov    -0x10(%ebp),%edx
    25e1:	89 f0                	mov    %esi,%eax
    25e3:	e8 fc ff ff ff       	call   25e4 <set_migratetype_isolate+0x94>
    25e8:	b9 01 00 00 00       	mov    $0x1,%ecx
    25ed:	31 d2                	xor    %edx,%edx
    25ef:	b8 00 00 00 00       	mov    $0x0,%eax
    25f4:	e8 fc ff ff ff       	call   25f5 <set_migratetype_isolate+0xa5>
    25f9:	31 c0                	xor    %eax,%eax
    25fb:	eb 9a                	jmp    2597 <set_migratetype_isolate+0x47>
    25fd:	8d 76 00             	lea    0x0(%esi),%esi

00002600 <__alloc_pages_internal>:
    2600:	55                   	push   %ebp
    2601:	89 e5                	mov    %esp,%ebp
    2603:	57                   	push   %edi
    2604:	56                   	push   %esi
    2605:	53                   	push   %ebx
    2606:	83 ec 48             	sub    $0x48,%esp
    2609:	89 45 c8             	mov    %eax,-0x38(%ebp)
    260c:	83 e0 10             	and    $0x10,%eax
    260f:	f6 45 c8 01          	testb  $0x1,-0x38(%ebp)
    2613:	89 55 c4             	mov    %edx,-0x3c(%ebp)
    2616:	89 4d c0             	mov    %ecx,-0x40(%ebp)
    2619:	89 45 d4             	mov    %eax,-0x2c(%ebp)
    261c:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
    2623:	75 27                	jne    264c <__alloc_pages_internal+0x4c>
    2625:	8b 45 c8             	mov    -0x38(%ebp),%eax
    2628:	c7 45 d8 03 00 00 00 	movl   $0x3,-0x28(%ebp)
    262f:	25 02 00 10 00       	and    $0x100002,%eax
    2634:	3d 02 00 10 00       	cmp    $0x100002,%eax
    2639:	74 11                	je     264c <__alloc_pages_internal+0x4c>
    263b:	8b 45 c8             	mov    -0x38(%ebp),%eax
    263e:	83 e0 02             	and    $0x2,%eax
    2641:	83 f8 01             	cmp    $0x1,%eax
    2644:	19 c0                	sbb    %eax,%eax
    2646:	83 c0 02             	add    $0x2,%eax
    2649:	89 45 d8             	mov    %eax,-0x28(%ebp)
    264c:	8b 4d c0             	mov    -0x40(%ebp),%ecx
    264f:	c7 45 d0 01 00 00 00 	movl   $0x1,-0x30(%ebp)
    2656:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
    265d:	64 8b 35 00 00 00 00 	mov    %fs:0x0,%esi
    2664:	83 c1 04             	add    $0x4,%ecx
    2667:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
    266a:	0f b6 4d c4          	movzbl -0x3c(%ebp),%ecx
    266e:	d3 65 d0             	shll   %cl,-0x30(%ebp)
    2671:	8b 45 c0             	mov    -0x40(%ebp),%eax
    2674:	8b 58 04             	mov    0x4(%eax),%ebx
    2677:	85 db                	test   %ebx,%ebx
    2679:	0f 84 bd 02 00 00    	je     293c <__alloc_pages_internal+0x33c>
    267f:	8b 4d c8             	mov    -0x38(%ebp),%ecx
    2682:	8b 45 d8             	mov    -0x28(%ebp),%eax
    2685:	8b 55 08             	mov    0x8(%ebp),%edx
    2688:	c7 44 24 08 44 00 00 	movl   $0x44,0x8(%esp)
    268f:	00 
    2690:	81 c9 00 00 02 00    	or     $0x20000,%ecx
    2696:	89 4d cc             	mov    %ecx,-0x34(%ebp)
    2699:	8b 4d c0             	mov    -0x40(%ebp),%ecx
    269c:	89 44 24 04          	mov    %eax,0x4(%esp)
    26a0:	8b 45 cc             	mov    -0x34(%ebp),%eax
    26a3:	89 0c 24             	mov    %ecx,(%esp)
    26a6:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
    26a9:	e8 c2 f9 ff ff       	call   2070 <get_page_from_freelist>
    26ae:	85 c0                	test   %eax,%eax
    26b0:	89 c3                	mov    %eax,%ebx
    26b2:	0f 85 71 01 00 00    	jne    2829 <__alloc_pages_internal+0x229>
    26b8:	8d 7d f0             	lea    -0x10(%ebp),%edi
    26bb:	31 c9                	xor    %ecx,%ecx
    26bd:	8b 55 d8             	mov    -0x28(%ebp),%edx
    26c0:	89 3c 24             	mov    %edi,(%esp)
    26c3:	8b 45 e4             	mov    -0x1c(%ebp),%eax
    26c6:	eb 13                	jmp    26db <__alloc_pages_internal+0xdb>
    26c8:	8b 55 c4             	mov    -0x3c(%ebp),%edx
    26cb:	e8 fc ff ff ff       	call   26cc <__alloc_pages_internal+0xcc>
    26d0:	8b 55 d8             	mov    -0x28(%ebp),%edx
    26d3:	8d 43 08             	lea    0x8(%ebx),%eax
    26d6:	31 c9                	xor    %ecx,%ecx
    26d8:	89 3c 24             	mov    %edi,(%esp)
    26db:	e8 fc ff ff ff       	call   26dc <__alloc_pages_internal+0xdc>
    26e0:	89 c3                	mov    %eax,%ebx
    26e2:	8b 45 f0             	mov    -0x10(%ebp),%eax
    26e5:	85 c0                	test   %eax,%eax
    26e7:	75 df                	jne    26c8 <__alloc_pages_internal+0xc8>
    26e9:	83 7e 18 63          	cmpl   $0x63,0x18(%esi)
    26ed:	0f 8f 45 01 00 00    	jg     2838 <__alloc_pages_internal+0x238>
    26f3:	89 e0                	mov    %esp,%eax
    26f5:	25 00 f0 ff ff       	and    $0xfffff000,%eax
    26fa:	f7 40 14 00 ff ff 0f 	testl  $0xfffff00,0x14(%eax)
    2701:	0f 85 31 01 00 00    	jne    2838 <__alloc_pages_internal+0x238>
    2707:	c7 45 dc 12 00 00 00 	movl   $0x12,-0x24(%ebp)
    270e:	8b 45 dc             	mov    -0x24(%ebp),%eax
    2711:	8b 55 d4             	mov    -0x2c(%ebp),%edx
    2714:	8b 4d c0             	mov    -0x40(%ebp),%ecx
    2717:	83 c8 20             	or     $0x20,%eax
    271a:	f6 45 c8 20          	testb  $0x20,-0x38(%ebp)
    271e:	0f 44 45 dc          	cmove  -0x24(%ebp),%eax
    2722:	89 0c 24             	mov    %ecx,(%esp)
    2725:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
    2728:	89 45 dc             	mov    %eax,-0x24(%ebp)
    272b:	83 c8 40             	or     $0x40,%eax
    272e:	85 d2                	test   %edx,%edx
    2730:	0f 44 45 dc          	cmove  -0x24(%ebp),%eax
    2734:	8b 55 08             	mov    0x8(%ebp),%edx
    2737:	89 45 dc             	mov    %eax,-0x24(%ebp)
    273a:	89 44 24 08          	mov    %eax,0x8(%esp)
    273e:	8b 45 d8             	mov    -0x28(%ebp),%eax
    2741:	89 44 24 04          	mov    %eax,0x4(%esp)
    2745:	8b 45 c8             	mov    -0x38(%ebp),%eax
    2748:	e8 23 f9 ff ff       	call   2070 <get_page_from_freelist>
    274d:	85 c0                	test   %eax,%eax
    274f:	89 45 e8             	mov    %eax,-0x18(%ebp)
    2752:	0f 85 ce 00 00 00    	jne    2826 <__alloc_pages_internal+0x226>
    2758:	8b 45 c8             	mov    -0x38(%ebp),%eax
    275b:	25 80 10 00 00       	and    $0x1080,%eax
    2760:	89 45 bc             	mov    %eax,-0x44(%ebp)
    2763:	f6 46 0d 08          	testb  $0x8,0xd(%esi)
    2767:	0f 84 2d 01 00 00    	je     289a <__alloc_pages_internal+0x29a>
    276d:	8d 76 00             	lea    0x0(%esi),%esi
    2770:	89 e0                	mov    %esp,%eax
    2772:	25 00 f0 ff ff       	and    $0xfffff000,%eax
    2777:	f7 40 14 00 ff ff 0f 	testl  $0xfffff00,0x14(%eax)
    277e:	0f 84 c4 01 00 00    	je     2948 <__alloc_pages_internal+0x348>
    2784:	8b 45 d4             	mov    -0x2c(%ebp),%eax
    2787:	85 c0                	test   %eax,%eax
    2789:	0f 84 86 00 00 00    	je     2815 <__alloc_pages_internal+0x215>
    278f:	e8 fc ff ff ff       	call   2790 <__alloc_pages_internal+0x190>
    2794:	8d 4d ec             	lea    -0x14(%ebp),%ecx
    2797:	81 4e 0c 00 08 00 00 	orl    $0x800,0xc(%esi)
    279e:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
    27a5:	89 8e 00 03 00 00    	mov    %ecx,0x300(%esi)
    27ab:	8b 4d c8             	mov    -0x38(%ebp),%ecx
    27ae:	8b 55 c4             	mov    -0x3c(%ebp),%edx
    27b1:	8b 45 c0             	mov    -0x40(%ebp),%eax
    27b4:	e8 fc ff ff ff       	call   27b5 <__alloc_pages_internal+0x1b5>
    27b9:	81 66 0c ff f7 ff ff 	andl   $0xfffff7ff,0xc(%esi)
    27c0:	c7 86 00 03 00 00 00 	movl   $0x0,0x300(%esi)
    27c7:	00 00 00 
    27ca:	89 c7                	mov    %eax,%edi
    27cc:	e8 fc ff ff ff       	call   27cd <__alloc_pages_internal+0x1cd>
    27d1:	8b 45 c4             	mov    -0x3c(%ebp),%eax
    27d4:	85 c0                	test   %eax,%eax
    27d6:	0f 85 dc 00 00 00    	jne    28b8 <__alloc_pages_internal+0x2b8>
    27dc:	85 ff                	test   %edi,%edi
    27de:	0f 84 ed 00 00 00    	je     28d1 <__alloc_pages_internal+0x2d1>
    27e4:	8b 45 dc             	mov    -0x24(%ebp),%eax
    27e7:	8b 4d d8             	mov    -0x28(%ebp),%ecx
    27ea:	8b 55 08             	mov    0x8(%ebp),%edx
    27ed:	89 44 24 08          	mov    %eax,0x8(%esp)
    27f1:	8b 45 c0             	mov    -0x40(%ebp),%eax
    27f4:	89 4c 24 04          	mov    %ecx,0x4(%esp)
    27f8:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
    27fb:	89 04 24             	mov    %eax,(%esp)
    27fe:	8b 45 c8             	mov    -0x38(%ebp),%eax
    2801:	e8 6a f8 ff ff       	call   2070 <get_page_from_freelist>
    2806:	85 c0                	test   %eax,%eax
    2808:	89 c3                	mov    %eax,%ebx
    280a:	75 1d                	jne    2829 <__alloc_pages_internal+0x229>
    280c:	f7 45 c8 00 10 00 00 	testl  $0x1000,-0x38(%ebp)
    2813:	74 3b                	je     2850 <__alloc_pages_internal+0x250>
    2815:	f7 45 c8 00 02 00 00 	testl  $0x200,-0x38(%ebp)
    281c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    2820:	0f 84 da 00 00 00    	je     2900 <__alloc_pages_internal+0x300>
    2826:	8b 5d e8             	mov    -0x18(%ebp),%ebx
    2829:	83 c4 48             	add    $0x48,%esp
    282c:	89 d8                	mov    %ebx,%eax
    282e:	5b                   	pop    %ebx
    282f:	5e                   	pop    %esi
    2830:	5f                   	pop    %edi
    2831:	5d                   	pop    %ebp
    2832:	c3                   	ret    
    2833:	90                   	nop    
    2834:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    2838:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
    283b:	c7 45 dc 02 00 00 00 	movl   $0x2,-0x24(%ebp)
    2842:	85 c9                	test   %ecx,%ecx
    2844:	0f 85 c4 fe ff ff    	jne    270e <__alloc_pages_internal+0x10e>
    284a:	e9 b8 fe ff ff       	jmp    2707 <__alloc_pages_internal+0x107>
    284f:	90                   	nop    
    2850:	01 7d e0             	add    %edi,-0x20(%ebp)
    2853:	b8 01 00 00 00       	mov    $0x1,%eax
    2858:	83 7d c4 03          	cmpl   $0x3,-0x3c(%ebp)
    285c:	76 16                	jbe    2874 <__alloc_pages_internal+0x274>
    285e:	31 c0                	xor    %eax,%eax
    2860:	f7 45 c8 00 04 00 00 	testl  $0x400,-0x38(%ebp)
    2867:	74 0b                	je     2874 <__alloc_pages_internal+0x274>
    2869:	8b 4d d0             	mov    -0x30(%ebp),%ecx
    286c:	31 c0                	xor    %eax,%eax
    286e:	39 4d e0             	cmp    %ecx,-0x20(%ebp)
    2871:	0f 92 c0             	setb   %al
    2874:	f7 45 c8 00 08 00 00 	testl  $0x800,-0x38(%ebp)
    287b:	75 04                	jne    2881 <__alloc_pages_internal+0x281>
    287d:	85 c0                	test   %eax,%eax
    287f:	74 94                	je     2815 <__alloc_pages_internal+0x215>
    2881:	ba 14 00 00 00       	mov    $0x14,%edx
    2886:	b8 01 00 00 00       	mov    $0x1,%eax
    288b:	e8 fc ff ff ff       	call   288c <__alloc_pages_internal+0x28c>
    2890:	f6 46 0d 08          	testb  $0x8,0xd(%esi)
    2894:	0f 85 d6 fe ff ff    	jne    2770 <__alloc_pages_internal+0x170>
    289a:	89 e0                	mov    %esp,%eax
    289c:	25 00 f0 ff ff       	and    $0xfffff000,%eax
    28a1:	f6 40 0a 10          	testb  $0x10,0xa(%eax)
    28a5:	0f 84 d9 fe ff ff    	je     2784 <__alloc_pages_internal+0x184>
    28ab:	90                   	nop    
    28ac:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    28b0:	e9 bb fe ff ff       	jmp    2770 <__alloc_pages_internal+0x170>
    28b5:	8d 76 00             	lea    0x0(%esi),%esi
    28b8:	31 d2                	xor    %edx,%edx
    28ba:	b9 01 00 00 00       	mov    $0x1,%ecx
    28bf:	b8 00 00 00 00       	mov    $0x0,%eax
    28c4:	e8 fc ff ff ff       	call   28c5 <__alloc_pages_internal+0x2c5>
    28c9:	85 ff                	test   %edi,%edi
    28cb:	0f 85 13 ff ff ff    	jne    27e4 <__alloc_pages_internal+0x1e4>
    28d1:	81 7d bc 80 00 00 00 	cmpl   $0x80,-0x44(%ebp)
    28d8:	0f 85 2e ff ff ff    	jne    280c <__alloc_pages_internal+0x20c>
    28de:	8b 55 c8             	mov    -0x38(%ebp),%edx
    28e1:	8b 45 c0             	mov    -0x40(%ebp),%eax
    28e4:	e8 fc ff ff ff       	call   28e5 <__alloc_pages_internal+0x2e5>
    28e9:	85 c0                	test   %eax,%eax
    28eb:	0f 85 c2 00 00 00    	jne    29b3 <__alloc_pages_internal+0x3b3>
    28f1:	b0 01                	mov    $0x1,%al
    28f3:	e8 fc ff ff ff       	call   28f4 <__alloc_pages_internal+0x2f4>
    28f8:	e9 74 fd ff ff       	jmp    2671 <__alloc_pages_internal+0x71>
    28fd:	8d 76 00             	lea    0x0(%esi),%esi
    2900:	e8 fc ff ff ff       	call   2901 <__alloc_pages_internal+0x301>
    2905:	85 c0                	test   %eax,%eax
    2907:	90                   	nop    
    2908:	0f 84 18 ff ff ff    	je     2826 <__alloc_pages_internal+0x226>
    290e:	8b 45 c8             	mov    -0x38(%ebp),%eax
    2911:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
    2914:	c7 04 24 14 05 00 00 	movl   $0x514,(%esp)
    291b:	89 44 24 0c          	mov    %eax,0xc(%esp)
    291f:	8d 86 c8 01 00 00    	lea    0x1c8(%esi),%eax
    2925:	89 4c 24 08          	mov    %ecx,0x8(%esp)
    2929:	89 44 24 04          	mov    %eax,0x4(%esp)
    292d:	e8 fc ff ff ff       	call   292e <__alloc_pages_internal+0x32e>
    2932:	e8 fc ff ff ff       	call   2933 <__alloc_pages_internal+0x333>
    2937:	e8 fc ff ff ff       	call   2938 <__alloc_pages_internal+0x338>
    293c:	31 db                	xor    %ebx,%ebx
    293e:	66 90                	xchg   %ax,%ax
    2940:	e9 e4 fe ff ff       	jmp    2829 <__alloc_pages_internal+0x229>
    2945:	8d 76 00             	lea    0x0(%esi),%esi
    2948:	f7 45 c8 00 00 01 00 	testl  $0x10000,-0x38(%ebp)
    294f:	90                   	nop    
    2950:	0f 85 bf fe ff ff    	jne    2815 <__alloc_pages_internal+0x215>
    2956:	8b 7d c8             	mov    -0x38(%ebp),%edi
    2959:	81 e7 00 08 00 00    	and    $0x800,%edi
    295f:	90                   	nop    
    2960:	eb 23                	jmp    2985 <__alloc_pages_internal+0x385>
    2962:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    2968:	85 ff                	test   %edi,%edi
    296a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    2970:	0f 84 9f fe ff ff    	je     2815 <__alloc_pages_internal+0x215>
    2976:	ba 14 00 00 00       	mov    $0x14,%edx
    297b:	b8 01 00 00 00       	mov    $0x1,%eax
    2980:	e8 fc ff ff ff       	call   2981 <__alloc_pages_internal+0x381>
    2985:	8b 4d d8             	mov    -0x28(%ebp),%ecx
    2988:	8b 45 c0             	mov    -0x40(%ebp),%eax
    298b:	8b 55 08             	mov    0x8(%ebp),%edx
    298e:	c7 44 24 08 01 00 00 	movl   $0x1,0x8(%esp)
    2995:	00 
    2996:	89 4c 24 04          	mov    %ecx,0x4(%esp)
    299a:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
    299d:	89 04 24             	mov    %eax,(%esp)
    29a0:	8b 45 c8             	mov    -0x38(%ebp),%eax
    29a3:	e8 c8 f6 ff ff       	call   2070 <get_page_from_freelist>
    29a8:	85 c0                	test   %eax,%eax
    29aa:	89 c3                	mov    %eax,%ebx
    29ac:	74 ba                	je     2968 <__alloc_pages_internal+0x368>
    29ae:	e9 76 fe ff ff       	jmp    2829 <__alloc_pages_internal+0x229>
    29b3:	8b 4d d8             	mov    -0x28(%ebp),%ecx
    29b6:	8b 45 c0             	mov    -0x40(%ebp),%eax
    29b9:	8b 55 08             	mov    0x8(%ebp),%edx
    29bc:	c7 44 24 08 48 00 00 	movl   $0x48,0x8(%esp)
    29c3:	00 
    29c4:	89 4c 24 04          	mov    %ecx,0x4(%esp)
    29c8:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
    29cb:	89 04 24             	mov    %eax,(%esp)
    29ce:	8b 45 cc             	mov    -0x34(%ebp),%eax
    29d1:	e8 9a f6 ff ff       	call   2070 <get_page_from_freelist>
    29d6:	85 c0                	test   %eax,%eax
    29d8:	89 c3                	mov    %eax,%ebx
    29da:	75 24                	jne    2a00 <__alloc_pages_internal+0x400>
    29dc:	83 7d c4 03          	cmpl   $0x3,-0x3c(%ebp)
    29e0:	77 33                	ja     2a15 <__alloc_pages_internal+0x415>
    29e2:	8b 55 c8             	mov    -0x38(%ebp),%edx
    29e5:	8b 45 c0             	mov    -0x40(%ebp),%eax
    29e8:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
    29eb:	e8 fc ff ff ff       	call   29ec <__alloc_pages_internal+0x3ec>
    29f0:	8b 55 c8             	mov    -0x38(%ebp),%edx
    29f3:	8b 45 c0             	mov    -0x40(%ebp),%eax
    29f6:	e8 fc ff ff ff       	call   29f7 <__alloc_pages_internal+0x3f7>
    29fb:	e9 71 fc ff ff       	jmp    2671 <__alloc_pages_internal+0x71>
    2a00:	8b 55 c8             	mov    -0x38(%ebp),%edx
    2a03:	8b 45 c0             	mov    -0x40(%ebp),%eax
    2a06:	e8 fc ff ff ff       	call   2a07 <__alloc_pages_internal+0x407>
    2a0b:	90                   	nop    
    2a0c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    2a10:	e9 14 fe ff ff       	jmp    2829 <__alloc_pages_internal+0x229>
    2a15:	8b 55 c8             	mov    -0x38(%ebp),%edx
    2a18:	8b 45 c0             	mov    -0x40(%ebp),%eax
    2a1b:	e8 fc ff ff ff       	call   2a1c <__alloc_pages_internal+0x41c>
    2a20:	e9 f0 fd ff ff       	jmp    2815 <__alloc_pages_internal+0x215>
    2a25:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    2a29:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

00002a30 <get_zeroed_page>:
    2a30:	55                   	push   %ebp
    2a31:	31 d2                	xor    %edx,%edx
    2a33:	89 e5                	mov    %esp,%ebp
    2a35:	80 cc 80             	or     $0x80,%ah
    2a38:	83 ec 04             	sub    $0x4,%esp
    2a3b:	b9 00 20 00 00       	mov    $0x2000,%ecx
    2a40:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
    2a47:	e8 fc ff ff ff       	call   2a48 <get_zeroed_page+0x18>
    2a4c:	31 d2                	xor    %edx,%edx
    2a4e:	85 c0                	test   %eax,%eax
    2a50:	74 07                	je     2a59 <get_zeroed_page+0x29>
    2a52:	e8 fc ff ff ff       	call   2a53 <get_zeroed_page+0x23>
    2a57:	89 c2                	mov    %eax,%edx
    2a59:	89 d0                	mov    %edx,%eax
    2a5b:	c9                   	leave  
    2a5c:	c3                   	ret    
    2a5d:	8d 76 00             	lea    0x0(%esi),%esi

00002a60 <__get_free_pages>:
    2a60:	55                   	push   %ebp
    2a61:	89 e5                	mov    %esp,%ebp
    2a63:	83 ec 04             	sub    $0x4,%esp
    2a66:	83 fa 0a             	cmp    $0xa,%edx
    2a69:	76 05                	jbe    2a70 <__get_free_pages+0x10>
    2a6b:	31 c0                	xor    %eax,%eax
    2a6d:	c9                   	leave  
    2a6e:	c3                   	ret    
    2a6f:	90                   	nop    
    2a70:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
    2a77:	b9 00 20 00 00       	mov    $0x2000,%ecx
    2a7c:	e8 fc ff ff ff       	call   2a7d <__get_free_pages+0x1d>
    2a81:	85 c0                	test   %eax,%eax
    2a83:	74 e6                	je     2a6b <__get_free_pages+0xb>
    2a85:	e8 fc ff ff ff       	call   2a86 <__get_free_pages+0x26>
    2a8a:	c9                   	leave  
    2a8b:	90                   	nop    
    2a8c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    2a90:	c3                   	ret    
    2a91:	eb 0d                	jmp    2aa0 <alloc_pages_exact>
    2a93:	90                   	nop    
    2a94:	90                   	nop    
    2a95:	90                   	nop    
    2a96:	90                   	nop    
    2a97:	90                   	nop    
    2a98:	90                   	nop    
    2a99:	90                   	nop    
    2a9a:	90                   	nop    
    2a9b:	90                   	nop    
    2a9c:	90                   	nop    
    2a9d:	90                   	nop    
    2a9e:	90                   	nop    
    2a9f:	90                   	nop    

00002aa0 <alloc_pages_exact>:
    2aa0:	55                   	push   %ebp
    2aa1:	89 e5                	mov    %esp,%ebp
    2aa3:	57                   	push   %edi
    2aa4:	56                   	push   %esi
    2aa5:	be ff ff ff ff       	mov    $0xffffffff,%esi
    2aaa:	53                   	push   %ebx
    2aab:	89 c3                	mov    %eax,%ebx
    2aad:	89 d0                	mov    %edx,%eax
    2aaf:	83 ec 08             	sub    $0x8,%esp
    2ab2:	8d 53 ff             	lea    -0x1(%ebx),%edx
    2ab5:	c1 ea 0b             	shr    $0xb,%edx
    2ab8:	83 c6 01             	add    $0x1,%esi
    2abb:	d1 ea                	shr    %edx
    2abd:	75 f9                	jne    2ab8 <alloc_pages_exact+0x18>
    2abf:	89 f2                	mov    %esi,%edx
    2ac1:	e8 fc ff ff ff       	call   2ac2 <alloc_pages_exact+0x22>
    2ac6:	85 c0                	test   %eax,%eax
    2ac8:	89 c7                	mov    %eax,%edi
    2aca:	74 78                	je     2b44 <alloc_pages_exact+0xa4>
    2acc:	89 f1                	mov    %esi,%ecx
    2ace:	b8 00 10 00 00       	mov    $0x1000,%eax
    2ad3:	d3 e0                	shl    %cl,%eax
    2ad5:	01 f8                	add    %edi,%eax
    2ad7:	89 45 f0             	mov    %eax,-0x10(%ebp)
    2ada:	8d 83 ff 0f 00 00    	lea    0xfff(%ebx),%eax
    2ae0:	25 00 f0 ff ff       	and    $0xfffff000,%eax
    2ae5:	8d 1c 07             	lea    (%edi,%eax,1),%ebx
    2ae8:	8d 87 00 00 00 40    	lea    0x40000000(%edi),%eax
    2aee:	c1 e8 0c             	shr    $0xc,%eax
    2af1:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
    2af8:	c1 e0 05             	shl    $0x5,%eax
    2afb:	d3 65 ec             	shll   %cl,-0x14(%ebp)
    2afe:	03 05 00 00 00 00    	add    0x0,%eax
    2b04:	83 7d ec 01          	cmpl   $0x1,-0x14(%ebp)
    2b08:	7e 35                	jle    2b3f <alloc_pages_exact+0x9f>
    2b0a:	8d 50 20             	lea    0x20(%eax),%edx
    2b0d:	b8 01 00 00 00       	mov    $0x1,%eax
    2b12:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    2b18:	c7 42 04 01 00 00 00 	movl   $0x1,0x4(%edx)
    2b1f:	83 c0 01             	add    $0x1,%eax
    2b22:	83 c2 20             	add    $0x20,%edx
    2b25:	3b 45 ec             	cmp    -0x14(%ebp),%eax
    2b28:	7c ee                	jl     2b18 <alloc_pages_exact+0x78>
    2b2a:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
    2b2d:	76 15                	jbe    2b44 <alloc_pages_exact+0xa4>
    2b2f:	90                   	nop    
    2b30:	89 d8                	mov    %ebx,%eax
    2b32:	31 d2                	xor    %edx,%edx
    2b34:	e8 fc ff ff ff       	call   2b35 <alloc_pages_exact+0x95>
    2b39:	81 c3 00 10 00 00    	add    $0x1000,%ebx
    2b3f:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
    2b42:	77 ec                	ja     2b30 <alloc_pages_exact+0x90>
    2b44:	83 c4 08             	add    $0x8,%esp
    2b47:	89 f8                	mov    %edi,%eax
    2b49:	5b                   	pop    %ebx
    2b4a:	5e                   	pop    %esi
    2b4b:	5f                   	pop    %edi
    2b4c:	5d                   	pop    %ebp
    2b4d:	c3                   	ret    

Disassembly of section .meminit.text:

00000000 <__early_pfn_to_nid>:
   0:	55                   	push   %ebp
   1:	89 e5                	mov    %esp,%ebp
   3:	57                   	push   %edi
   4:	8b 3d 20 0c 00 00    	mov    0xc20,%edi
   a:	56                   	push   %esi
   b:	89 c6                	mov    %eax,%esi
   d:	53                   	push   %ebx
   e:	85 ff                	test   %edi,%edi
  10:	7e 43                	jle    55 <__early_pfn_to_nid+0x55>
  12:	39 05 20 00 00 00    	cmp    %eax,0x20
  18:	77 19                	ja     33 <__early_pfn_to_nid+0x33>
  1a:	31 db                	xor    %ebx,%ebx
  1c:	3b 05 24 00 00 00    	cmp    0x24,%eax
  22:	73 0f                	jae    33 <__early_pfn_to_nid+0x33>
  24:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax
  27:	8b 04 85 28 00 00 00 	mov    0x28(,%eax,4),%eax
  2e:	5b                   	pop    %ebx
  2f:	5e                   	pop    %esi
  30:	5f                   	pop    %edi
  31:	5d                   	pop    %ebp
  32:	c3                   	ret    
  33:	b9 2c 00 00 00       	mov    $0x2c,%ecx
  38:	31 db                	xor    %ebx,%ebx
  3a:	eb 12                	jmp    4e <__early_pfn_to_nid+0x4e>
  3c:	39 31                	cmp    %esi,(%ecx)
  3e:	0f 96 c2             	setbe  %dl
  41:	3b 71 04             	cmp    0x4(%ecx),%esi
  44:	0f 92 c0             	setb   %al
  47:	83 c1 0c             	add    $0xc,%ecx
  4a:	84 c2                	test   %al,%dl
  4c:	75 d6                	jne    24 <__early_pfn_to_nid+0x24>
  4e:	83 c3 01             	add    $0x1,%ebx
  51:	39 fb                	cmp    %edi,%ebx
  53:	7c e7                	jl     3c <__early_pfn_to_nid+0x3c>
  55:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
  5a:	eb d2                	jmp    2e <__early_pfn_to_nid+0x2e>

0000005c <early_pfn_to_nid>:
  5c:	55                   	push   %ebp
  5d:	89 e5                	mov    %esp,%ebp
  5f:	57                   	push   %edi
  60:	8b 3d 20 0c 00 00    	mov    0xc20,%edi
  66:	56                   	push   %esi
  67:	89 c6                	mov    %eax,%esi
  69:	53                   	push   %ebx
  6a:	85 ff                	test   %edi,%edi
  6c:	7e 4c                	jle    ba <early_pfn_to_nid+0x5e>
  6e:	3b 05 20 00 00 00    	cmp    0x20,%eax
  74:	72 22                	jb     98 <early_pfn_to_nid+0x3c>
  76:	31 db                	xor    %ebx,%ebx
  78:	3b 05 24 00 00 00    	cmp    0x24,%eax
  7e:	73 18                	jae    98 <early_pfn_to_nid+0x3c>
  80:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax
  83:	31 d2                	xor    %edx,%edx
  85:	8b 04 85 28 00 00 00 	mov    0x28(,%eax,4),%eax
  8c:	85 c0                	test   %eax,%eax
  8e:	0f 49 d0             	cmovns %eax,%edx
  91:	89 d0                	mov    %edx,%eax
  93:	5b                   	pop    %ebx
  94:	5e                   	pop    %esi
  95:	5f                   	pop    %edi
  96:	5d                   	pop    %ebp
  97:	c3                   	ret    
  98:	b9 2c 00 00 00       	mov    $0x2c,%ecx
  9d:	31 db                	xor    %ebx,%ebx
  9f:	eb 12                	jmp    b3 <early_pfn_to_nid+0x57>
  a1:	3b 31                	cmp    (%ecx),%esi
  a3:	0f 93 c2             	setae  %dl
  a6:	3b 71 04             	cmp    0x4(%ecx),%esi
  a9:	0f 92 c0             	setb   %al
  ac:	83 c1 0c             	add    $0xc,%ecx
  af:	84 c2                	test   %al,%dl
  b1:	75 cd                	jne    80 <early_pfn_to_nid+0x24>
  b3:	83 c3 01             	add    $0x1,%ebx
  b6:	39 fb                	cmp    %edi,%ebx
  b8:	7c e7                	jl     a1 <early_pfn_to_nid+0x45>
  ba:	31 d2                	xor    %edx,%edx
  bc:	eb d3                	jmp    91 <early_pfn_to_nid+0x35>

000000be <get_pfn_range_for_nid>:
  be:	55                   	push   %ebp
  bf:	89 e5                	mov    %esp,%ebp
  c1:	57                   	push   %edi
  c2:	89 c7                	mov    %eax,%edi
  c4:	56                   	push   %esi
  c5:	53                   	push   %ebx
  c6:	83 ec 08             	sub    $0x8,%esp
  c9:	89 4d ec             	mov    %ecx,-0x14(%ebp)
  cc:	89 55 f0             	mov    %edx,-0x10(%ebp)
  cf:	c7 02 ff ff ff ff    	movl   $0xffffffff,(%edx)
  d5:	8b 45 ec             	mov    -0x14(%ebp),%eax
  d8:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
  de:	8b 35 20 0c 00 00    	mov    0xc20,%esi
  e4:	85 f6                	test   %esi,%esi
  e6:	7e 26                	jle    10e <get_pfn_range_for_nid+0x50>
  e8:	83 ff 01             	cmp    $0x1,%edi
  eb:	74 3b                	je     128 <get_pfn_range_for_nid+0x6a>
  ed:	31 c9                	xor    %ecx,%ecx
  ef:	ba 34 00 00 00       	mov    $0x34,%edx
  f4:	3b 3d 28 00 00 00    	cmp    0x28,%edi
  fa:	75 0b                	jne    107 <get_pfn_range_for_nid+0x49>
  fc:	eb 2a                	jmp    128 <get_pfn_range_for_nid+0x6a>
  fe:	8b 02                	mov    (%edx),%eax
 100:	83 c2 0c             	add    $0xc,%edx
 103:	39 c7                	cmp    %eax,%edi
 105:	74 23                	je     12a <get_pfn_range_for_nid+0x6c>
 107:	83 c1 01             	add    $0x1,%ecx
 10a:	39 f1                	cmp    %esi,%ecx
 10c:	7c f0                	jl     fe <get_pfn_range_for_nid+0x40>
 10e:	8b 5d f0             	mov    -0x10(%ebp),%ebx
 111:	ba 00 00 00 00       	mov    $0x0,%edx
 116:	8b 03                	mov    (%ebx),%eax
 118:	83 f8 ff             	cmp    $0xffffffff,%eax
 11b:	0f 44 c2             	cmove  %edx,%eax
 11e:	89 03                	mov    %eax,(%ebx)
 120:	83 c4 08             	add    $0x8,%esp
 123:	5b                   	pop    %ebx
 124:	5e                   	pop    %esi
 125:	5f                   	pop    %edi
 126:	5d                   	pop    %ebp
 127:	c3                   	ret    
 128:	31 c9                	xor    %ecx,%ecx
 12a:	8b 5d f0             	mov    -0x10(%ebp),%ebx
 12d:	8d 04 49             	lea    (%ecx,%ecx,2),%eax
 130:	8b 14 85 20 00 00 00 	mov    0x20(,%eax,4),%edx
 137:	39 13                	cmp    %edx,(%ebx)
 139:	0f 46 13             	cmovbe (%ebx),%edx
 13c:	89 13                	mov    %edx,(%ebx)
 13e:	8b 55 ec             	mov    -0x14(%ebp),%edx
 141:	8d 59 01             	lea    0x1(%ecx),%ebx
 144:	8b 04 85 24 00 00 00 	mov    0x24(,%eax,4),%eax
 14b:	39 02                	cmp    %eax,(%edx)
 14d:	0f 43 02             	cmovae (%edx),%eax
 150:	39 f3                	cmp    %esi,%ebx
 152:	89 02                	mov    %eax,(%edx)
 154:	7d b8                	jge    10e <get_pfn_range_for_nid+0x50>
 156:	83 ff 01             	cmp    $0x1,%edi
 159:	74 2b                	je     186 <get_pfn_range_for_nid+0xc8>
 15b:	8d 14 5b             	lea    (%ebx,%ebx,2),%edx
 15e:	3b 3c 95 28 00 00 00 	cmp    0x28(,%edx,4),%edi
 165:	8d 44 49 06          	lea    0x6(%ecx,%ecx,2),%eax
 169:	8d 0c 85 28 00 00 00 	lea    0x28(,%eax,4),%ecx
 170:	75 0b                	jne    17d <get_pfn_range_for_nid+0xbf>
 172:	eb 12                	jmp    186 <get_pfn_range_for_nid+0xc8>
 174:	8b 01                	mov    (%ecx),%eax
 176:	83 c1 0c             	add    $0xc,%ecx
 179:	39 c7                	cmp    %eax,%edi
 17b:	74 09                	je     186 <get_pfn_range_for_nid+0xc8>
 17d:	83 c3 01             	add    $0x1,%ebx
 180:	39 f3                	cmp    %esi,%ebx
 182:	7c f0                	jl     174 <get_pfn_range_for_nid+0xb6>
 184:	eb 88                	jmp    10e <get_pfn_range_for_nid+0x50>
 186:	89 d9                	mov    %ebx,%ecx
 188:	eb a0                	jmp    12a <get_pfn_range_for_nid+0x6c>

0000018a <zone_spanned_pages_in_node>:
 18a:	55                   	push   %ebp
 18b:	89 e5                	mov    %esp,%ebp
 18d:	57                   	push   %edi
 18e:	56                   	push   %esi
 18f:	89 d6                	mov    %edx,%esi
 191:	53                   	push   %ebx
 192:	89 c3                	mov    %eax,%ebx
 194:	83 ec 0c             	sub    $0xc,%esp
 197:	8d 55 f0             	lea    -0x10(%ebp),%edx
 19a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
 19d:	e8 fc ff ff ff       	call   19e <zone_spanned_pages_in_node+0x14>
 1a2:	8b 55 ec             	mov    -0x14(%ebp),%edx
 1a5:	8b 3c b5 24 0c 00 00 	mov    0xc24(,%esi,4),%edi
 1ac:	8b 04 b5 34 0c 00 00 	mov    0xc34(,%esi,4),%eax
 1b3:	89 55 e8             	mov    %edx,-0x18(%ebp)
 1b6:	8b 14 9d 44 0c 00 00 	mov    0xc44(,%ebx,4),%edx
 1bd:	85 d2                	test   %edx,%edx
 1bf:	74 35                	je     1f6 <zone_spanned_pages_in_node+0x6c>
 1c1:	83 fe 03             	cmp    $0x3,%esi
 1c4:	74 3c                	je     202 <zone_spanned_pages_in_node+0x78>
 1c6:	39 d7                	cmp    %edx,%edi
 1c8:	72 28                	jb     1f2 <zone_spanned_pages_in_node+0x68>
 1ca:	89 c7                	mov    %eax,%edi
 1cc:	89 c2                	mov    %eax,%edx
 1ce:	8b 4d f0             	mov    -0x10(%ebp),%ecx
 1d1:	39 d1                	cmp    %edx,%ecx
 1d3:	77 25                	ja     1fa <zone_spanned_pages_in_node+0x70>
 1d5:	39 7d e8             	cmp    %edi,-0x18(%ebp)
 1d8:	72 20                	jb     1fa <zone_spanned_pages_in_node+0x70>
 1da:	8b 45 e8             	mov    -0x18(%ebp),%eax
 1dd:	3b 55 e8             	cmp    -0x18(%ebp),%edx
 1e0:	0f 46 c2             	cmovbe %edx,%eax
 1e3:	39 cf                	cmp    %ecx,%edi
 1e5:	0f 43 cf             	cmovae %edi,%ecx
 1e8:	29 c8                	sub    %ecx,%eax
 1ea:	83 c4 0c             	add    $0xc,%esp
 1ed:	5b                   	pop    %ebx
 1ee:	5e                   	pop    %esi
 1ef:	5f                   	pop    %edi
 1f0:	5d                   	pop    %ebp
 1f1:	c3                   	ret    
 1f2:	39 d0                	cmp    %edx,%eax
 1f4:	77 d8                	ja     1ce <zone_spanned_pages_in_node+0x44>
 1f6:	89 c2                	mov    %eax,%edx
 1f8:	eb d4                	jmp    1ce <zone_spanned_pages_in_node+0x44>
 1fa:	31 c0                	xor    %eax,%eax
 1fc:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
 200:	eb e8                	jmp    1ea <zone_spanned_pages_in_node+0x60>
 202:	a1 00 00 00 00       	mov    0x0,%eax
 207:	89 d7                	mov    %edx,%edi
 209:	8b 4d e8             	mov    -0x18(%ebp),%ecx
 20c:	39 0c 85 34 0c 00 00 	cmp    %ecx,0xc34(,%eax,4)
 213:	89 ca                	mov    %ecx,%edx
 215:	0f 46 14 85 34 0c 00 	cmovbe 0xc34(,%eax,4),%edx
 21c:	00 
 21d:	eb af                	jmp    1ce <zone_spanned_pages_in_node+0x44>

0000021f <__absent_pages_in_range>:
 21f:	55                   	push   %ebp
 220:	89 e5                	mov    %esp,%ebp
 222:	57                   	push   %edi
 223:	89 c7                	mov    %eax,%edi
 225:	56                   	push   %esi
 226:	53                   	push   %ebx
 227:	83 ec 10             	sub    $0x10,%esp
 22a:	8b 35 20 0c 00 00    	mov    0xc20,%esi
 230:	89 55 e8             	mov    %edx,-0x18(%ebp)
 233:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
 236:	85 f6                	test   %esi,%esi
 238:	7e 2d                	jle    267 <__absent_pages_in_range+0x48>
 23a:	83 f8 01             	cmp    $0x1,%eax
 23d:	0f 84 e0 00 00 00    	je     323 <__absent_pages_in_range+0x104>
 243:	31 d2                	xor    %edx,%edx
 245:	bb 34 00 00 00       	mov    $0x34,%ebx
 24a:	3b 05 28 00 00 00    	cmp    0x28,%eax
 250:	75 0e                	jne    260 <__absent_pages_in_range+0x41>
 252:	e9 cc 00 00 00       	jmp    323 <__absent_pages_in_range+0x104>
 257:	8b 03                	mov    (%ebx),%eax
 259:	83 c3 0c             	add    $0xc,%ebx
 25c:	39 c7                	cmp    %eax,%edi
 25e:	74 19                	je     279 <__absent_pages_in_range+0x5a>
 260:	83 c2 01             	add    $0x1,%edx
 263:	39 f2                	cmp    %esi,%edx
 265:	7c f0                	jl     257 <__absent_pages_in_range+0x38>
 267:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
 26e:	8b 45 f0             	mov    -0x10(%ebp),%eax
 271:	83 c4 10             	add    $0x10,%esp
 274:	5b                   	pop    %ebx
 275:	5e                   	pop    %esi
 276:	5f                   	pop    %edi
 277:	5d                   	pop    %ebp
 278:	c3                   	ret    
 279:	89 d1                	mov    %edx,%ecx
 27b:	8d 04 52             	lea    (%edx,%edx,2),%eax
 27e:	8b 14 85 20 00 00 00 	mov    0x20(,%eax,4),%edx
 285:	8b 45 e4             	mov    -0x1c(%ebp),%eax
 288:	39 55 e4             	cmp    %edx,-0x1c(%ebp)
 28b:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
 292:	0f 47 c2             	cmova  %edx,%eax
 295:	89 45 ec             	mov    %eax,-0x14(%ebp)
 298:	2b 45 e8             	sub    -0x18(%ebp),%eax
 29b:	3b 55 e8             	cmp    -0x18(%ebp),%edx
 29e:	0f 46 45 f0          	cmovbe -0x10(%ebp),%eax
 2a2:	89 45 f0             	mov    %eax,-0x10(%ebp)
 2a5:	8b 45 ec             	mov    -0x14(%ebp),%eax
 2a8:	39 45 e4             	cmp    %eax,-0x1c(%ebp)
 2ab:	76 c1                	jbe    26e <__absent_pages_in_range+0x4f>
 2ad:	3b 55 e4             	cmp    -0x1c(%ebp),%edx
 2b0:	0f 47 55 e4          	cmova  -0x1c(%ebp),%edx
 2b4:	39 55 e8             	cmp    %edx,-0x18(%ebp)
 2b7:	0f 82 8c 00 00 00    	jb     349 <__absent_pages_in_range+0x12a>
 2bd:	8d 04 49             	lea    (%ecx,%ecx,2),%eax
 2c0:	8b 04 85 24 00 00 00 	mov    0x24(,%eax,4),%eax
 2c7:	8d 59 01             	lea    0x1(%ecx),%ebx
 2ca:	39 f3                	cmp    %esi,%ebx
 2cc:	89 45 ec             	mov    %eax,-0x14(%ebp)
 2cf:	7d 2e                	jge    2ff <__absent_pages_in_range+0xe0>
 2d1:	83 ff 01             	cmp    $0x1,%edi
 2d4:	74 56                	je     32c <__absent_pages_in_range+0x10d>
 2d6:	8d 14 5b             	lea    (%ebx,%ebx,2),%edx
 2d9:	3b 3c 95 28 00 00 00 	cmp    0x28(,%edx,4),%edi
 2e0:	8d 44 49 06          	lea    0x6(%ecx,%ecx,2),%eax
 2e4:	8d 0c 85 28 00 00 00 	lea    0x28(,%eax,4),%ecx
 2eb:	75 0b                	jne    2f8 <__absent_pages_in_range+0xd9>
 2ed:	eb 3d                	jmp    32c <__absent_pages_in_range+0x10d>
 2ef:	8b 01                	mov    (%ecx),%eax
 2f1:	83 c1 0c             	add    $0xc,%ecx
 2f4:	39 c7                	cmp    %eax,%edi
 2f6:	74 34                	je     32c <__absent_pages_in_range+0x10d>
 2f8:	83 c3 01             	add    $0x1,%ebx
 2fb:	39 f3                	cmp    %esi,%ebx
 2fd:	7c f0                	jl     2ef <__absent_pages_in_range+0xd0>
 2ff:	8b 45 ec             	mov    -0x14(%ebp),%eax
 302:	39 45 e4             	cmp    %eax,-0x1c(%ebp)
 305:	0f 86 63 ff ff ff    	jbe    26e <__absent_pages_in_range+0x4f>
 30b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
 30e:	01 45 f0             	add    %eax,-0x10(%ebp)
 311:	8b 45 e8             	mov    -0x18(%ebp),%eax
 314:	39 45 ec             	cmp    %eax,-0x14(%ebp)
 317:	0f 43 45 ec          	cmovae -0x14(%ebp),%eax
 31b:	29 45 f0             	sub    %eax,-0x10(%ebp)
 31e:	e9 4b ff ff ff       	jmp    26e <__absent_pages_in_range+0x4f>
 323:	31 d2                	xor    %edx,%edx
 325:	31 c9                	xor    %ecx,%ecx
 327:	e9 4f ff ff ff       	jmp    27b <__absent_pages_in_range+0x5c>
 32c:	8b 45 ec             	mov    -0x14(%ebp),%eax
 32f:	39 45 e4             	cmp    %eax,-0x1c(%ebp)
 332:	0f 86 36 ff ff ff    	jbe    26e <__absent_pages_in_range+0x4f>
 338:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax
 33b:	89 d9                	mov    %ebx,%ecx
 33d:	8b 14 85 20 00 00 00 	mov    0x20(,%eax,4),%edx
 344:	e9 64 ff ff ff       	jmp    2ad <__absent_pages_in_range+0x8e>
 349:	8b 45 e8             	mov    -0x18(%ebp),%eax
 34c:	39 45 ec             	cmp    %eax,-0x14(%ebp)
 34f:	0f 43 45 ec          	cmovae -0x14(%ebp),%eax
 353:	39 c2                	cmp    %eax,%edx
 355:	72 0b                	jb     362 <__absent_pages_in_range+0x143>
 357:	01 55 f0             	add    %edx,-0x10(%ebp)
 35a:	29 45 f0             	sub    %eax,-0x10(%ebp)
 35d:	e9 5b ff ff ff       	jmp    2bd <__absent_pages_in_range+0x9e>
 362:	0f 0b                	ud2a   
 364:	eb fe                	jmp    364 <__absent_pages_in_range+0x145>

00000366 <zone_absent_pages_in_node>:
 366:	55                   	push   %ebp
 367:	89 e5                	mov    %esp,%ebp
 369:	57                   	push   %edi
 36a:	89 c7                	mov    %eax,%edi
 36c:	56                   	push   %esi
 36d:	53                   	push   %ebx
 36e:	89 d3                	mov    %edx,%ebx
 370:	83 ec 08             	sub    $0x8,%esp
 373:	8d 4d ec             	lea    -0x14(%ebp),%ecx
 376:	8d 55 f0             	lea    -0x10(%ebp),%edx
 379:	e8 fc ff ff ff       	call   37a <zone_absent_pages_in_node+0x14>
 37e:	8b 45 f0             	mov    -0x10(%ebp),%eax
 381:	8b 55 ec             	mov    -0x14(%ebp),%edx
 384:	8b 0c bd 44 0c 00 00 	mov    0xc44(,%edi,4),%ecx
 38b:	39 04 9d 24 0c 00 00 	cmp    %eax,0xc24(,%ebx,4)
 392:	89 c6                	mov    %eax,%esi
 394:	89 d0                	mov    %edx,%eax
 396:	0f 43 34 9d 24 0c 00 	cmovae 0xc24(,%ebx,4),%esi
 39d:	00 
 39e:	39 14 9d 34 0c 00 00 	cmp    %edx,0xc34(,%ebx,4)
 3a5:	0f 46 04 9d 34 0c 00 	cmovbe 0xc34(,%ebx,4),%eax
 3ac:	00 
 3ad:	85 c9                	test   %ecx,%ecx
 3af:	74 22                	je     3d3 <zone_absent_pages_in_node+0x6d>
 3b1:	83 fb 03             	cmp    $0x3,%ebx
 3b4:	74 24                	je     3da <zone_absent_pages_in_node+0x74>
 3b6:	39 ce                	cmp    %ecx,%esi
 3b8:	72 15                	jb     3cf <zone_absent_pages_in_node+0x69>
 3ba:	89 c6                	mov    %eax,%esi
 3bc:	89 c1                	mov    %eax,%ecx
 3be:	89 f2                	mov    %esi,%edx
 3c0:	89 f8                	mov    %edi,%eax
 3c2:	e8 58 fe ff ff       	call   21f <__absent_pages_in_range>
 3c7:	83 c4 08             	add    $0x8,%esp
 3ca:	5b                   	pop    %ebx
 3cb:	5e                   	pop    %esi
 3cc:	5f                   	pop    %edi
 3cd:	5d                   	pop    %ebp
 3ce:	c3                   	ret    
 3cf:	39 c8                	cmp    %ecx,%eax
 3d1:	77 eb                	ja     3be <zone_absent_pages_in_node+0x58>
 3d3:	89 c1                	mov    %eax,%ecx
 3d5:	8d 76 00             	lea    0x0(%esi),%esi
 3d8:	eb e4                	jmp    3be <zone_absent_pages_in_node+0x58>
 3da:	a1 00 00 00 00       	mov    0x0,%eax
 3df:	89 ce                	mov    %ecx,%esi
 3e1:	89 d1                	mov    %edx,%ecx
 3e3:	39 14 85 34 0c 00 00 	cmp    %edx,0xc34(,%eax,4)
 3ea:	0f 46 0c 85 34 0c 00 	cmovbe 0xc34(,%eax,4),%ecx
 3f1:	00 
 3f2:	eb ca                	jmp    3be <zone_absent_pages_in_node+0x58>

000003f4 <init_currently_empty_zone>:
 3f4:	55                   	push   %ebp
 3f5:	89 e5                	mov    %esp,%ebp
 3f7:	57                   	push   %edi
 3f8:	89 c7                	mov    %eax,%edi
 3fa:	56                   	push   %esi
 3fb:	89 ce                	mov    %ecx,%esi
 3fd:	53                   	push   %ebx
 3fe:	89 d3                	mov    %edx,%ebx
 400:	83 ec 20             	sub    $0x20,%esp
 403:	8b 80 8c 07 00 00    	mov    0x78c(%eax),%eax
 409:	89 ca                	mov    %ecx,%edx
 40b:	89 45 e8             	mov    %eax,-0x18(%ebp)
 40e:	89 f8                	mov    %edi,%eax
 410:	e8 ac 00 00 00       	call   4c1 <init_currently_empty_zone+0xcd>
 415:	85 c0                	test   %eax,%eax
 417:	89 45 ec             	mov    %eax,-0x14(%ebp)
 41a:	75 70                	jne    48c <init_currently_empty_zone+0x98>
 41c:	89 f8                	mov    %edi,%eax
 41e:	8b 55 e8             	mov    -0x18(%ebp),%edx
 421:	2b 87 8c 07 00 00    	sub    0x78c(%edi),%eax
 427:	c1 f8 0b             	sar    $0xb,%eax
 42a:	83 c0 01             	add    $0x1,%eax
 42d:	89 82 2c 20 00 00    	mov    %eax,0x202c(%edx)
 433:	89 9f 90 07 00 00    	mov    %ebx,0x790(%edi)
 439:	83 3d 00 00 00 00 02 	cmpl   $0x2,0x0
 440:	7f 55                	jg     497 <init_currently_empty_zone+0xa3>
 442:	89 fb                	mov    %edi,%ebx
 444:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
 44b:	6b 45 f0 2c          	imul   $0x2c,-0x10(%ebp),%eax
 44f:	31 d2                	xor    %edx,%edx
 451:	8d 8c 07 84 04 00 00 	lea    0x484(%edi,%eax,1),%ecx
 458:	89 c6                	mov    %eax,%esi
 45a:	8d 84 d6 80 04 00 00 	lea    0x480(%esi,%edx,8),%eax
 461:	83 c2 01             	add    $0x1,%edx
 464:	8d 44 07 04          	lea    0x4(%edi,%eax,1),%eax
 468:	89 01                	mov    %eax,(%ecx)
 46a:	89 41 04             	mov    %eax,0x4(%ecx)
 46d:	83 c1 08             	add    $0x8,%ecx
 470:	83 fa 05             	cmp    $0x5,%edx
 473:	c7 83 ac 04 00 00 00 	movl   $0x0,0x4ac(%ebx)
 47a:	00 00 00 
 47d:	75 db                	jne    45a <init_currently_empty_zone+0x66>
 47f:	83 45 f0 01          	addl   $0x1,-0x10(%ebp)
 483:	83 c3 2c             	add    $0x2c,%ebx
 486:	83 7d f0 0b          	cmpl   $0xb,-0x10(%ebp)
 48a:	75 bf                	jne    44b <init_currently_empty_zone+0x57>
 48c:	8b 45 ec             	mov    -0x14(%ebp),%eax
 48f:	83 c4 20             	add    $0x20,%esp
 492:	5b                   	pop    %ebx
 493:	5e                   	pop    %esi
 494:	5f                   	pop    %edi
 495:	5d                   	pop    %ebp
 496:	c3                   	ret    
 497:	c7 04 24 10 00 00 00 	movl   $0x10,(%esp)
 49e:	e8 fc ff ff ff       	call   49f <init_currently_empty_zone+0xab>
 4a3:	8d 04 1e             	lea    (%esi,%ebx,1),%eax
 4a6:	8b 55 e8             	mov    -0x18(%ebp),%edx
 4a9:	89 44 24 10          	mov    %eax,0x10(%esp)
 4ad:	89 f8                	mov    %edi,%eax
 4af:	2b 87 8c 07 00 00    	sub    0x78c(%edi),%eax
 4b5:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
 4b9:	c1 f8 0b             	sar    $0xb,%eax
 4bc:	89 44 24 08          	mov    %eax,0x8(%esp)
 4c0:	8b 82 44 20 00 00    	mov    0x2044(%edx),%eax
 4c6:	c7 04 24 dc 00 00 00 	movl   $0xdc,(%esp)
 4cd:	89 44 24 04          	mov    %eax,0x4(%esp)
 4d1:	e8 fc ff ff ff       	call   4d2 <init_currently_empty_zone+0xde>
 4d6:	e9 67 ff ff ff       	jmp    442 <init_currently_empty_zone+0x4e>

000004db <memmap_init_zone>:
 4db:	55                   	push   %ebp
 4dc:	89 e5                	mov    %esp,%ebp
 4de:	57                   	push   %edi
 4df:	56                   	push   %esi
 4e0:	53                   	push   %ebx
 4e1:	83 ec 18             	sub    $0x18,%esp
 4e4:	89 55 e4             	mov    %edx,-0x1c(%ebp)
 4e7:	8b 55 08             	mov    0x8(%ebp),%edx
 4ea:	89 4d e0             	mov    %ecx,-0x20(%ebp)
 4ed:	8d 04 02             	lea    (%edx,%eax,1),%eax
 4f0:	89 45 e8             	mov    %eax,-0x18(%ebp)
 4f3:	83 e8 01             	sub    $0x1,%eax
 4f6:	3b 05 00 00 00 00    	cmp    0x0,%eax
 4fc:	76 05                	jbe    503 <memmap_init_zone+0x28>
 4fe:	a3 00 00 00 00       	mov    %eax,0x0
 503:	8b 45 e0             	mov    -0x20(%ebp),%eax
 506:	c1 e0 0b             	shl    $0xb,%eax
 509:	05 00 00 00 00       	add    $0x0,%eax
 50e:	3b 55 e8             	cmp    -0x18(%ebp),%edx
 511:	89 45 ec             	mov    %eax,-0x14(%ebp)
 514:	73 7d                	jae    593 <memmap_init_zone+0xb8>
 516:	8b 45 e0             	mov    -0x20(%ebp),%eax
 519:	89 d7                	mov    %edx,%edi
 51b:	89 d6                	mov    %edx,%esi
 51d:	c1 e7 05             	shl    $0x5,%edi
 520:	c1 e0 1e             	shl    $0x1e,%eax
 523:	89 45 f0             	mov    %eax,-0x10(%ebp)
 526:	89 fb                	mov    %edi,%ebx
 528:	03 1d 00 00 00 00    	add    0x0,%ebx
 52e:	8b 03                	mov    (%ebx),%eax
 530:	25 ff ff ff 3f       	and    $0x3fffffff,%eax
 535:	0b 45 f0             	or     -0x10(%ebp),%eax
 538:	89 03                	mov    %eax,(%ebx)
 53a:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
 53d:	89 d8                	mov    %ebx,%eax
 53f:	8b 55 e0             	mov    -0x20(%ebp),%edx
 542:	89 34 24             	mov    %esi,(%esp)
 545:	e8 fc ff ff ff       	call   546 <memmap_init_zone+0x6b>
 54a:	8d 43 01             	lea    0x1(%ebx),%eax
 54d:	c7 43 04 01 00 00 00 	movl   $0x1,0x4(%ebx)
 554:	c7 43 08 ff ff ff ff 	movl   $0xffffffff,0x8(%ebx)
 55b:	f0 80 4b 01 04       	lock orb $0x4,0x1(%ebx)
 560:	8b 55 ec             	mov    -0x14(%ebp),%edx
 563:	8b 82 90 07 00 00    	mov    0x790(%edx),%eax
 569:	39 c6                	cmp    %eax,%esi
 56b:	72 12                	jb     57f <memmap_init_zone+0xa4>
 56d:	03 82 94 07 00 00    	add    0x794(%edx),%eax
 573:	39 c6                	cmp    %eax,%esi
 575:	73 08                	jae    57f <memmap_init_zone+0xa4>
 577:	f7 c6 ff 01 00 00    	test   $0x1ff,%esi
 57d:	74 1c                	je     59b <memmap_init_zone+0xc0>
 57f:	8d 43 18             	lea    0x18(%ebx),%eax
 582:	83 c6 01             	add    $0x1,%esi
 585:	89 43 18             	mov    %eax,0x18(%ebx)
 588:	83 c7 20             	add    $0x20,%edi
 58b:	89 43 1c             	mov    %eax,0x1c(%ebx)
 58e:	39 75 e8             	cmp    %esi,-0x18(%ebp)
 591:	77 93                	ja     526 <memmap_init_zone+0x4b>
 593:	83 c4 18             	add    $0x18,%esp
 596:	5b                   	pop    %ebx
 597:	5e                   	pop    %esi
 598:	5f                   	pop    %edi
 599:	5d                   	pop    %ebp
 59a:	c3                   	ret    
 59b:	31 c9                	xor    %ecx,%ecx
 59d:	ba 02 00 00 00       	mov    $0x2,%edx
 5a2:	89 d8                	mov    %ebx,%eax
 5a4:	c7 04 24 02 00 00 00 	movl   $0x2,(%esp)
 5ab:	e8 fc ff ff ff       	call   5ac <memmap_init_zone+0xd1>
 5b0:	eb cd                	jmp    57f <memmap_init_zone+0xa4>

000005b2 <__free_pages_bootmem>:
 5b2:	55                   	push   %ebp
 5b3:	85 d2                	test   %edx,%edx
 5b5:	89 e5                	mov    %esp,%ebp
 5b7:	56                   	push   %esi
 5b8:	89 d6                	mov    %edx,%esi
 5ba:	53                   	push   %ebx
 5bb:	89 c3                	mov    %eax,%ebx
 5bd:	74 3b                	je     5fa <__free_pages_bootmem+0x48>
 5bf:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
 5c3:	89 c1                	mov    %eax,%ecx
 5c5:	31 c0                	xor    %eax,%eax
 5c7:	83 f8 1f             	cmp    $0x1f,%eax
 5ca:	8d 51 20             	lea    0x20(%ecx),%edx
 5cd:	74 04                	je     5d3 <__free_pages_bootmem+0x21>
 5cf:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
 5d3:	0f ba 31 0a          	btrl   $0xa,(%ecx)
 5d7:	83 c0 01             	add    $0x1,%eax
 5da:	83 f8 20             	cmp    $0x20,%eax
 5dd:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)
 5e4:	89 d1                	mov    %edx,%ecx
 5e6:	75 df                	jne    5c7 <__free_pages_bootmem+0x15>
 5e8:	c7 43 04 01 00 00 00 	movl   $0x1,0x4(%ebx)
 5ef:	89 f2                	mov    %esi,%edx
 5f1:	89 d8                	mov    %ebx,%eax
 5f3:	e8 fc ff ff ff       	call   5f4 <__free_pages_bootmem+0x42>
 5f8:	eb 19                	jmp    613 <__free_pages_bootmem+0x61>
 5fa:	0f ba 30 0a          	btrl   $0xa,(%eax)
 5fe:	31 d2                	xor    %edx,%edx
 600:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
 607:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
 60e:	e8 fc ff ff ff       	call   60f <__free_pages_bootmem+0x5d>
 613:	5b                   	pop    %ebx
 614:	5e                   	pop    %esi
 615:	5d                   	pop    %ebp
 616:	c3                   	ret    

Disassembly of section .init.text:

00000000 <work_with_active_regions>:
       0:	55                   	push   %ebp
       1:	89 e5                	mov    %esp,%ebp
       3:	57                   	push   %edi
       4:	56                   	push   %esi
       5:	53                   	push   %ebx
       6:	83 ec 0c             	sub    $0xc,%esp
       9:	89 4d e8             	mov    %ecx,-0x18(%ebp)
       c:	8b 0d 20 0c 00 00    	mov    0xc20,%ecx
      12:	89 45 f0             	mov    %eax,-0x10(%ebp)
      15:	89 55 ec             	mov    %edx,-0x14(%ebp)
      18:	85 c9                	test   %ecx,%ecx
      1a:	7e 2b                	jle    47 <work_with_active_regions+0x47>
      1c:	83 f8 01             	cmp    $0x1,%eax
      1f:	0f 84 8e 00 00 00    	je     b3 <work_with_active_regions+0xb3>
      25:	31 f6                	xor    %esi,%esi
      27:	ba 34 00 00 00       	mov    $0x34,%edx
      2c:	3b 05 28 00 00 00    	cmp    0x28,%eax
      32:	75 0c                	jne    40 <work_with_active_regions+0x40>
      34:	eb 7d                	jmp    b3 <work_with_active_regions+0xb3>
      36:	8b 02                	mov    (%edx),%eax
      38:	83 c2 0c             	add    $0xc,%edx
      3b:	39 45 f0             	cmp    %eax,-0x10(%ebp)
      3e:	74 16                	je     56 <work_with_active_regions+0x56>
      40:	83 c6 01             	add    $0x1,%esi
      43:	39 ce                	cmp    %ecx,%esi
      45:	7c ef                	jl     36 <work_with_active_regions+0x36>
      47:	83 c4 0c             	add    $0xc,%esp
      4a:	5b                   	pop    %ebx
      4b:	5e                   	pop    %esi
      4c:	5f                   	pop    %edi
      4d:	5d                   	pop    %ebp
      4e:	c3                   	ret    
      4f:	83 fb ff             	cmp    $0xffffffff,%ebx
      52:	74 f3                	je     47 <work_with_active_regions+0x47>
      54:	89 de                	mov    %ebx,%esi
      56:	8d 04 76             	lea    (%esi,%esi,2),%eax
      59:	8b 4d e8             	mov    -0x18(%ebp),%ecx
      5c:	8b 14 85 24 00 00 00 	mov    0x24(,%eax,4),%edx
      63:	8b 04 85 20 00 00 00 	mov    0x20(,%eax,4),%eax
      6a:	ff 55 ec             	call   *-0x14(%ebp)
      6d:	85 c0                	test   %eax,%eax
      6f:	75 d6                	jne    47 <work_with_active_regions+0x47>
      71:	8b 3d 20 0c 00 00    	mov    0xc20,%edi
      77:	8d 5e 01             	lea    0x1(%esi),%ebx
      7a:	39 fb                	cmp    %edi,%ebx
      7c:	7d c9                	jge    47 <work_with_active_regions+0x47>
      7e:	83 7d f0 01          	cmpl   $0x1,-0x10(%ebp)
      82:	74 cb                	je     4f <work_with_active_regions+0x4f>
      84:	8d 44 76 06          	lea    0x6(%esi,%esi,2),%eax
      88:	8d 14 5b             	lea    (%ebx,%ebx,2),%edx
      8b:	8d 0c 85 28 00 00 00 	lea    0x28(,%eax,4),%ecx
      92:	8b 45 f0             	mov    -0x10(%ebp),%eax
      95:	3b 04 95 28 00 00 00 	cmp    0x28(,%edx,4),%eax
      9c:	75 0c                	jne    aa <work_with_active_regions+0xaa>
      9e:	eb af                	jmp    4f <work_with_active_regions+0x4f>
      a0:	8b 01                	mov    (%ecx),%eax
      a2:	83 c1 0c             	add    $0xc,%ecx
      a5:	39 45 f0             	cmp    %eax,-0x10(%ebp)
      a8:	74 a5                	je     4f <work_with_active_regions+0x4f>
      aa:	83 c3 01             	add    $0x1,%ebx
      ad:	39 fb                	cmp    %edi,%ebx
      af:	7c ef                	jl     a0 <work_with_active_regions+0xa0>
      b1:	eb 94                	jmp    47 <work_with_active_regions+0x47>
      b3:	31 f6                	xor    %esi,%esi
      b5:	8d 76 00             	lea    0x0(%esi),%esi
      b8:	eb 9c                	jmp    56 <work_with_active_regions+0x56>

000000ba <sparse_memory_present_with_active_regions>:
      ba:	55                   	push   %ebp
      bb:	89 e5                	mov    %esp,%ebp
      bd:	57                   	push   %edi
      be:	89 c7                	mov    %eax,%edi
      c0:	56                   	push   %esi
      c1:	8b 35 20 0c 00 00    	mov    0xc20,%esi
      c7:	53                   	push   %ebx
      c8:	85 f6                	test   %esi,%esi
      ca:	7e 26                	jle    f2 <sparse_memory_present_with_active_regions+0x38>
      cc:	83 f8 01             	cmp    $0x1,%eax
      cf:	74 26                	je     f7 <sparse_memory_present_with_active_regions+0x3d>
      d1:	31 c9                	xor    %ecx,%ecx
      d3:	ba 34 00 00 00       	mov    $0x34,%edx
      d8:	3b 05 28 00 00 00    	cmp    0x28,%eax
      de:	75 0b                	jne    eb <sparse_memory_present_with_active_regions+0x31>
      e0:	eb 15                	jmp    f7 <sparse_memory_present_with_active_regions+0x3d>
      e2:	8b 02                	mov    (%edx),%eax
      e4:	83 c2 0c             	add    $0xc,%edx
      e7:	39 c7                	cmp    %eax,%edi
      e9:	74 0e                	je     f9 <sparse_memory_present_with_active_regions+0x3f>
      eb:	83 c1 01             	add    $0x1,%ecx
      ee:	39 f1                	cmp    %esi,%ecx
      f0:	7c f0                	jl     e2 <sparse_memory_present_with_active_regions+0x28>
      f2:	5b                   	pop    %ebx
      f3:	5e                   	pop    %esi
      f4:	5f                   	pop    %edi
      f5:	5d                   	pop    %ebp
      f6:	c3                   	ret    
      f7:	31 c9                	xor    %ecx,%ecx
      f9:	8d 59 01             	lea    0x1(%ecx),%ebx
      fc:	39 f3                	cmp    %esi,%ebx
      fe:	7d f2                	jge    f2 <sparse_memory_present_with_active_regions+0x38>
     100:	83 ff 01             	cmp    $0x1,%edi
     103:	74 2b                	je     130 <sparse_memory_present_with_active_regions+0x76>
     105:	8d 14 5b             	lea    (%ebx,%ebx,2),%edx
     108:	3b 3c 95 28 00 00 00 	cmp    0x28(,%edx,4),%edi
     10f:	8d 44 49 06          	lea    0x6(%ecx,%ecx,2),%eax
     113:	8d 0c 85 28 00 00 00 	lea    0x28(,%eax,4),%ecx
     11a:	75 0b                	jne    127 <sparse_memory_present_with_active_regions+0x6d>
     11c:	eb 12                	jmp    130 <sparse_memory_present_with_active_regions+0x76>
     11e:	8b 01                	mov    (%ecx),%eax
     120:	83 c1 0c             	add    $0xc,%ecx
     123:	39 c7                	cmp    %eax,%edi
     125:	74 09                	je     130 <sparse_memory_present_with_active_regions+0x76>
     127:	83 c3 01             	add    $0x1,%ebx
     12a:	39 f3                	cmp    %esi,%ebx
     12c:	7c f0                	jl     11e <sparse_memory_present_with_active_regions+0x64>
     12e:	eb c2                	jmp    f2 <sparse_memory_present_with_active_regions+0x38>
     130:	89 d9                	mov    %ebx,%ecx
     132:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
     138:	eb bf                	jmp    f9 <sparse_memory_present_with_active_regions+0x3f>

0000013a <push_node_boundaries>:
     13a:	55                   	push   %ebp
     13b:	89 e5                	mov    %esp,%ebp
     13d:	5d                   	pop    %ebp
     13e:	c3                   	ret    

0000013f <absent_pages_in_range>:
     13f:	55                   	push   %ebp
     140:	89 d1                	mov    %edx,%ecx
     142:	89 e5                	mov    %esp,%ebp
     144:	89 c2                	mov    %eax,%edx
     146:	b8 01 00 00 00       	mov    $0x1,%eax
     14b:	e8 1b 02 00 00       	call   36b <add_active_range+0x92>
     150:	5d                   	pop    %ebp
     151:	c3                   	ret    

00000152 <remove_all_active_ranges>:
     152:	55                   	push   %ebp
     153:	b9 00 03 00 00       	mov    $0x300,%ecx
     158:	89 e5                	mov    %esp,%ebp
     15a:	31 c0                	xor    %eax,%eax
     15c:	57                   	push   %edi
     15d:	bf 20 00 00 00       	mov    $0x20,%edi
     162:	f3 ab                	rep stos %eax,%es:(%edi)
     164:	c7 05 20 0c 00 00 00 	movl   $0x0,0xc20
     16b:	00 00 00 
     16e:	5f                   	pop    %edi
     16f:	5d                   	pop    %ebp
     170:	c3                   	ret    

00000171 <cmp_node_active_region>:
     171:	55                   	push   %ebp
     172:	89 e5                	mov    %esp,%ebp
     174:	53                   	push   %ebx
     175:	8b 12                	mov    (%edx),%edx
     177:	89 c3                	mov    %eax,%ebx
     179:	39 10                	cmp    %edx,(%eax)
     17b:	b8 01 00 00 00       	mov    $0x1,%eax
     180:	19 c9                	sbb    %ecx,%ecx
     182:	39 13                	cmp    %edx,(%ebx)
     184:	5b                   	pop    %ebx
     185:	5d                   	pop    %ebp
     186:	0f 46 c1             	cmovbe %ecx,%eax
     189:	c3                   	ret    

0000018a <set_dma_reserve>:
     18a:	55                   	push   %ebp
     18b:	89 e5                	mov    %esp,%ebp
     18d:	a3 00 00 00 00       	mov    %eax,0x0
     192:	5d                   	pop    %ebp
     193:	c3                   	ret    

00000194 <page_alloc_init>:
     194:	55                   	push   %ebp
     195:	89 e5                	mov    %esp,%ebp
     197:	5d                   	pop    %ebp
     198:	c3                   	ret    

00000199 <cmdline_parse_core>:
     199:	55                   	push   %ebp
     19a:	89 c1                	mov    %eax,%ecx
     19c:	89 e5                	mov    %esp,%ebp
     19e:	53                   	push   %ebx
     19f:	89 d3                	mov    %edx,%ebx
     1a1:	83 ec 10             	sub    $0x10,%esp
     1a4:	85 c9                	test   %ecx,%ecx
     1a6:	89 45 f8             	mov    %eax,-0x8(%ebp)
     1a9:	b8 ea ff ff ff       	mov    $0xffffffea,%eax
     1ae:	74 1a                	je     1ca <cmdline_parse_core+0x31>
     1b0:	8d 55 f8             	lea    -0x8(%ebp),%edx
     1b3:	89 c8                	mov    %ecx,%eax
     1b5:	e8 fc ff ff ff       	call   1b6 <cmdline_parse_core+0x1d>
     1ba:	0f ac d0 0c          	shrd   $0xc,%edx,%eax
     1be:	c1 ea 0c             	shr    $0xc,%edx
     1c1:	89 03                	mov    %eax,(%ebx)
     1c3:	31 c0                	xor    %eax,%eax
     1c5:	83 fa 00             	cmp    $0x0,%edx
     1c8:	77 06                	ja     1d0 <cmdline_parse_core+0x37>
     1ca:	83 c4 10             	add    $0x10,%esp
     1cd:	5b                   	pop    %ebx
     1ce:	5d                   	pop    %ebp
     1cf:	c3                   	ret    
     1d0:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)
     1d7:	00 
     1d8:	c7 44 24 04 12 10 00 	movl   $0x1012,0x4(%esp)
     1df:	00 
     1e0:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
     1e7:	e8 fc ff ff ff       	call   1e8 <cmdline_parse_core+0x4f>
     1ec:	31 c0                	xor    %eax,%eax
     1ee:	eb da                	jmp    1ca <cmdline_parse_core+0x31>

000001f0 <cmdline_parse_kernelcore>:
     1f0:	55                   	push   %ebp
     1f1:	ba 00 00 00 00       	mov    $0x0,%edx
     1f6:	89 e5                	mov    %esp,%ebp
     1f8:	e8 9c ff ff ff       	call   199 <cmdline_parse_core>
     1fd:	5d                   	pop    %ebp
     1fe:	c3                   	ret    

000001ff <cmdline_parse_movablecore>:
     1ff:	55                   	push   %ebp
     200:	ba 04 00 00 00       	mov    $0x4,%edx
     205:	89 e5                	mov    %esp,%ebp
     207:	e8 8d ff ff ff       	call   199 <cmdline_parse_core>
     20c:	5d                   	pop    %ebp
     20d:	c3                   	ret    

0000020e <find_min_pfn_for_node>:
     20e:	55                   	push   %ebp
     20f:	89 e5                	mov    %esp,%ebp
     211:	57                   	push   %edi
     212:	56                   	push   %esi
     213:	89 c6                	mov    %eax,%esi
     215:	53                   	push   %ebx
     216:	83 ec 0c             	sub    $0xc,%esp
     219:	8b 3d 20 0c 00 00    	mov    0xc20,%edi
     21f:	85 ff                	test   %edi,%edi
     221:	7e 26                	jle    249 <find_min_pfn_for_node+0x3b>
     223:	83 f8 01             	cmp    $0x1,%eax
     226:	74 3b                	je     263 <find_min_pfn_for_node+0x55>
     228:	31 c9                	xor    %ecx,%ecx
     22a:	ba 34 00 00 00       	mov    $0x34,%edx
     22f:	3b 05 28 00 00 00    	cmp    0x28,%eax
     235:	75 0b                	jne    242 <find_min_pfn_for_node+0x34>
     237:	eb 2a                	jmp    263 <find_min_pfn_for_node+0x55>
     239:	8b 02                	mov    (%edx),%eax
     23b:	83 c2 0c             	add    $0xc,%edx
     23e:	39 c6                	cmp    %eax,%esi
     240:	74 23                	je     265 <find_min_pfn_for_node+0x57>
     242:	83 c1 01             	add    $0x1,%ecx
     245:	39 f9                	cmp    %edi,%ecx
     247:	7c f0                	jl     239 <find_min_pfn_for_node+0x2b>
     249:	89 74 24 04          	mov    %esi,0x4(%esp)
     24d:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
     254:	e8 fc ff ff ff       	call   255 <find_min_pfn_for_node+0x47>
     259:	31 c0                	xor    %eax,%eax
     25b:	83 c4 0c             	add    $0xc,%esp
     25e:	5b                   	pop    %ebx
     25f:	5e                   	pop    %esi
     260:	5f                   	pop    %edi
     261:	5d                   	pop    %ebp
     262:	c3                   	ret    
     263:	31 c9                	xor    %ecx,%ecx
     265:	c7 45 f0 ff ff ff ff 	movl   $0xffffffff,-0x10(%ebp)
     26c:	8d 04 49             	lea    (%ecx,%ecx,2),%eax
     26f:	8b 04 85 20 00 00 00 	mov    0x20(,%eax,4),%eax
     276:	8d 59 01             	lea    0x1(%ecx),%ebx
     279:	39 45 f0             	cmp    %eax,-0x10(%ebp)
     27c:	0f 46 45 f0          	cmovbe -0x10(%ebp),%eax
     280:	39 fb                	cmp    %edi,%ebx
     282:	89 45 f0             	mov    %eax,-0x10(%ebp)
     285:	7d 2e                	jge    2b5 <find_min_pfn_for_node+0xa7>
     287:	83 fe 01             	cmp    $0x1,%esi
     28a:	74 36                	je     2c2 <find_min_pfn_for_node+0xb4>
     28c:	8d 14 5b             	lea    (%ebx,%ebx,2),%edx
     28f:	3b 34 95 28 00 00 00 	cmp    0x28(,%edx,4),%esi
     296:	8d 44 49 06          	lea    0x6(%ecx,%ecx,2),%eax
     29a:	8d 0c 85 28 00 00 00 	lea    0x28(,%eax,4),%ecx
     2a1:	75 0b                	jne    2ae <find_min_pfn_for_node+0xa0>
     2a3:	eb 1d                	jmp    2c2 <find_min_pfn_for_node+0xb4>
     2a5:	8b 01                	mov    (%ecx),%eax
     2a7:	83 c1 0c             	add    $0xc,%ecx
     2aa:	39 c6                	cmp    %eax,%esi
     2ac:	74 14                	je     2c2 <find_min_pfn_for_node+0xb4>
     2ae:	83 c3 01             	add    $0x1,%ebx
     2b1:	39 fb                	cmp    %edi,%ebx
     2b3:	7c f0                	jl     2a5 <find_min_pfn_for_node+0x97>
     2b5:	8b 45 f0             	mov    -0x10(%ebp),%eax
     2b8:	83 f8 ff             	cmp    $0xffffffff,%eax
     2bb:	75 9e                	jne    25b <find_min_pfn_for_node+0x4d>
     2bd:	8d 76 00             	lea    0x0(%esi),%esi
     2c0:	eb 87                	jmp    249 <find_min_pfn_for_node+0x3b>
     2c2:	89 d9                	mov    %ebx,%ecx
     2c4:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
     2c8:	eb a2                	jmp    26c <find_min_pfn_for_node+0x5e>

000002ca <find_min_pfn_with_active_regions>:
     2ca:	55                   	push   %ebp
     2cb:	b8 01 00 00 00       	mov    $0x1,%eax
     2d0:	89 e5                	mov    %esp,%ebp
     2d2:	e8 37 ff ff ff       	call   20e <find_min_pfn_for_node>
     2d7:	5d                   	pop    %ebp
     2d8:	c3                   	ret    

000002d9 <add_active_range>:
     2d9:	55                   	push   %ebp
     2da:	89 e5                	mov    %esp,%ebp
     2dc:	57                   	push   %edi
     2dd:	56                   	push   %esi
     2de:	89 c6                	mov    %eax,%esi
     2e0:	53                   	push   %ebx
     2e1:	83 ec 20             	sub    $0x20,%esp
     2e4:	83 3d 00 00 00 00 02 	cmpl   $0x2,0x0
     2eb:	89 55 f0             	mov    %edx,-0x10(%ebp)
     2ee:	89 4d ec             	mov    %ecx,-0x14(%ebp)
     2f1:	7f 5e                	jg     351 <add_active_range+0x78>
     2f3:	8b 3d 20 0c 00 00    	mov    0xc20,%edi
     2f9:	85 ff                	test   %edi,%edi
     2fb:	0f 8e c7 00 00 00    	jle    3c8 <add_active_range+0xef>
     301:	b8 28 00 00 00       	mov    $0x28,%eax
     306:	31 d2                	xor    %edx,%edx
     308:	eb 0a                	jmp    314 <add_active_range+0x3b>
     30a:	83 c2 01             	add    $0x1,%edx
     30d:	83 c0 0c             	add    $0xc,%eax
     310:	39 d7                	cmp    %edx,%edi
     312:	7e 7d                	jle    391 <add_active_range+0xb8>
     314:	39 30                	cmp    %esi,(%eax)
     316:	75 f2                	jne    30a <add_active_range+0x31>
     318:	8b 58 f8             	mov    -0x8(%eax),%ebx
     31b:	3b 5d f0             	cmp    -0x10(%ebp),%ebx
     31e:	0f 86 d2 00 00 00    	jbe    3f6 <add_active_range+0x11d>
     324:	8b 48 fc             	mov    -0x4(%eax),%ecx
     327:	39 4d f0             	cmp    %ecx,-0x10(%ebp)
     32a:	77 de                	ja     30a <add_active_range+0x31>
     32c:	39 4d ec             	cmp    %ecx,-0x14(%ebp)
     32f:	0f 87 b2 00 00 00    	ja     3e7 <add_active_range+0x10e>
     335:	39 4d f0             	cmp    %ecx,-0x10(%ebp)
     338:	73 d0                	jae    30a <add_active_range+0x31>
     33a:	3b 5d ec             	cmp    -0x14(%ebp),%ebx
     33d:	8d 76 00             	lea    0x0(%esi),%esi
     340:	77 c8                	ja     30a <add_active_range+0x31>
     342:	8d 04 52             	lea    (%edx,%edx,2),%eax
     345:	8b 55 f0             	mov    -0x10(%ebp),%edx
     348:	89 14 85 20 00 00 00 	mov    %edx,0x20(,%eax,4)
     34f:	eb 6f                	jmp    3c0 <add_active_range+0xe7>
     351:	c7 04 24 10 00 00 00 	movl   $0x10,(%esp)
     358:	e8 fc ff ff ff       	call   359 <add_active_range+0x80>
     35d:	a1 20 0c 00 00       	mov    0xc20,%eax
     362:	8b 55 f0             	mov    -0x10(%ebp),%edx
     365:	89 44 24 10          	mov    %eax,0x10(%esp)
     369:	8b 45 ec             	mov    -0x14(%ebp),%eax
     36c:	89 54 24 08          	mov    %edx,0x8(%esp)
     370:	89 74 24 04          	mov    %esi,0x4(%esp)
     374:	c7 44 24 14 00 01 00 	movl   $0x100,0x14(%esp)
     37b:	00 
     37c:	89 44 24 0c          	mov    %eax,0xc(%esp)
     380:	c7 04 24 2c 00 00 00 	movl   $0x2c,(%esp)
     387:	e8 fc ff ff ff       	call   388 <add_active_range+0xaf>
     38c:	e9 62 ff ff ff       	jmp    2f3 <add_active_range+0x1a>
     391:	81 fa ff 00 00 00    	cmp    $0xff,%edx
     397:	8d 4a 01             	lea    0x1(%edx),%ecx
     39a:	7f 35                	jg     3d1 <add_active_range+0xf8>
     39c:	8d 04 52             	lea    (%edx,%edx,2),%eax
     39f:	8b 55 f0             	mov    -0x10(%ebp),%edx
     3a2:	89 34 85 28 00 00 00 	mov    %esi,0x28(,%eax,4)
     3a9:	89 0d 20 0c 00 00    	mov    %ecx,0xc20
     3af:	89 14 85 20 00 00 00 	mov    %edx,0x20(,%eax,4)
     3b6:	8b 55 ec             	mov    -0x14(%ebp),%edx
     3b9:	89 14 85 24 00 00 00 	mov    %edx,0x24(,%eax,4)
     3c0:	83 c4 20             	add    $0x20,%esp
     3c3:	5b                   	pop    %ebx
     3c4:	5e                   	pop    %esi
     3c5:	5f                   	pop    %edi
     3c6:	5d                   	pop    %ebp
     3c7:	c3                   	ret    
     3c8:	31 d2                	xor    %edx,%edx
     3ca:	b9 01 00 00 00       	mov    $0x1,%ecx
     3cf:	eb cb                	jmp    39c <add_active_range+0xc3>
     3d1:	c7 44 24 04 00 01 00 	movl   $0x100,0x4(%esp)
     3d8:	00 
     3d9:	c7 04 24 88 00 00 00 	movl   $0x88,(%esp)
     3e0:	e8 fc ff ff ff       	call   3e1 <add_active_range+0x108>
     3e5:	eb d9                	jmp    3c0 <add_active_range+0xe7>
     3e7:	8d 04 52             	lea    (%edx,%edx,2),%eax
     3ea:	8b 55 ec             	mov    -0x14(%ebp),%edx
     3ed:	89 14 85 24 00 00 00 	mov    %edx,0x24(,%eax,4)
     3f4:	eb ca                	jmp    3c0 <add_active_range+0xe7>
     3f6:	8b 48 fc             	mov    -0x4(%eax),%ecx
     3f9:	3b 4d ec             	cmp    -0x14(%ebp),%ecx
     3fc:	0f 82 25 ff ff ff    	jb     327 <add_active_range+0x4e>
     402:	eb bc                	jmp    3c0 <add_active_range+0xe7>

00000404 <remove_active_range>:
     404:	55                   	push   %ebp
     405:	89 e5                	mov    %esp,%ebp
     407:	57                   	push   %edi
     408:	56                   	push   %esi
     409:	53                   	push   %ebx
     40a:	83 ec 30             	sub    $0x30,%esp
     40d:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
     411:	89 45 e0             	mov    %eax,-0x20(%ebp)
     414:	89 55 dc             	mov    %edx,-0x24(%ebp)
     417:	89 4d d8             	mov    %ecx,-0x28(%ebp)
     41a:	89 54 24 08          	mov    %edx,0x8(%esp)
     41e:	89 44 24 04          	mov    %eax,0x4(%esp)
     422:	c7 04 24 b4 00 00 00 	movl   $0xb4,(%esp)
     429:	e8 fc ff ff ff       	call   42a <remove_active_range+0x26>
     42e:	8b 3d 20 0c 00 00    	mov    0xc20,%edi
     434:	85 ff                	test   %edi,%edi
     436:	7e 2b                	jle    463 <remove_active_range+0x5f>
     438:	83 7d e0 01          	cmpl   $0x1,-0x20(%ebp)
     43c:	74 2d                	je     46b <remove_active_range+0x67>
     43e:	8b 45 e0             	mov    -0x20(%ebp),%eax
     441:	31 db                	xor    %ebx,%ebx
     443:	ba 34 00 00 00       	mov    $0x34,%edx
     448:	3b 05 28 00 00 00    	cmp    0x28,%eax
     44e:	75 0c                	jne    45c <remove_active_range+0x58>
     450:	eb 19                	jmp    46b <remove_active_range+0x67>
     452:	8b 02                	mov    (%edx),%eax
     454:	83 c2 0c             	add    $0xc,%edx
     457:	39 45 e0             	cmp    %eax,-0x20(%ebp)
     45a:	74 11                	je     46d <remove_active_range+0x69>
     45c:	83 c3 01             	add    $0x1,%ebx
     45f:	39 fb                	cmp    %edi,%ebx
     461:	7c ef                	jl     452 <remove_active_range+0x4e>
     463:	83 c4 30             	add    $0x30,%esp
     466:	5b                   	pop    %ebx
     467:	5e                   	pop    %esi
     468:	5f                   	pop    %edi
     469:	5d                   	pop    %ebp
     46a:	c3                   	ret    
     46b:	31 db                	xor    %ebx,%ebx
     46d:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
     474:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax
     477:	8b 14 85 20 00 00 00 	mov    0x20(,%eax,4),%edx
     47e:	8d 34 85 00 00 00 00 	lea    0x0(,%eax,4),%esi
     485:	39 55 dc             	cmp    %edx,-0x24(%ebp)
     488:	0f 86 22 01 00 00    	jbe    5b0 <remove_active_range+0x1ac>
     48e:	8b 0c 85 24 00 00 00 	mov    0x24(,%eax,4),%ecx
     495:	39 4d dc             	cmp    %ecx,-0x24(%ebp)
     498:	73 12                	jae    4ac <remove_active_range+0xa8>
     49a:	8b 45 dc             	mov    -0x24(%ebp),%eax
     49d:	39 4d d8             	cmp    %ecx,-0x28(%ebp)
     4a0:	89 86 24 00 00 00    	mov    %eax,0x24(%esi)
     4a6:	0f 82 40 01 00 00    	jb     5ec <remove_active_range+0x1e8>
     4ac:	8d 73 01             	lea    0x1(%ebx),%esi
     4af:	39 fe                	cmp    %edi,%esi
     4b1:	7d 3e                	jge    4f1 <remove_active_range+0xed>
     4b3:	83 7d e0 01          	cmpl   $0x1,-0x20(%ebp)
     4b7:	0f 84 1f 01 00 00    	je     5dc <remove_active_range+0x1d8>
     4bd:	8d 44 5b 06          	lea    0x6(%ebx,%ebx,2),%eax
     4c1:	8d 14 76             	lea    (%esi,%esi,2),%edx
     4c4:	8d 0c 85 28 00 00 00 	lea    0x28(,%eax,4),%ecx
     4cb:	8b 45 e0             	mov    -0x20(%ebp),%eax
     4ce:	3b 04 95 28 00 00 00 	cmp    0x28(,%edx,4),%eax
     4d5:	75 13                	jne    4ea <remove_active_range+0xe6>
     4d7:	e9 00 01 00 00       	jmp    5dc <remove_active_range+0x1d8>
     4dc:	8b 01                	mov    (%ecx),%eax
     4de:	83 c1 0c             	add    $0xc,%ecx
     4e1:	39 45 e0             	cmp    %eax,-0x20(%ebp)
     4e4:	0f 84 f2 00 00 00    	je     5dc <remove_active_range+0x1d8>
     4ea:	83 c6 01             	add    $0x1,%esi
     4ed:	39 fe                	cmp    %edi,%esi
     4ef:	7c eb                	jl     4dc <remove_active_range+0xd8>
     4f1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
     4f4:	85 c0                	test   %eax,%eax
     4f6:	0f 84 67 ff ff ff    	je     463 <remove_active_range+0x5f>
     4fc:	8d 57 ff             	lea    -0x1(%edi),%edx
     4ff:	85 d2                	test   %edx,%edx
     501:	89 55 f0             	mov    %edx,-0x10(%ebp)
     504:	0f 8e 59 ff ff ff    	jle    463 <remove_active_range+0x5f>
     50a:	8d 04 52             	lea    (%edx,%edx,2),%eax
     50d:	8d 04 85 28 00 00 00 	lea    0x28(,%eax,4),%eax
     514:	8d 3c 7f             	lea    (%edi,%edi,2),%edi
     517:	89 45 e8             	mov    %eax,-0x18(%ebp)
     51a:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
     521:	89 7d d4             	mov    %edi,-0x2c(%ebp)
     524:	eb 17                	jmp    53d <remove_active_range+0x139>
     526:	83 6d f0 01          	subl   $0x1,-0x10(%ebp)
     52a:	8b 7d f0             	mov    -0x10(%ebp),%edi
     52d:	83 6d e8 0c          	subl   $0xc,-0x18(%ebp)
     531:	83 6d ec 0c          	subl   $0xc,-0x14(%ebp)
     535:	85 ff                	test   %edi,%edi
     537:	0f 8e 26 ff ff ff    	jle    463 <remove_active_range+0x5f>
     53d:	8b 4d e8             	mov    -0x18(%ebp),%ecx
     540:	8b 45 e0             	mov    -0x20(%ebp),%eax
     543:	39 01                	cmp    %eax,(%ecx)
     545:	75 df                	jne    526 <remove_active_range+0x122>
     547:	8b 41 fc             	mov    -0x4(%ecx),%eax
     54a:	85 c0                	test   %eax,%eax
     54c:	75 d8                	jne    526 <remove_active_range+0x122>
     54e:	a1 20 0c 00 00       	mov    0xc20,%eax
     553:	83 e8 01             	sub    $0x1,%eax
     556:	3b 45 f0             	cmp    -0x10(%ebp),%eax
     559:	7e 36                	jle    591 <remove_active_range+0x18d>
     55b:	8b 45 d4             	mov    -0x2c(%ebp),%eax
     55e:	8b 55 ec             	mov    -0x14(%ebp),%edx
     561:	c1 e0 02             	shl    $0x2,%eax
     564:	8d 9c 02 14 00 00 00 	lea    0x14(%edx,%eax,1),%ebx
     56b:	8d 8c 02 20 00 00 00 	lea    0x20(%edx,%eax,1),%ecx
     572:	8b 55 f0             	mov    -0x10(%ebp),%edx
     575:	89 df                	mov    %ebx,%edi
     577:	89 ce                	mov    %ecx,%esi
     579:	a5                   	movsl  %ds:(%esi),%es:(%edi)
     57a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
     57b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
     57c:	a1 20 0c 00 00       	mov    0xc20,%eax
     581:	83 c2 01             	add    $0x1,%edx
     584:	83 c3 0c             	add    $0xc,%ebx
     587:	83 c1 0c             	add    $0xc,%ecx
     58a:	83 e8 01             	sub    $0x1,%eax
     58d:	39 d0                	cmp    %edx,%eax
     58f:	7f e4                	jg     575 <remove_active_range+0x171>
     591:	8d 3c 40             	lea    (%eax,%eax,2),%edi
     594:	b9 03 00 00 00       	mov    $0x3,%ecx
     599:	8d 3c bd 20 00 00 00 	lea    0x20(,%edi,4),%edi
     5a0:	31 c0                	xor    %eax,%eax
     5a2:	f3 ab                	rep stos %eax,%es:(%edi)
     5a4:	83 2d 20 0c 00 00 01 	subl   $0x1,0xc20
     5ab:	e9 76 ff ff ff       	jmp    526 <remove_active_range+0x122>
     5b0:	8b 4d d8             	mov    -0x28(%ebp),%ecx
     5b3:	3b 0c 85 24 00 00 00 	cmp    0x24(,%eax,4),%ecx
     5ba:	72 46                	jb     602 <remove_active_range+0x1fe>
     5bc:	c7 86 20 00 00 00 00 	movl   $0x0,0x20(%esi)
     5c3:	00 00 00 
     5c6:	c7 86 24 00 00 00 00 	movl   $0x0,0x24(%esi)
     5cd:	00 00 00 
     5d0:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
     5d7:	e9 d0 fe ff ff       	jmp    4ac <remove_active_range+0xa8>
     5dc:	83 fe ff             	cmp    $0xffffffff,%esi
     5df:	0f 84 0c ff ff ff    	je     4f1 <remove_active_range+0xed>
     5e5:	89 f3                	mov    %esi,%ebx
     5e7:	e9 88 fe ff ff       	jmp    474 <remove_active_range+0x70>
     5ec:	8b 55 d8             	mov    -0x28(%ebp),%edx
     5ef:	8b 45 e0             	mov    -0x20(%ebp),%eax
     5f2:	e8 fc ff ff ff       	call   5f3 <remove_active_range+0x1ef>
     5f7:	8b 3d 20 0c 00 00    	mov    0xc20,%edi
     5fd:	e9 aa fe ff ff       	jmp    4ac <remove_active_range+0xa8>
     602:	39 55 d8             	cmp    %edx,-0x28(%ebp)
     605:	0f 86 a1 fe ff ff    	jbe    4ac <remove_active_range+0xa8>
     60b:	8b 55 d8             	mov    -0x28(%ebp),%edx
     60e:	89 96 20 00 00 00    	mov    %edx,0x20(%esi)
     614:	e9 93 fe ff ff       	jmp    4ac <remove_active_range+0xa8>

00000619 <free_bootmem_with_active_regions>:
     619:	55                   	push   %ebp
     61a:	89 e5                	mov    %esp,%ebp
     61c:	57                   	push   %edi
     61d:	56                   	push   %esi
     61e:	53                   	push   %ebx
     61f:	83 ec 08             	sub    $0x8,%esp
     622:	8b 3d 20 0c 00 00    	mov    0xc20,%edi
     628:	89 45 f0             	mov    %eax,-0x10(%ebp)
     62b:	89 55 ec             	mov    %edx,-0x14(%ebp)
     62e:	85 ff                	test   %edi,%edi
     630:	7e 2e                	jle    660 <free_bootmem_with_active_regions+0x47>
     632:	83 f8 01             	cmp    $0x1,%eax
     635:	0f 84 a5 00 00 00    	je     6e0 <free_bootmem_with_active_regions+0xc7>
     63b:	31 f6                	xor    %esi,%esi
     63d:	ba 34 00 00 00       	mov    $0x34,%edx
     642:	3b 05 28 00 00 00    	cmp    0x28,%eax
     648:	75 0f                	jne    659 <free_bootmem_with_active_regions+0x40>
     64a:	e9 91 00 00 00       	jmp    6e0 <free_bootmem_with_active_regions+0xc7>
     64f:	8b 02                	mov    (%edx),%eax
     651:	83 c2 0c             	add    $0xc,%edx
     654:	39 45 f0             	cmp    %eax,-0x10(%ebp)
     657:	74 16                	je     66f <free_bootmem_with_active_regions+0x56>
     659:	83 c6 01             	add    $0x1,%esi
     65c:	39 fe                	cmp    %edi,%esi
     65e:	7c ef                	jl     64f <free_bootmem_with_active_regions+0x36>
     660:	83 c4 08             	add    $0x8,%esp
     663:	5b                   	pop    %ebx
     664:	5e                   	pop    %esi
     665:	5f                   	pop    %edi
     666:	5d                   	pop    %ebp
     667:	c3                   	ret    
     668:	83 fb ff             	cmp    $0xffffffff,%ebx
     66b:	74 f3                	je     660 <free_bootmem_with_active_regions+0x47>
     66d:	89 de                	mov    %ebx,%esi
     66f:	8d 04 76             	lea    (%esi,%esi,2),%eax
     672:	8b 14 85 20 00 00 00 	mov    0x20(,%eax,4),%edx
     679:	3b 55 ec             	cmp    -0x14(%ebp),%edx
     67c:	8b 0c 85 24 00 00 00 	mov    0x24(,%eax,4),%ecx
     683:	73 1f                	jae    6a4 <free_bootmem_with_active_regions+0x8b>
     685:	39 4d ec             	cmp    %ecx,-0x14(%ebp)
     688:	b8 00 00 00 00       	mov    $0x0,%eax
     68d:	0f 46 4d ec          	cmovbe -0x14(%ebp),%ecx
     691:	29 d1                	sub    %edx,%ecx
     693:	c1 e1 0c             	shl    $0xc,%ecx
     696:	c1 e2 0c             	shl    $0xc,%edx
     699:	e8 fc ff ff ff       	call   69a <free_bootmem_with_active_regions+0x81>
     69e:	8b 3d 20 0c 00 00    	mov    0xc20,%edi
     6a4:	8d 5e 01             	lea    0x1(%esi),%ebx
     6a7:	39 fb                	cmp    %edi,%ebx
     6a9:	7d b5                	jge    660 <free_bootmem_with_active_regions+0x47>
     6ab:	83 7d f0 01          	cmpl   $0x1,-0x10(%ebp)
     6af:	74 b7                	je     668 <free_bootmem_with_active_regions+0x4f>
     6b1:	8d 44 76 06          	lea    0x6(%esi,%esi,2),%eax
     6b5:	8d 14 5b             	lea    (%ebx,%ebx,2),%edx
     6b8:	8d 0c 85 28 00 00 00 	lea    0x28(,%eax,4),%ecx
     6bf:	8b 45 f0             	mov    -0x10(%ebp),%eax
     6c2:	3b 04 95 28 00 00 00 	cmp    0x28(,%edx,4),%eax
     6c9:	75 0c                	jne    6d7 <free_bootmem_with_active_regions+0xbe>
     6cb:	eb 9b                	jmp    668 <free_bootmem_with_active_regions+0x4f>
     6cd:	8b 01                	mov    (%ecx),%eax
     6cf:	83 c1 0c             	add    $0xc,%ecx
     6d2:	39 45 f0             	cmp    %eax,-0x10(%ebp)
     6d5:	74 91                	je     668 <free_bootmem_with_active_regions+0x4f>
     6d7:	83 c3 01             	add    $0x1,%ebx
     6da:	39 fb                	cmp    %edi,%ebx
     6dc:	7c ef                	jl     6cd <free_bootmem_with_active_regions+0xb4>
     6de:	eb 80                	jmp    660 <free_bootmem_with_active_regions+0x47>
     6e0:	31 f6                	xor    %esi,%esi
     6e2:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
     6e8:	eb 85                	jmp    66f <free_bootmem_with_active_regions+0x56>

000006ea <free_area_init_node>:
     6ea:	55                   	push   %ebp
     6eb:	89 e5                	mov    %esp,%ebp
     6ed:	57                   	push   %edi
     6ee:	31 ff                	xor    %edi,%edi
     6f0:	56                   	push   %esi
     6f1:	31 f6                	xor    %esi,%esi
     6f3:	53                   	push   %ebx
     6f4:	31 db                	xor    %ebx,%ebx
     6f6:	83 ec 40             	sub    $0x40,%esp
     6f9:	89 45 d4             	mov    %eax,-0x2c(%ebp)
     6fc:	89 55 d0             	mov    %edx,-0x30(%ebp)
     6ff:	a3 44 20 00 00       	mov    %eax,0x2044
     704:	89 0d 38 20 00 00    	mov    %ecx,0x2038
     70a:	8b 4d d0             	mov    -0x30(%ebp),%ecx
     70d:	89 fa                	mov    %edi,%edx
     70f:	83 c3 01             	add    $0x1,%ebx
     712:	a1 44 20 00 00       	mov    0x2044,%eax
     717:	83 c7 01             	add    $0x1,%edi
     71a:	e8 86 01 00 00       	call   8a5 <free_area_init_node+0x1bb>
     71f:	01 c6                	add    %eax,%esi
     721:	83 fb 04             	cmp    $0x4,%ebx
     724:	75 e4                	jne    70a <free_area_init_node+0x20>
     726:	89 35 40 20 00 00    	mov    %esi,0x2040
     72c:	31 ff                	xor    %edi,%edi
     72e:	30 db                	xor    %bl,%bl
     730:	8b 4d 08             	mov    0x8(%ebp),%ecx
     733:	89 fa                	mov    %edi,%edx
     735:	83 c3 01             	add    $0x1,%ebx
     738:	a1 44 20 00 00       	mov    0x2044,%eax
     73d:	83 c7 01             	add    $0x1,%edi
     740:	e8 62 03 00 00       	call   aa7 <free_area_init_node+0x3bd>
     745:	29 c6                	sub    %eax,%esi
     747:	83 fb 04             	cmp    $0x4,%ebx
     74a:	75 e4                	jne    730 <free_area_init_node+0x46>
     74c:	a1 44 20 00 00       	mov    0x2044,%eax
     751:	89 35 3c 20 00 00    	mov    %esi,0x203c
     757:	89 74 24 08          	mov    %esi,0x8(%esp)
     75b:	c7 04 24 24 01 00 00 	movl   $0x124,(%esp)
     762:	89 44 24 04          	mov    %eax,0x4(%esp)
     766:	e8 fc ff ff ff       	call   767 <free_area_init_node+0x7d>
     76b:	b8 00 00 00 00       	mov    $0x0,%eax
     770:	e8 fc ff ff ff       	call   771 <free_area_init_node+0x87>
     775:	a1 30 20 00 00       	mov    0x2030,%eax
     77a:	89 44 24 0c          	mov    %eax,0xc(%esp)
     77e:	8b 45 d4             	mov    -0x2c(%ebp),%eax
     781:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)
     788:	00 
     789:	c7 04 24 44 01 00 00 	movl   $0x144,(%esp)
     790:	89 44 24 04          	mov    %eax,0x4(%esp)
     794:	e8 fc ff ff ff       	call   795 <free_area_init_node+0xab>
     799:	8b 15 44 20 00 00    	mov    0x2044,%edx
     79f:	b8 48 20 00 00       	mov    $0x2048,%eax
     7a4:	8b 0d 38 20 00 00    	mov    0x2038,%ecx
     7aa:	c7 05 2c 20 00 00 00 	movl   $0x0,0x202c
     7b1:	00 00 00 
     7b4:	89 55 e4             	mov    %edx,-0x1c(%ebp)
     7b7:	89 4d e0             	mov    %ecx,-0x20(%ebp)
     7ba:	e8 fc ff ff ff       	call   7bb <free_area_init_node+0xd1>
     7bf:	c7 05 58 20 00 00 00 	movl   $0x0,0x2058
     7c6:	00 00 00 
     7c9:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
     7d0:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
     7d7:	8b 4d d0             	mov    -0x30(%ebp),%ecx
     7da:	8b 55 e8             	mov    -0x18(%ebp),%edx
     7dd:	8b 45 e4             	mov    -0x1c(%ebp),%eax
     7e0:	e8 86 01 00 00       	call   96b <free_area_init_node+0x281>
     7e5:	8b 4d 08             	mov    0x8(%ebp),%ecx
     7e8:	8b 55 e8             	mov    -0x18(%ebp),%edx
     7eb:	89 45 dc             	mov    %eax,-0x24(%ebp)
     7ee:	8b 45 e4             	mov    -0x1c(%ebp),%eax
     7f1:	e8 62 03 00 00       	call   b58 <free_area_init+0x2>
     7f6:	8b 5d dc             	mov    -0x24(%ebp),%ebx
     7f9:	29 c3                	sub    %eax,%ebx
     7fb:	8b 45 dc             	mov    -0x24(%ebp),%eax
     7fe:	c1 e0 05             	shl    $0x5,%eax
     801:	05 ff 0f 00 00       	add    $0xfff,%eax
     806:	c1 e8 0c             	shr    $0xc,%eax
     809:	39 c3                	cmp    %eax,%ebx
     80b:	0f 82 e9 01 00 00    	jb     9fa <free_area_init_node+0x310>
     811:	29 c3                	sub    %eax,%ebx
     813:	85 c0                	test   %eax,%eax
     815:	0f 85 62 02 00 00    	jne    a7d <free_area_init_node+0x393>
     81b:	8b 75 e8             	mov    -0x18(%ebp),%esi
     81e:	85 f6                	test   %esi,%esi
     820:	0f 85 26 02 00 00    	jne    a4c <free_area_init_node+0x362>
     826:	a1 00 00 00 00       	mov    0x0,%eax
     82b:	39 d8                	cmp    %ebx,%eax
     82d:	0f 82 fa 01 00 00    	jb     a2d <free_area_init_node+0x343>
     833:	01 1d 00 00 00 00    	add    %ebx,0x0
     839:	8b 7d e8             	mov    -0x18(%ebp),%edi
     83c:	8b 45 e8             	mov    -0x18(%ebp),%eax
     83f:	8b 4d dc             	mov    -0x24(%ebp),%ecx
     842:	01 1d 00 00 00 00    	add    %ebx,0x0
     848:	8b 14 bd 00 00 00 00 	mov    0x0(,%edi,4),%edx
     84f:	c1 e0 0b             	shl    $0xb,%eax
     852:	89 88 94 07 00 00    	mov    %ecx,0x794(%eax)
     858:	89 d9                	mov    %ebx,%ecx
     85a:	c1 e9 0a             	shr    $0xa,%ecx
     85d:	89 90 9c 07 00 00    	mov    %edx,0x79c(%eax)
     863:	ba 20 00 00 00       	mov    $0x20,%edx
     868:	89 98 98 07 00 00    	mov    %ebx,0x798(%eax)
     86e:	c7 80 80 04 00 00 00 	movl   $0x0,0x480(%eax)
     875:	00 00 00 
     878:	c7 80 80 06 00 00 00 	movl   $0x0,0x680(%eax)
     87f:	00 00 00 
     882:	c7 80 8c 07 00 00 00 	movl   $0x0,0x78c(%eax)
     889:	00 00 00 
     88c:	c7 80 24 07 00 00 0c 	movl   $0xc,0x724(%eax)
     893:	00 00 00 
     896:	89 c8                	mov    %ecx,%eax
     898:	c1 e0 0c             	shl    $0xc,%eax
     89b:	3d 00 00 08 00       	cmp    $0x80000,%eax
     8a0:	0f 87 7b 01 00 00    	ja     a21 <free_area_init_node+0x337>
     8a6:	89 c8                	mov    %ecx,%eax
     8a8:	bb 01 00 00 00       	mov    $0x1,%ebx
     8ad:	c1 f8 02             	sar    $0x2,%eax
     8b0:	85 c0                	test   %eax,%eax
     8b2:	89 c2                	mov    %eax,%edx
     8b4:	0f 8f 67 01 00 00    	jg     a21 <free_area_init_node+0x337>
     8ba:	ba 01 00 00 00       	mov    $0x1,%edx
     8bf:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
     8c4:	0f bd cb             	bsr    %ebx,%ecx
     8c7:	0f 44 c8             	cmove  %eax,%ecx
     8ca:	89 d0                	mov    %edx,%eax
     8cc:	d3 e0                	shl    %cl,%eax
     8ce:	89 c1                	mov    %eax,%ecx
     8d0:	83 e9 01             	sub    $0x1,%ecx
     8d3:	8d 04 49             	lea    (%ecx,%ecx,2),%eax
     8d6:	01 c0                	add    %eax,%eax
     8d8:	85 c9                	test   %ecx,%ecx
     8da:	0f 45 d1             	cmovne %ecx,%edx
     8dd:	31 db                	xor    %ebx,%ebx
     8df:	89 55 ec             	mov    %edx,-0x14(%ebp)
     8e2:	8b 55 e8             	mov    -0x18(%ebp),%edx
     8e5:	89 45 cc             	mov    %eax,-0x34(%ebp)
     8e8:	89 4d d8             	mov    %ecx,-0x28(%ebp)
     8eb:	c1 e2 04             	shl    $0x4,%edx
     8ee:	89 d0                	mov    %edx,%eax
     8f0:	89 d6                	mov    %edx,%esi
     8f2:	c1 e0 07             	shl    $0x7,%eax
     8f5:	05 80 00 00 00       	add    $0x80,%eax
     8fa:	89 45 c8             	mov    %eax,-0x38(%ebp)
     8fd:	8d 44 33 01          	lea    0x1(%ebx,%esi,1),%eax
     901:	b9 20 00 00 00       	mov    $0x20,%ecx
     906:	c1 e0 07             	shl    $0x7,%eax
     909:	05 00 00 00 00       	add    $0x0,%eax
     90e:	89 45 c4             	mov    %eax,-0x3c(%ebp)
     911:	89 c7                	mov    %eax,%edi
     913:	31 c0                	xor    %eax,%eax
     915:	f3 ab                	rep stos %eax,%es:(%edi)
     917:	8b 45 c8             	mov    -0x38(%ebp),%eax
     91a:	83 c3 01             	add    $0x1,%ebx
     91d:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
     923:	8b 55 cc             	mov    -0x34(%ebp),%edx
     926:	89 50 04             	mov    %edx,0x4(%eax)
     929:	8b 4d ec             	mov    -0x14(%ebp),%ecx
     92c:	89 48 08             	mov    %ecx,0x8(%eax)
     92f:	8b 45 c4             	mov    -0x3c(%ebp),%eax
     932:	8b 7d c8             	mov    -0x38(%ebp),%edi
     935:	83 c0 0c             	add    $0xc,%eax
     938:	89 47 0c             	mov    %eax,0xc(%edi)
     93b:	89 47 10             	mov    %eax,0x10(%edi)
     93e:	83 ef 80             	sub    $0xffffff80,%edi
     941:	83 fb 08             	cmp    $0x8,%ebx
     944:	89 7d c8             	mov    %edi,-0x38(%ebp)
     947:	75 b4                	jne    8fd <free_area_init_node+0x213>
     949:	8b 55 e8             	mov    -0x18(%ebp),%edx
     94c:	c1 e2 0b             	shl    $0xb,%edx
     94f:	8b 82 98 07 00 00    	mov    0x798(%edx),%eax
     955:	85 c0                	test   %eax,%eax
     957:	0f 85 43 01 00 00    	jne    aa0 <free_area_init_node+0x3b6>
     95d:	8b 75 e8             	mov    -0x18(%ebp),%esi
     960:	31 c9                	xor    %ecx,%ecx
     962:	31 db                	xor    %ebx,%ebx
     964:	c1 e6 0b             	shl    $0xb,%esi
     967:	8d 04 49             	lea    (%ecx,%ecx,2),%eax
     96a:	83 c3 01             	add    $0x1,%ebx
     96d:	8d 04 86             	lea    (%esi,%eax,4),%eax
     970:	83 c1 01             	add    $0x1,%ecx
     973:	8d 90 84 06 00 00    	lea    0x684(%eax),%edx
     979:	83 fb 05             	cmp    $0x5,%ebx
     97c:	89 90 84 06 00 00    	mov    %edx,0x684(%eax)
     982:	89 90 88 06 00 00    	mov    %edx,0x688(%eax)
     988:	c7 80 8c 06 00 00 00 	movl   $0x0,0x68c(%eax)
     98f:	00 00 00 
     992:	75 d3                	jne    967 <free_area_init_node+0x27d>
     994:	c7 86 c0 06 00 00 00 	movl   $0x0,0x6c0(%esi)
     99b:	00 00 00 
     99e:	8d be d8 06 00 00    	lea    0x6d8(%esi),%edi
     9a4:	b9 13 00 00 00       	mov    $0x13,%ecx
     9a9:	c7 86 c4 06 00 00 00 	movl   $0x0,0x6c4(%esi)
     9b0:	00 00 00 
     9b3:	31 c0                	xor    %eax,%eax
     9b5:	c7 86 c8 06 00 00 00 	movl   $0x0,0x6c8(%esi)
     9bc:	00 00 00 
     9bf:	c7 86 cc 06 00 00 00 	movl   $0x0,0x6cc(%esi)
     9c6:	00 00 00 
     9c9:	f3 ab                	rep stos %eax,%es:(%edi)
     9cb:	8b 5d dc             	mov    -0x24(%ebp),%ebx
     9ce:	c7 86 d4 06 00 00 00 	movl   $0x0,0x6d4(%esi)
     9d5:	00 00 00 
     9d8:	85 db                	test   %ebx,%ebx
     9da:	0f 85 e6 00 00 00    	jne    ac6 <free_area_init_node+0x3dc>
     9e0:	83 45 f0 01          	addl   $0x1,-0x10(%ebp)
     9e4:	83 45 e8 01          	addl   $0x1,-0x18(%ebp)
     9e8:	83 7d f0 04          	cmpl   $0x4,-0x10(%ebp)
     9ec:	0f 85 e5 fd ff ff    	jne    7d7 <free_area_init_node+0xed>
     9f2:	83 c4 40             	add    $0x40,%esp
     9f5:	5b                   	pop    %ebx
     9f6:	5e                   	pop    %esi
     9f7:	5f                   	pop    %edi
     9f8:	5d                   	pop    %ebp
     9f9:	c3                   	ret    
     9fa:	8b 55 e8             	mov    -0x18(%ebp),%edx
     9fd:	89 44 24 08          	mov    %eax,0x8(%esp)
     a01:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
     a05:	c7 04 24 b4 01 00 00 	movl   $0x1b4,(%esp)
     a0c:	8b 04 95 00 00 00 00 	mov    0x0(,%edx,4),%eax
     a13:	89 44 24 04          	mov    %eax,0x4(%esp)
     a17:	e8 fc ff ff ff       	call   a18 <free_area_init_node+0x32e>
     a1c:	e9 fa fd ff ff       	jmp    81b <free_area_init_node+0x131>
     a21:	89 d0                	mov    %edx,%eax
     a23:	d1 f8                	sar    %eax
     a25:	8d 1c 10             	lea    (%eax,%edx,1),%ebx
     a28:	e9 8d fe ff ff       	jmp    8ba <free_area_init_node+0x1d0>
     a2d:	29 c3                	sub    %eax,%ebx
     a2f:	89 44 24 08          	mov    %eax,0x8(%esp)
     a33:	c7 44 24 04 14 00 00 	movl   $0x14,0x4(%esp)
     a3a:	00 
     a3b:	c7 04 24 e4 01 00 00 	movl   $0x1e4,(%esp)
     a42:	e8 fc ff ff ff       	call   a43 <free_area_init_node+0x359>
     a47:	e9 e7 fd ff ff       	jmp    833 <free_area_init_node+0x149>
     a4c:	83 7d e8 02          	cmpl   $0x2,-0x18(%ebp)
     a50:	0f 84 e3 fd ff ff    	je     839 <free_area_init_node+0x14f>
     a56:	83 7d e8 03          	cmpl   $0x3,-0x18(%ebp)
     a5a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
     a60:	0f 85 cd fd ff ff    	jne    833 <free_area_init_node+0x149>
     a66:	83 3d 00 00 00 00 02 	cmpl   $0x2,0x0
     a6d:	8d 76 00             	lea    0x0(%esi),%esi
     a70:	0f 85 bd fd ff ff    	jne    833 <free_area_init_node+0x149>
     a76:	66 90                	xchg   %ax,%ax
     a78:	e9 bc fd ff ff       	jmp    839 <free_area_init_node+0x14f>
     a7d:	8b 7d e8             	mov    -0x18(%ebp),%edi
     a80:	89 44 24 08          	mov    %eax,0x8(%esp)
     a84:	c7 04 24 88 01 00 00 	movl   $0x188,(%esp)
     a8b:	8b 04 bd 00 00 00 00 	mov    0x0(,%edi,4),%eax
     a92:	89 44 24 04          	mov    %eax,0x4(%esp)
     a96:	e8 fc ff ff ff       	call   a97 <free_area_init_node+0x3ad>
     a9b:	e9 7b fd ff ff       	jmp    81b <free_area_init_node+0x131>
     aa0:	8b 4d d8             	mov    -0x28(%ebp),%ecx
     aa3:	89 44 24 08          	mov    %eax,0x8(%esp)
     aa7:	8b 82 9c 07 00 00    	mov    0x79c(%edx),%eax
     aad:	c7 04 24 08 02 00 00 	movl   $0x208,(%esp)
     ab4:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
     ab8:	89 44 24 04          	mov    %eax,0x4(%esp)
     abc:	e8 fc ff ff ff       	call   abd <free_area_init_node+0x3d3>
     ac1:	e9 97 fe ff ff       	jmp    95d <free_area_init_node+0x273>
     ac6:	8b 45 dc             	mov    -0x24(%ebp),%eax
     ac9:	c7 86 68 06 00 00 00 	movl   $0x0,0x668(%esi)
     ad0:	00 00 00 
     ad3:	05 ff 01 00 00       	add    $0x1ff,%eax
     ad8:	c1 e8 09             	shr    $0x9,%eax
     adb:	8d 54 40 1f          	lea    0x1f(%eax,%eax,2),%edx
     adf:	81 e2 e0 ff ff 07    	and    $0x7ffffe0,%edx
     ae5:	c1 ea 03             	shr    $0x3,%edx
     ae8:	85 d2                	test   %edx,%edx
     aea:	75 48                	jne    b34 <free_area_init_node+0x44a>
     aec:	8b 45 e8             	mov    -0x18(%ebp),%eax
     aef:	8b 4d dc             	mov    -0x24(%ebp),%ecx
     af2:	8b 55 e0             	mov    -0x20(%ebp),%edx
     af5:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
     afc:	c1 e0 0b             	shl    $0xb,%eax
     aff:	05 00 00 00 00       	add    $0x0,%eax
     b04:	e8 fc ff ff ff       	call   b05 <free_area_init_node+0x41b>
     b09:	85 c0                	test   %eax,%eax
     b0b:	75 45                	jne    b52 <free_area_init_node+0x468>
     b0d:	8b 55 e0             	mov    -0x20(%ebp),%edx
     b10:	8b 4d e8             	mov    -0x18(%ebp),%ecx
     b13:	8b 45 dc             	mov    -0x24(%ebp),%eax
     b16:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
     b1d:	00 
     b1e:	89 14 24             	mov    %edx,(%esp)
     b21:	8b 55 e4             	mov    -0x1c(%ebp),%edx
     b24:	e8 fc ff ff ff       	call   b25 <free_area_init_node+0x43b>
     b29:	8b 4d dc             	mov    -0x24(%ebp),%ecx
     b2c:	01 4d e0             	add    %ecx,-0x20(%ebp)
     b2f:	e9 ac fe ff ff       	jmp    9e0 <free_area_init_node+0x2f6>
     b34:	b9 80 00 00 00       	mov    $0x80,%ecx
     b39:	b8 00 00 00 00       	mov    $0x0,%eax
     b3e:	c7 04 24 00 00 00 01 	movl   $0x1000000,(%esp)
     b45:	e8 fc ff ff ff       	call   b46 <free_area_init_node+0x45c>
     b4a:	89 86 68 06 00 00    	mov    %eax,0x668(%esi)
     b50:	eb 9a                	jmp    aec <free_area_init_node+0x402>
     b52:	0f 0b                	ud2a   
     b54:	eb fe                	jmp    b54 <free_area_init_node+0x46a>

00000b56 <free_area_init>:
     b56:	55                   	push   %ebp
     b57:	89 c2                	mov    %eax,%edx
     b59:	89 e5                	mov    %esp,%ebp
     b5b:	31 c9                	xor    %ecx,%ecx
     b5d:	83 ec 04             	sub    $0x4,%esp
     b60:	31 c0                	xor    %eax,%eax
     b62:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
     b69:	e8 fc ff ff ff       	call   b6a <free_area_init+0x14>
     b6e:	c9                   	leave  
     b6f:	c3                   	ret    

00000b70 <free_area_init_nodes>:
     b70:	55                   	push   %ebp
     b71:	b9 0c 00 00 00       	mov    $0xc,%ecx
     b76:	89 e5                	mov    %esp,%ebp
     b78:	57                   	push   %edi
     b79:	bf 24 0c 00 00       	mov    $0xc24,%edi
     b7e:	56                   	push   %esi
     b7f:	be 04 00 00 00       	mov    $0x4,%esi
     b84:	53                   	push   %ebx
     b85:	89 c3                	mov    %eax,%ebx
     b87:	83 ec 28             	sub    $0x28,%esp
     b8a:	8b 15 20 0c 00 00    	mov    0xc20,%edx
     b90:	b8 20 00 00 00       	mov    $0x20,%eax
     b95:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
     b9c:	00 
     b9d:	c7 04 24 71 01 00 00 	movl   $0x171,(%esp)
     ba4:	e8 fc ff ff ff       	call   ba5 <free_area_init_nodes+0x35>
     ba9:	31 c0                	xor    %eax,%eax
     bab:	89 f1                	mov    %esi,%ecx
     bad:	f3 ab                	rep stos %eax,%es:(%edi)
     baf:	bf 34 0c 00 00       	mov    $0xc34,%edi
     bb4:	89 f1                	mov    %esi,%ecx
     bb6:	f3 ab                	rep stos %eax,%es:(%edi)
     bb8:	e8 fc ff ff ff       	call   bb9 <free_area_init_nodes+0x49>
     bbd:	a3 24 0c 00 00       	mov    %eax,0xc24
     bc2:	8b 03                	mov    (%ebx),%eax
     bc4:	a3 34 0c 00 00       	mov    %eax,0xc34
     bc9:	a3 28 0c 00 00       	mov    %eax,0xc28
     bce:	8b 53 04             	mov    0x4(%ebx),%edx
     bd1:	39 d0                	cmp    %edx,%eax
     bd3:	0f 42 c2             	cmovb  %edx,%eax
     bd6:	ba 24 00 00 00       	mov    $0x24,%edx
     bdb:	a3 38 0c 00 00       	mov    %eax,0xc38
     be0:	a3 2c 0c 00 00       	mov    %eax,0xc2c
     be5:	39 43 08             	cmp    %eax,0x8(%ebx)
     be8:	0f 43 43 08          	cmovae 0x8(%ebx),%eax
     bec:	31 db                	xor    %ebx,%ebx
     bee:	c7 05 30 0c 00 00 00 	movl   $0x0,0xc30
     bf5:	00 00 00 
     bf8:	c7 05 40 0c 00 00 00 	movl   $0x0,0xc40
     bff:	00 00 00 
     c02:	a3 3c 0c 00 00       	mov    %eax,0xc3c
     c07:	a1 20 0c 00 00       	mov    0xc20,%eax
     c0c:	c7 05 44 0c 00 00 00 	movl   $0x0,0xc44
     c13:	00 00 00 
     c16:	85 c0                	test   %eax,%eax
     c18:	7e 17                	jle    c31 <free_area_init_nodes+0xc1>
     c1a:	8d 44 40 01          	lea    0x1(%eax,%eax,2),%eax
     c1e:	8d 04 85 20 00 00 00 	lea    0x20(,%eax,4),%eax
     c25:	03 1a                	add    (%edx),%ebx
     c27:	2b 5a fc             	sub    -0x4(%edx),%ebx
     c2a:	83 c2 0c             	add    $0xc,%edx
     c2d:	39 c2                	cmp    %eax,%edx
     c2f:	75 f4                	jne    c25 <free_area_init_nodes+0xb5>
     c31:	a1 0c 00 00 00       	mov    0xc,%eax
     c36:	83 e0 01             	and    $0x1,%eax
     c39:	e8 fc ff ff ff       	call   c3a <free_area_init_nodes+0xca>
     c3e:	89 c1                	mov    %eax,%ecx
     c40:	a1 04 00 00 00       	mov    0x4,%eax
     c45:	85 c0                	test   %eax,%eax
     c47:	0f 85 9b 00 00 00    	jne    ce8 <free_area_init_nodes+0x178>
     c4d:	8b 15 00 00 00 00    	mov    0x0,%edx
     c53:	85 d2                	test   %edx,%edx
     c55:	89 55 e4             	mov    %edx,-0x1c(%ebp)
     c58:	0f 84 00 01 00 00    	je     d5e <free_area_init_nodes+0x1ee>
     c5e:	b8 03 00 00 00       	mov    $0x3,%eax
     c63:	ba 02 00 00 00       	mov    $0x2,%edx
     c68:	83 f8 03             	cmp    $0x3,%eax
     c6b:	0f 44 c2             	cmove  %edx,%eax
     c6e:	8b 1c 85 24 0c 00 00 	mov    0xc24(,%eax,4),%ebx
     c75:	39 1c 85 34 0c 00 00 	cmp    %ebx,0xc34(,%eax,4)
     c7c:	89 5d dc             	mov    %ebx,-0x24(%ebp)
     c7f:	77 0f                	ja     c90 <free_area_init_nodes+0x120>
     c81:	83 e8 01             	sub    $0x1,%eax
     c84:	79 e2                	jns    c68 <free_area_init_nodes+0xf8>
     c86:	8b 14 85 24 0c 00 00 	mov    0xc24(,%eax,4),%edx
     c8d:	89 55 dc             	mov    %edx,-0x24(%ebp)
     c90:	89 4d e0             	mov    %ecx,-0x20(%ebp)
     c93:	8b 1d 44 0c 00 00    	mov    0xc44,%ebx
     c99:	8b 0d 28 00 00 00    	mov    0x28,%ecx
     c9f:	8b 3d 20 0c 00 00    	mov    0xc20,%edi
     ca5:	a3 00 00 00 00       	mov    %eax,0x0
     caa:	89 5d e8             	mov    %ebx,-0x18(%ebp)
     cad:	89 4d f0             	mov    %ecx,-0x10(%ebp)
     cb0:	8b 45 e4             	mov    -0x1c(%ebp),%eax
     cb3:	31 d2                	xor    %edx,%edx
     cb5:	f7 75 e0             	divl   -0x20(%ebp)
     cb8:	85 ff                	test   %edi,%edi
     cba:	89 45 ec             	mov    %eax,-0x14(%ebp)
     cbd:	7e 63                	jle    d22 <free_area_init_nodes+0x1b2>
     cbf:	8b 45 f0             	mov    -0x10(%ebp),%eax
     cc2:	31 db                	xor    %ebx,%ebx
     cc4:	ba 34 00 00 00       	mov    $0x34,%edx
     cc9:	85 c0                	test   %eax,%eax
     ccb:	75 12                	jne    cdf <free_area_init_nodes+0x16f>
     ccd:	e9 9d 01 00 00       	jmp    e6f <free_area_init_nodes+0x2ff>
     cd2:	8b 02                	mov    (%edx),%eax
     cd4:	83 c2 0c             	add    $0xc,%edx
     cd7:	85 c0                	test   %eax,%eax
     cd9:	0f 84 92 01 00 00    	je     e71 <free_area_init_nodes+0x301>
     cdf:	83 c3 01             	add    $0x1,%ebx
     ce2:	39 fb                	cmp    %edi,%ebx
     ce4:	7c ec                	jl     cd2 <free_area_init_nodes+0x162>
     ce6:	eb 3a                	jmp    d22 <free_area_init_nodes+0x1b2>
     ce8:	8b 15 00 00 00 00    	mov    0x0,%edx
     cee:	05 ff 03 00 00       	add    $0x3ff,%eax
     cf3:	25 00 fc ff ff       	and    $0xfffffc00,%eax
     cf8:	29 c3                	sub    %eax,%ebx
     cfa:	a3 04 00 00 00       	mov    %eax,0x4
     cff:	39 d3                	cmp    %edx,%ebx
     d01:	0f 43 d3             	cmovae %ebx,%edx
     d04:	89 15 00 00 00 00    	mov    %edx,0x0
     d0a:	e9 44 ff ff ff       	jmp    c53 <free_area_init_nodes+0xe3>
     d0f:	03 4d ec             	add    -0x14(%ebp),%ecx
     d12:	89 4d e8             	mov    %ecx,-0x18(%ebp)
     d15:	8b 4d ec             	mov    -0x14(%ebp),%ecx
     d18:	39 4d e4             	cmp    %ecx,-0x1c(%ebp)
     d1b:	0f 46 4d e4          	cmovbe -0x1c(%ebp),%ecx
     d1f:	29 4d e4             	sub    %ecx,-0x1c(%ebp)
     d22:	83 6d e0 01          	subl   $0x1,-0x20(%ebp)
     d26:	0f 84 00 02 00 00    	je     f2c <free_area_init_nodes+0x3bc>
     d2c:	8b 55 e0             	mov    -0x20(%ebp),%edx
     d2f:	39 55 e4             	cmp    %edx,-0x1c(%ebp)
     d32:	0f 87 78 ff ff ff    	ja     cb0 <free_area_init_nodes+0x140>
     d38:	8b 4d e8             	mov    -0x18(%ebp),%ecx
     d3b:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
     d3e:	89 0d 44 0c 00 00    	mov    %ecx,0xc44
     d44:	89 1d 00 00 00 00    	mov    %ebx,0x0
     d4a:	a1 44 0c 00 00       	mov    0xc44,%eax
     d4f:	05 ff 03 00 00       	add    $0x3ff,%eax
     d54:	25 00 fc ff ff       	and    $0xfffffc00,%eax
     d59:	a3 44 0c 00 00       	mov    %eax,0xc44
     d5e:	c7 04 24 18 00 00 00 	movl   $0x18,(%esp)
     d65:	e8 fc ff ff ff       	call   d66 <free_area_init_nodes+0x1f6>
     d6a:	a1 34 0c 00 00       	mov    0xc34,%eax
     d6f:	89 44 24 0c          	mov    %eax,0xc(%esp)
     d73:	a1 24 0c 00 00       	mov    0xc24,%eax
     d78:	c7 44 24 04 14 00 00 	movl   $0x14,0x4(%esp)
     d7f:	00 
     d80:	c7 04 24 2a 00 00 00 	movl   $0x2a,(%esp)
     d87:	89 44 24 08          	mov    %eax,0x8(%esp)
     d8b:	e8 fc ff ff ff       	call   d8c <free_area_init_nodes+0x21c>
     d90:	a1 38 0c 00 00       	mov    0xc38,%eax
     d95:	89 44 24 0c          	mov    %eax,0xc(%esp)
     d99:	a1 28 0c 00 00       	mov    0xc28,%eax
     d9e:	c7 44 24 04 45 00 00 	movl   $0x45,0x4(%esp)
     da5:	00 
     da6:	c7 04 24 2a 00 00 00 	movl   $0x2a,(%esp)
     dad:	89 44 24 08          	mov    %eax,0x8(%esp)
     db1:	e8 fc ff ff ff       	call   db2 <free_area_init_nodes+0x242>
     db6:	a1 3c 0c 00 00       	mov    0xc3c,%eax
     dbb:	89 44 24 0c          	mov    %eax,0xc(%esp)
     dbf:	a1 2c 0c 00 00       	mov    0xc2c,%eax
     dc4:	c7 44 24 04 4c 00 00 	movl   $0x4c,0x4(%esp)
     dcb:	00 
     dcc:	c7 04 24 2a 00 00 00 	movl   $0x2a,(%esp)
     dd3:	89 44 24 08          	mov    %eax,0x8(%esp)
     dd7:	e8 fc ff ff ff       	call   dd8 <free_area_init_nodes+0x268>
     ddc:	c7 04 24 34 02 00 00 	movl   $0x234,(%esp)
     de3:	e8 fc ff ff ff       	call   de4 <free_area_init_nodes+0x274>
     de8:	a1 44 0c 00 00       	mov    0xc44,%eax
     ded:	85 c0                	test   %eax,%eax
     def:	0f 85 4d 01 00 00    	jne    f42 <free_area_init_nodes+0x3d2>
     df5:	a1 20 0c 00 00       	mov    0xc20,%eax
     dfa:	c7 04 24 5c 02 00 00 	movl   $0x25c,(%esp)
     e01:	89 44 24 04          	mov    %eax,0x4(%esp)
     e05:	e8 fc ff ff ff       	call   e06 <free_area_init_nodes+0x296>
     e0a:	8b 3d 20 0c 00 00    	mov    0xc20,%edi
     e10:	85 ff                	test   %edi,%edi
     e12:	7e 35                	jle    e49 <free_area_init_nodes+0x2d9>
     e14:	bb 24 00 00 00       	mov    $0x24,%ebx
     e19:	31 f6                	xor    %esi,%esi
     e1b:	8b 03                	mov    (%ebx),%eax
     e1d:	83 c6 01             	add    $0x1,%esi
     e20:	89 44 24 0c          	mov    %eax,0xc(%esp)
     e24:	8b 43 fc             	mov    -0x4(%ebx),%eax
     e27:	89 44 24 08          	mov    %eax,0x8(%esp)
     e2b:	8b 43 04             	mov    0x4(%ebx),%eax
     e2e:	83 c3 0c             	add    $0xc,%ebx
     e31:	c7 04 24 64 00 00 00 	movl   $0x64,(%esp)
     e38:	89 44 24 04          	mov    %eax,0x4(%esp)
     e3c:	e8 fc ff ff ff       	call   e3d <free_area_init_nodes+0x2cd>
     e41:	39 35 20 0c 00 00    	cmp    %esi,0xc20
     e47:	7f d2                	jg     e1b <free_area_init_nodes+0x2ab>
     e49:	e8 fc ff ff ff       	call   e4a <free_area_init_nodes+0x2da>
     e4e:	31 c0                	xor    %eax,%eax
     e50:	e8 b9 f3 ff ff       	call   20e <find_min_pfn_for_node>
     e55:	31 d2                	xor    %edx,%edx
     e57:	89 c1                	mov    %eax,%ecx
     e59:	31 c0                	xor    %eax,%eax
     e5b:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
     e62:	e8 fc ff ff ff       	call   e63 <free_area_init_nodes+0x2f3>
     e67:	83 c4 28             	add    $0x28,%esp
     e6a:	5b                   	pop    %ebx
     e6b:	5e                   	pop    %esi
     e6c:	5f                   	pop    %edi
     e6d:	5d                   	pop    %ebp
     e6e:	c3                   	ret    
     e6f:	31 db                	xor    %ebx,%ebx
     e71:	8d 14 5b             	lea    (%ebx,%ebx,2),%edx
     e74:	8b 4d e8             	mov    -0x18(%ebp),%ecx
     e77:	8b 04 95 20 00 00 00 	mov    0x20(,%edx,4),%eax
     e7e:	39 45 e8             	cmp    %eax,-0x18(%ebp)
     e81:	8b 34 95 24 00 00 00 	mov    0x24(,%edx,4),%esi
     e88:	0f 42 c8             	cmovb  %eax,%ecx
     e8b:	39 f1                	cmp    %esi,%ecx
     e8d:	73 56                	jae    ee5 <free_area_init_nodes+0x375>
     e8f:	39 4d dc             	cmp    %ecx,-0x24(%ebp)
     e92:	76 29                	jbe    ebd <free_area_init_nodes+0x34d>
     e94:	8b 45 dc             	mov    -0x24(%ebp),%eax
     e97:	39 75 dc             	cmp    %esi,-0x24(%ebp)
     e9a:	8b 55 ec             	mov    -0x14(%ebp),%edx
     e9d:	0f 47 c6             	cmova  %esi,%eax
     ea0:	29 c8                	sub    %ecx,%eax
     ea2:	3b 45 ec             	cmp    -0x14(%ebp),%eax
     ea5:	0f 46 d0             	cmovbe %eax,%edx
     ea8:	29 55 ec             	sub    %edx,-0x14(%ebp)
     eab:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
     eae:	0f 47 45 e4          	cmova  -0x1c(%ebp),%eax
     eb2:	29 45 e4             	sub    %eax,-0x1c(%ebp)
     eb5:	39 75 dc             	cmp    %esi,-0x24(%ebp)
     eb8:	73 2e                	jae    ee8 <free_area_init_nodes+0x378>
     eba:	8b 4d dc             	mov    -0x24(%ebp),%ecx
     ebd:	89 f2                	mov    %esi,%edx
     ebf:	29 ca                	sub    %ecx,%edx
     ec1:	3b 55 ec             	cmp    -0x14(%ebp),%edx
     ec4:	0f 87 45 fe ff ff    	ja     d0f <free_area_init_nodes+0x19f>
     eca:	8b 45 e4             	mov    -0x1c(%ebp),%eax
     ecd:	8d 0c 0a             	lea    (%edx,%ecx,1),%ecx
     ed0:	39 55 e4             	cmp    %edx,-0x1c(%ebp)
     ed3:	89 4d e8             	mov    %ecx,-0x18(%ebp)
     ed6:	0f 47 c2             	cmova  %edx,%eax
     ed9:	29 45 e4             	sub    %eax,-0x1c(%ebp)
     edc:	29 55 ec             	sub    %edx,-0x14(%ebp)
     edf:	0f 84 3d fe ff ff    	je     d22 <free_area_init_nodes+0x1b2>
     ee5:	8b 75 e8             	mov    -0x18(%ebp),%esi
     ee8:	8d 4b 01             	lea    0x1(%ebx),%ecx
     eeb:	39 f9                	cmp    %edi,%ecx
     eed:	7d 2b                	jge    f1a <free_area_init_nodes+0x3aa>
     eef:	8d 44 5b 06          	lea    0x6(%ebx,%ebx,2),%eax
     ef3:	8d 14 49             	lea    (%ecx,%ecx,2),%edx
     ef6:	8d 1c 85 28 00 00 00 	lea    0x28(,%eax,4),%ebx
     efd:	8b 04 95 28 00 00 00 	mov    0x28(,%edx,4),%eax
     f04:	85 c0                	test   %eax,%eax
     f06:	75 0b                	jne    f13 <free_area_init_nodes+0x3a3>
     f08:	eb 18                	jmp    f22 <free_area_init_nodes+0x3b2>
     f0a:	8b 03                	mov    (%ebx),%eax
     f0c:	83 c3 0c             	add    $0xc,%ebx
     f0f:	85 c0                	test   %eax,%eax
     f11:	74 0f                	je     f22 <free_area_init_nodes+0x3b2>
     f13:	83 c1 01             	add    $0x1,%ecx
     f16:	39 f9                	cmp    %edi,%ecx
     f18:	7c f0                	jl     f0a <free_area_init_nodes+0x39a>
     f1a:	89 75 e8             	mov    %esi,-0x18(%ebp)
     f1d:	e9 00 fe ff ff       	jmp    d22 <free_area_init_nodes+0x1b2>
     f22:	89 cb                	mov    %ecx,%ebx
     f24:	89 75 e8             	mov    %esi,-0x18(%ebp)
     f27:	e9 45 ff ff ff       	jmp    e71 <free_area_init_nodes+0x301>
     f2c:	8b 45 e8             	mov    -0x18(%ebp),%eax
     f2f:	8b 55 e4             	mov    -0x1c(%ebp),%edx
     f32:	a3 44 0c 00 00       	mov    %eax,0xc44
     f37:	89 15 00 00 00 00    	mov    %edx,0x0
     f3d:	e9 08 fe ff ff       	jmp    d4a <free_area_init_nodes+0x1da>
     f42:	89 44 24 08          	mov    %eax,0x8(%esp)
     f46:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
     f4d:	00 
     f4e:	c7 04 24 54 00 00 00 	movl   $0x54,(%esp)
     f55:	e8 fc ff ff ff       	call   f56 <free_area_init_nodes+0x3e6>
     f5a:	e9 96 fe ff ff       	jmp    df5 <free_area_init_nodes+0x285>

00000f5f <init_per_zone_pages_min>:
     f5f:	55                   	push   %ebp
     f60:	89 e5                	mov    %esp,%ebp
     f62:	56                   	push   %esi
     f63:	53                   	push   %ebx
     f64:	e8 fc ff ff ff       	call   f65 <init_per_zone_pages_min+0x6>
     f69:	c1 e0 06             	shl    $0x6,%eax
     f6c:	e8 fc ff ff ff       	call   f6d <init_per_zone_pages_min+0xe>
     f71:	83 f8 7f             	cmp    $0x7f,%eax
     f74:	a3 00 00 00 00       	mov    %eax,0x0
     f79:	7f 55                	jg     fd0 <init_per_zone_pages_min+0x71>
     f7b:	c7 05 00 00 00 00 80 	movl   $0x80,0x0
     f82:	00 00 00 
     f85:	e8 fc ff ff ff       	call   f86 <init_per_zone_pages_min+0x27>
     f8a:	e8 3c 05 00 00       	call   14cb <__free_pages_ok+0x31b>
     f8f:	e8 fc ff ff ff       	call   f90 <init_per_zone_pages_min+0x31>
     f94:	85 c0                	test   %eax,%eax
     f96:	89 c3                	mov    %eax,%ebx
     f98:	74 30                	je     fca <init_per_zone_pages_min+0x6b>
     f9a:	be 01 00 00 00       	mov    $0x1,%esi
     f9f:	8b 83 98 07 00 00    	mov    0x798(%ebx),%eax
     fa5:	c1 e8 12             	shr    $0x12,%eax
     fa8:	8d 04 80             	lea    (%eax,%eax,4),%eax
     fab:	01 c0                	add    %eax,%eax
     fad:	e8 fc ff ff ff       	call   fae <init_per_zone_pages_min+0x4f>
     fb2:	85 c0                	test   %eax,%eax
     fb4:	0f 44 c6             	cmove  %esi,%eax
     fb7:	89 83 28 07 00 00    	mov    %eax,0x728(%ebx)
     fbd:	89 d8                	mov    %ebx,%eax
     fbf:	e8 fc ff ff ff       	call   fc0 <init_per_zone_pages_min+0x61>
     fc4:	85 c0                	test   %eax,%eax
     fc6:	89 c3                	mov    %eax,%ebx
     fc8:	75 d5                	jne    f9f <init_per_zone_pages_min+0x40>
     fca:	31 c0                	xor    %eax,%eax
     fcc:	5b                   	pop    %ebx
     fcd:	5e                   	pop    %esi
     fce:	5d                   	pop    %ebp
     fcf:	c3                   	ret    
     fd0:	3d 00 00 01 00       	cmp    $0x10000,%eax
     fd5:	7e ae                	jle    f85 <init_per_zone_pages_min+0x26>
     fd7:	c7 05 00 00 00 00 00 	movl   $0x10000,0x0
     fde:	00 01 00 
     fe1:	eb a2                	jmp    f85 <init_per_zone_pages_min+0x26>

00000fe3 <alloc_large_system_hash>:
     fe3:	55                   	push   %ebp
     fe4:	89 e5                	mov    %esp,%ebp
     fe6:	57                   	push   %edi
     fe7:	89 d7                	mov    %edx,%edi
     fe9:	56                   	push   %esi
     fea:	53                   	push   %ebx
     feb:	83 ec 34             	sub    $0x34,%esp
     fee:	85 c9                	test   %ecx,%ecx
     ff0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
     ff3:	75 30                	jne    1025 <alloc_large_system_hash+0x42>
     ff5:	a1 00 00 00 00       	mov    0x0,%eax
     ffa:	05 ff 00 00 00       	add    $0xff,%eax
     fff:	30 c0                	xor    %al,%al
    1001:	83 7d 08 0c          	cmpl   $0xc,0x8(%ebp)
    1005:	0f 8e e5 01 00 00    	jle    11f0 <alloc_large_system_hash+0x20d>
    100b:	8b 4d 08             	mov    0x8(%ebp),%ecx
    100e:	83 e9 0c             	sub    $0xc,%ecx
    1011:	d3 e8                	shr    %cl,%eax
    1013:	89 c1                	mov    %eax,%ecx
    1015:	89 c8                	mov    %ecx,%eax
    1017:	0f af c7             	imul   %edi,%eax
    101a:	3d ff 0f 00 00       	cmp    $0xfff,%eax
    101f:	0f 86 bb 01 00 00    	jbe    11e0 <alloc_large_system_hash+0x1fd>
    1025:	8d 51 ff             	lea    -0x1(%ecx),%edx
    1028:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
    102d:	0f bd ca             	bsr    %edx,%ecx
    1030:	0f 44 c8             	cmove  %eax,%ecx
    1033:	8b 45 18             	mov    0x18(%ebp),%eax
    1036:	83 c1 01             	add    $0x1,%ecx
    1039:	31 d2                	xor    %edx,%edx
    103b:	bb 01 00 00 00       	mov    $0x1,%ebx
    1040:	d3 e3                	shl    %cl,%ebx
    1042:	89 55 d8             	mov    %edx,-0x28(%ebp)
    1045:	09 c2                	or     %eax,%edx
    1047:	89 45 d4             	mov    %eax,-0x2c(%ebp)
    104a:	75 40                	jne    108c <alloc_large_system_hash+0xa9>
    104c:	8b 15 00 00 00 00    	mov    0x0,%edx
    1052:	31 c9                	xor    %ecx,%ecx
    1054:	31 f6                	xor    %esi,%esi
    1056:	0f a4 d1 0c          	shld   $0xc,%edx,%ecx
    105a:	c1 e2 0c             	shl    $0xc,%edx
    105d:	0f ac ca 04          	shrd   $0x4,%ecx,%edx
    1061:	c1 e9 04             	shr    $0x4,%ecx
    1064:	89 d0                	mov    %edx,%eax
    1066:	89 ca                	mov    %ecx,%edx
    1068:	85 d2                	test   %edx,%edx
    106a:	89 c1                	mov    %eax,%ecx
    106c:	89 55 dc             	mov    %edx,-0x24(%ebp)
    106f:	74 0c                	je     107d <alloc_large_system_hash+0x9a>
    1071:	8b 45 dc             	mov    -0x24(%ebp),%eax
    1074:	31 d2                	xor    %edx,%edx
    1076:	f7 f7                	div    %edi
    1078:	89 d6                	mov    %edx,%esi
    107a:	89 45 dc             	mov    %eax,-0x24(%ebp)
    107d:	89 c8                	mov    %ecx,%eax
    107f:	89 f2                	mov    %esi,%edx
    1081:	f7 f7                	div    %edi
    1083:	8b 55 dc             	mov    -0x24(%ebp),%edx
    1086:	89 45 d4             	mov    %eax,-0x2c(%ebp)
    1089:	89 55 d8             	mov    %edx,-0x28(%ebp)
    108c:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
    1090:	77 07                	ja     1099 <alloc_large_system_hash+0xb6>
    1092:	3b 5d d4             	cmp    -0x2c(%ebp),%ebx
    1095:	0f 47 5d d4          	cmova  -0x2c(%ebp),%ebx
    1099:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
    109e:	0f bd d3             	bsr    %ebx,%edx
    10a1:	0f 44 d0             	cmove  %eax,%edx
    10a4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
    10a7:	89 55 e8             	mov    %edx,-0x18(%ebp)
    10aa:	83 e3 01             	and    $0x1,%ebx
    10ad:	0f b6 4d e8          	movzbl -0x18(%ebp),%ecx
    10b1:	89 f8                	mov    %edi,%eax
    10b3:	d3 e0                	shl    %cl,%eax
    10b5:	85 db                	test   %ebx,%ebx
    10b7:	89 45 ec             	mov    %eax,-0x14(%ebp)
    10ba:	0f 85 85 01 00 00    	jne    1245 <alloc_large_system_hash+0x262>
    10c0:	a1 00 00 00 00       	mov    0x0,%eax
    10c5:	85 c0                	test   %eax,%eax
    10c7:	0f 85 34 01 00 00    	jne    1201 <alloc_large_system_hash+0x21e>
    10cd:	8b 45 ec             	mov    -0x14(%ebp),%eax
    10d0:	be ff ff ff ff       	mov    $0xffffffff,%esi
    10d5:	83 e8 01             	sub    $0x1,%eax
    10d8:	c1 e8 0b             	shr    $0xb,%eax
    10db:	83 c6 01             	add    $0x1,%esi
    10de:	d1 e8                	shr    %eax
    10e0:	75 f9                	jne    10db <alloc_large_system_hash+0xf8>
    10e2:	89 f2                	mov    %esi,%edx
    10e4:	b8 20 00 00 00       	mov    $0x20,%eax
    10e9:	e8 fc ff ff ff       	call   10ea <alloc_large_system_hash+0x107>
    10ee:	85 c0                	test   %eax,%eax
    10f0:	89 45 f0             	mov    %eax,-0x10(%ebp)
    10f3:	0f 84 60 01 00 00    	je     1259 <alloc_large_system_hash+0x276>
    10f9:	8b 7d f0             	mov    -0x10(%ebp),%edi
    10fc:	89 f1                	mov    %esi,%ecx
    10fe:	b8 00 10 00 00       	mov    $0x1000,%eax
    1103:	d3 e0                	shl    %cl,%eax
    1105:	8b 5d f0             	mov    -0x10(%ebp),%ebx
    1108:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
    110f:	d3 65 e0             	shll   %cl,-0x20(%ebp)
    1112:	01 c7                	add    %eax,%edi
    1114:	8b 45 ec             	mov    -0x14(%ebp),%eax
    1117:	05 ff 0f 00 00       	add    $0xfff,%eax
    111c:	25 00 f0 ff ff       	and    $0xfffff000,%eax
    1121:	01 c3                	add    %eax,%ebx
    1123:	8b 45 f0             	mov    -0x10(%ebp),%eax
    1126:	05 00 00 00 40       	add    $0x40000000,%eax
    112b:	c1 e8 0c             	shr    $0xc,%eax
    112e:	c1 e0 05             	shl    $0x5,%eax
    1131:	03 05 00 00 00 00    	add    0x0,%eax
    1137:	83 7d e0 01          	cmpl   $0x1,-0x20(%ebp)
    113b:	7e 1a                	jle    1157 <alloc_large_system_hash+0x174>
    113d:	8d 50 20             	lea    0x20(%eax),%edx
    1140:	b8 01 00 00 00       	mov    $0x1,%eax
    1145:	c7 42 04 01 00 00 00 	movl   $0x1,0x4(%edx)
    114c:	83 c0 01             	add    $0x1,%eax
    114f:	83 c2 20             	add    $0x20,%edx
    1152:	39 45 e0             	cmp    %eax,-0x20(%ebp)
    1155:	7f ee                	jg     1145 <alloc_large_system_hash+0x162>
    1157:	39 df                	cmp    %ebx,%edi
    1159:	76 13                	jbe    116e <alloc_large_system_hash+0x18b>
    115b:	31 d2                	xor    %edx,%edx
    115d:	89 d8                	mov    %ebx,%eax
    115f:	81 c3 00 10 00 00    	add    $0x1000,%ebx
    1165:	e8 fc ff ff ff       	call   1166 <alloc_large_system_hash+0x183>
    116a:	39 df                	cmp    %ebx,%edi
    116c:	77 ed                	ja     115b <alloc_large_system_hash+0x178>
    116e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
    1171:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
    1176:	0f bd 55 ec          	bsr    -0x14(%ebp),%edx
    117a:	0f 44 d0             	cmove  %eax,%edx
    117d:	89 d0                	mov    %edx,%eax
    117f:	83 e8 0c             	sub    $0xc,%eax
    1182:	89 4c 24 10          	mov    %ecx,0x10(%esp)
    1186:	0f b6 4d e8          	movzbl -0x18(%ebp),%ecx
    118a:	89 44 24 0c          	mov    %eax,0xc(%esp)
    118e:	b8 01 00 00 00       	mov    $0x1,%eax
    1193:	c7 04 24 70 05 00 00 	movl   $0x570,(%esp)
    119a:	d3 e0                	shl    %cl,%eax
    119c:	89 44 24 08          	mov    %eax,0x8(%esp)
    11a0:	8b 45 e4             	mov    -0x1c(%ebp),%eax
    11a3:	89 44 24 04          	mov    %eax,0x4(%esp)
    11a7:	e8 fc ff ff ff       	call   11a8 <alloc_large_system_hash+0x1c5>
    11ac:	8b 7d 10             	mov    0x10(%ebp),%edi
    11af:	85 ff                	test   %edi,%edi
    11b1:	74 08                	je     11bb <alloc_large_system_hash+0x1d8>
    11b3:	8b 4d e8             	mov    -0x18(%ebp),%ecx
    11b6:	8b 55 10             	mov    0x10(%ebp),%edx
    11b9:	89 0a                	mov    %ecx,(%edx)
    11bb:	8b 75 14             	mov    0x14(%ebp),%esi
    11be:	85 f6                	test   %esi,%esi
    11c0:	74 13                	je     11d5 <alloc_large_system_hash+0x1f2>
    11c2:	0f b6 4d e8          	movzbl -0x18(%ebp),%ecx
    11c6:	b8 01 00 00 00       	mov    $0x1,%eax
    11cb:	8b 55 14             	mov    0x14(%ebp),%edx
    11ce:	d3 e0                	shl    %cl,%eax
    11d0:	83 e8 01             	sub    $0x1,%eax
    11d3:	89 02                	mov    %eax,(%edx)
    11d5:	8b 45 f0             	mov    -0x10(%ebp),%eax
    11d8:	83 c4 34             	add    $0x34,%esp
    11db:	5b                   	pop    %ebx
    11dc:	5e                   	pop    %esi
    11dd:	5f                   	pop    %edi
    11de:	5d                   	pop    %ebp
    11df:	c3                   	ret    
    11e0:	b8 00 10 00 00       	mov    $0x1000,%eax
    11e5:	31 d2                	xor    %edx,%edx
    11e7:	f7 f7                	div    %edi
    11e9:	89 c1                	mov    %eax,%ecx
    11eb:	e9 35 fe ff ff       	jmp    1025 <alloc_large_system_hash+0x42>
    11f0:	b9 0c 00 00 00       	mov    $0xc,%ecx
    11f5:	2b 4d 08             	sub    0x8(%ebp),%ecx
    11f8:	d3 e0                	shl    %cl,%eax
    11fa:	89 c1                	mov    %eax,%ecx
    11fc:	e9 14 fe ff ff       	jmp    1015 <alloc_large_system_hash+0x32>
    1201:	8b 45 ec             	mov    -0x14(%ebp),%eax
    1204:	ba 20 00 00 00       	mov    $0x20,%edx
    1209:	c7 04 24 63 01 00 00 	movl   $0x163,(%esp)
    1210:	c7 44 24 04 00 00 00 	movl   $0x80000000,0x4(%esp)
    1217:	80 
    1218:	e8 fc ff ff ff       	call   1219 <alloc_large_system_hash+0x236>
    121d:	89 45 f0             	mov    %eax,-0x10(%ebp)
    1220:	8b 45 f0             	mov    -0x10(%ebp),%eax
    1223:	85 c0                	test   %eax,%eax
    1225:	74 32                	je     1259 <alloc_large_system_hash+0x276>
    1227:	8b 45 f0             	mov    -0x10(%ebp),%eax
    122a:	85 c0                	test   %eax,%eax
    122c:	0f 85 3c ff ff ff    	jne    116e <alloc_large_system_hash+0x18b>
    1232:	8b 45 e4             	mov    -0x1c(%ebp),%eax
    1235:	c7 04 24 4c 05 00 00 	movl   $0x54c,(%esp)
    123c:	89 44 24 04          	mov    %eax,0x4(%esp)
    1240:	e8 fc ff ff ff       	call   1241 <alloc_large_system_hash+0x25e>
    1245:	b9 00 00 00 01       	mov    $0x1000000,%ecx
    124a:	ba 80 00 00 00       	mov    $0x80,%edx
    124f:	e8 fc ff ff ff       	call   1250 <alloc_large_system_hash+0x26d>
    1254:	89 45 f0             	mov    %eax,-0x10(%ebp)
    1257:	eb c7                	jmp    1220 <alloc_large_system_hash+0x23d>
    1259:	81 7d ec 00 10 00 00 	cmpl   $0x1000,-0x14(%ebp)
    1260:	76 c5                	jbe    1227 <alloc_large_system_hash+0x244>
    1262:	83 6d e8 01          	subl   $0x1,-0x18(%ebp)
    1266:	66 90                	xchg   %ax,%ax
    1268:	0f 85 3f fe ff ff    	jne    10ad <alloc_large_system_hash+0xca>
    126e:	66 90                	xchg   %ax,%ax
    1270:	eb c0                	jmp    1232 <alloc_large_system_hash+0x24f>

Disassembly of section .ref.text:

00000000 <alloc_node_mem_map>:
   0:	55                   	push   %ebp
   1:	89 e5                	mov    %esp,%ebp
   3:	83 ec 0c             	sub    $0xc,%esp
   6:	89 75 fc             	mov    %esi,-0x4(%ebp)
   9:	89 c6                	mov    %eax,%esi
   b:	89 5d f8             	mov    %ebx,-0x8(%ebp)
   e:	8b 80 40 20 00 00    	mov    0x2040(%eax),%eax
  14:	85 c0                	test   %eax,%eax
  16:	74 12                	je     2a <alloc_node_mem_map+0x2a>
  18:	8b 96 30 20 00 00    	mov    0x2030(%esi),%edx
  1e:	85 d2                	test   %edx,%edx
  20:	74 3e                	je     60 <alloc_node_mem_map+0x60>
  22:	81 fe 00 00 00 00    	cmp    $0x0,%esi
  28:	74 0e                	je     38 <alloc_node_mem_map+0x38>
  2a:	8b 5d f8             	mov    -0x8(%ebp),%ebx
  2d:	8b 75 fc             	mov    -0x4(%ebp),%esi
  30:	89 ec                	mov    %ebp,%esp
  32:	5d                   	pop    %ebp
  33:	c3                   	ret    
  34:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
  38:	a1 38 20 00 00       	mov    0x2038,%eax
  3d:	8b 15 30 20 00 00    	mov    0x2030,%edx
  43:	85 c0                	test   %eax,%eax
  45:	89 15 00 00 00 00    	mov    %edx,0x0
  4b:	74 dd                	je     2a <alloc_node_mem_map+0x2a>
  4d:	c1 e0 05             	shl    $0x5,%eax
  50:	29 c2                	sub    %eax,%edx
  52:	89 15 00 00 00 00    	mov    %edx,0x0
  58:	eb d0                	jmp    2a <alloc_node_mem_map+0x2a>
  5a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
  60:	8b 96 38 20 00 00    	mov    0x2038(%esi),%edx
  66:	b9 80 00 00 00       	mov    $0x80,%ecx
  6b:	c7 04 24 00 00 00 01 	movl   $0x1000000,(%esp)
  72:	89 d3                	mov    %edx,%ebx
  74:	8d 94 02 ff 03 00 00 	lea    0x3ff(%edx,%eax,1),%edx
  7b:	81 e3 00 fc ff ff    	and    $0xfffffc00,%ebx
  81:	81 e2 00 fc ff ff    	and    $0xfffffc00,%edx
  87:	89 f0                	mov    %esi,%eax
  89:	29 da                	sub    %ebx,%edx
  8b:	c1 e2 05             	shl    $0x5,%edx
  8e:	e8 fc ff ff ff       	call   8f <alloc_node_mem_map+0x8f>
  93:	8b 96 38 20 00 00    	mov    0x2038(%esi),%edx
  99:	29 da                	sub    %ebx,%edx
  9b:	c1 e2 05             	shl    $0x5,%edx
  9e:	01 d0                	add    %edx,%eax
  a0:	89 86 30 20 00 00    	mov    %eax,0x2030(%esi)
  a6:	e9 77 ff ff ff       	jmp    22 <alloc_node_mem_map+0x22>
  ab:	90                   	nop    
  ac:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi

000000b0 <zone_wait_table_init>:
  b0:	55                   	push   %ebp
  b1:	b9 04 00 00 00       	mov    $0x4,%ecx
  b6:	89 e5                	mov    %esp,%ebp
  b8:	57                   	push   %edi
  b9:	56                   	push   %esi
  ba:	89 c6                	mov    %eax,%esi
  bc:	53                   	push   %ebx
  bd:	c1 ea 08             	shr    $0x8,%edx
  c0:	83 ec 04             	sub    $0x4,%esp
  c3:	8b b8 8c 07 00 00    	mov    0x78c(%eax),%edi
  c9:	83 fa 01             	cmp    $0x1,%edx
  cc:	b8 01 00 00 00       	mov    $0x1,%eax
  d1:	76 23                	jbe    f6 <zone_wait_table_init+0x46>
  d3:	90                   	nop    
  d4:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
  d8:	01 c0                	add    %eax,%eax
  da:	39 c2                	cmp    %eax,%edx
  dc:	77 fa                	ja     d8 <zone_wait_table_init+0x28>
  de:	3d 00 10 00 00       	cmp    $0x1000,%eax
  e3:	b9 00 10 00 00       	mov    $0x1000,%ecx
  e8:	0f 46 c8             	cmovbe %eax,%ecx
  eb:	b8 04 00 00 00       	mov    $0x4,%eax
  f0:	83 f9 04             	cmp    $0x4,%ecx
  f3:	0f 42 c8             	cmovb  %eax,%ecx
  f6:	0f bc c1             	bsf    %ecx,%eax
  f9:	89 8e 84 07 00 00    	mov    %ecx,0x784(%esi)
  ff:	89 86 88 07 00 00    	mov    %eax,0x788(%esi)
 105:	8d 04 49             	lea    (%ecx,%ecx,2),%eax
 108:	8d 1c 85 00 00 00 00 	lea    0x0(,%eax,4),%ebx
 10f:	e8 fc ff ff ff       	call   110 <zone_wait_table_init+0x60>
 114:	85 c0                	test   %eax,%eax
 116:	75 68                	jne    180 <zone_wait_table_init+0xd0>
 118:	b9 80 00 00 00       	mov    $0x80,%ecx
 11d:	89 da                	mov    %ebx,%edx
 11f:	89 f8                	mov    %edi,%eax
 121:	c7 04 24 00 00 00 01 	movl   $0x1000000,(%esp)
 128:	e8 fc ff ff ff       	call   129 <zone_wait_table_init+0x79>
 12d:	89 86 80 07 00 00    	mov    %eax,0x780(%esi)
 133:	8b 96 80 07 00 00    	mov    0x780(%esi),%edx
 139:	b8 f4 ff ff ff       	mov    $0xfffffff4,%eax
 13e:	85 d2                	test   %edx,%edx
 140:	74 36                	je     178 <zone_wait_table_init+0xc8>
 142:	8b 8e 84 07 00 00    	mov    0x784(%esi),%ecx
 148:	85 c9                	test   %ecx,%ecx
 14a:	74 2a                	je     176 <zone_wait_table_init+0xc6>
 14c:	31 db                	xor    %ebx,%ebx
 14e:	31 c0                	xor    %eax,%eax
 150:	eb 0c                	jmp    15e <zone_wait_table_init+0xae>
 152:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
 158:	8b 96 80 07 00 00    	mov    0x780(%esi),%edx
 15e:	8d 04 40             	lea    (%eax,%eax,2),%eax
 161:	83 c3 01             	add    $0x1,%ebx
 164:	8d 04 82             	lea    (%edx,%eax,4),%eax
 167:	e8 fc ff ff ff       	call   168 <zone_wait_table_init+0xb8>
 16c:	89 d8                	mov    %ebx,%eax
 16e:	39 9e 84 07 00 00    	cmp    %ebx,0x784(%esi)
 174:	77 e2                	ja     158 <zone_wait_table_init+0xa8>
 176:	31 c0                	xor    %eax,%eax
 178:	83 c4 04             	add    $0x4,%esp
 17b:	5b                   	pop    %ebx
 17c:	5e                   	pop    %esi
 17d:	5f                   	pop    %edi
 17e:	5d                   	pop    %ebp
 17f:	c3                   	ret    
 180:	89 d8                	mov    %ebx,%eax
 182:	e8 fc ff ff ff       	call   183 <zone_wait_table_init+0xd3>
 187:	89 86 80 07 00 00    	mov    %eax,0x780(%esi)
 18d:	eb a4                	jmp    133 <zone_wait_table_init+0x83>

Disassembly of section .altinstr_replacement:

00000000 <.altinstr_replacement>:
   0:	0f 0d 08             	prefetchw (%eax)
   3:	0f 0d 0a             	prefetchw (%edx)
   6:	0f 18 01             	prefetchnta (%ecx)
   9:	0f 18 01             	prefetchnta (%ecx)
   c:	0f 18 03             	prefetchnta (%ebx)
   f:	0f 18 03             	prefetchnta (%ebx)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: I just got got another Oops
  2009-03-12 23:28       ` Gene Heskett
@ 2009-03-13  4:55         ` David Newall
  0 siblings, 0 replies; 18+ messages in thread
From: David Newall @ 2009-03-13  4:55 UTC (permalink / raw)
  To: Gene Heskett; +Cc: linux-kernel@vger.kernel.org

[-- Attachment #1: Type: text/plain, Size: 962 bytes --]

Gene,

I think it's a null page pointer passed to prep_new_page.  It's
difficult to be certain, because it's compiled with -O2, but that's what
it looks like.

Let's test that hypothesis.  Let's also compile page_alloc.c with
debugging.  Do that by executing the commands in the attached file, and
then doing a make install (or whatever you do.)

But first, let's also sidestep the optimiser by making prep_new_page
public. Do that by changing:

   static int prep_new_page(struct page *page, int order, gfp_t gfp_flags)**


in mm/page_alloc.c, near line 637, to:

   int my_prep_new_page(struct page *page, int order, gfp_t gfp_flags)**

and by changing:

	if (prep_new_page(page, order, gfp_flags))


near line 1137, to:

	if (my_prep_new_page(page, order, gfp_flags))


This will prevent the optimiser from inlining that function, and we
would expect to see the error change from
"get_page_from_freelist+0x24b/0x4c0" to "my_prep_new_page+0x0yy/0x0zz".

David

[-- Attachment #2: compile_page_alloc --]
[-- Type: text/plain, Size: 993 bytes --]

gcc -g -Wp,-MD,mm/.page_alloc.o.d  -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.1.3/include -Iinclude  -I/home/davidn/NAS/linux.trees.git/arch/x86/include -include include/linux/autoconf.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -m32 -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2 -march=k8 -mtune=generic -Wa,-mtune=generic32 -ffreestanding -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign   -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(page_alloc)"  -D"KBUILD_MODNAME=KBUILD_STR(page_alloc)"  -c -o mm/page_alloc.o mm/page_alloc.c

scripts/basic/fixdep mm/.page_alloc.o.d mm/page_alloc.o 'gcc etc' > mm/.page_alloc.o.tmp
rm -f mm/.page_alloc.o.d
mv -f mm/.page_alloc.o.tmp mm/.page_alloc.o.cmd

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: I just got got another Oops
  2009-03-12 18:31   ` Gene Heskett
@ 2009-03-16  2:55     ` KAMEZAWA Hiroyuki
  2009-03-16  3:22       ` KAMEZAWA Hiroyuki
  2009-03-16  8:03       ` BUG?: PAGE_FLAGS_CHECK_AT_PREP seems to be cleared too early (Was " KAMEZAWA Hiroyuki
  0 siblings, 2 replies; 18+ messages in thread
From: KAMEZAWA Hiroyuki @ 2009-03-16  2:55 UTC (permalink / raw)
  To: Gene Heskett
  Cc: David Newall, linux-kernel@vger.kernel.org, linux-mm@kvack.org

On Thu, 12 Mar 2009 14:31:49 -0400
Gene Heskett <gene.heskett@gmail.com> wrote:

> Mar 12 14:15:02 coyote kernel: [ 2656.832669]
> Mar 12 14:15:02 coyote kernel: [ 2656.832672] Pid: 18877, comm: kmail Not tainted (2.6.29-rc7 #5) System Product Name
> Mar 12 14:15:02 coyote kernel: [ 2656.832675] EIP: 0060:[<c046520b>] EFLAGS: 00210202 CPU: 0
> Mar 12 14:15:02 coyote kernel: [ 2656.832678] EIP is at get_page_from_freelist+0x24b/0x4c0
> Mar 12 14:15:02 coyote kernel: [ 2656.832680] EAX: ffffffff EBX: 80004000 ECX: 00000001 EDX: 00000002
> Mar 12 14:15:02 coyote kernel: [ 2656.832682] ESI: c28fc260 EDI: 00000000 EBP: f2168d5c ESP: f2168cfc
> Mar 12 14:15:02 coyote kernel: [ 2656.832684]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
> Mar 12 14:15:02 coyote kernel: [ 2656.832686] Process kmail (pid: 18877, ti=f2168000 task=f22018b0 task.ti=f2168000)
> Mar 12 14:15:02 coyote kernel: [ 2656.832688] Stack:
> Mar 12 14:15:02 coyote kernel: [ 2656.832689]  00000002 00000044 c28fc060 00000000 f1463ca4 c0744b80 c06d6480 00000002
> Mar 12 14:15:02 coyote kernel: [ 2656.832693]  00000000 00000000 001201d2 00000002 00200246 00000001 c06d6900 00000100
> Mar 12 14:15:02 coyote kernel: [ 2656.832698]  00000000 80000000 c06d7484 c06d6480 c06d6480 c06d6480 f22018b0 00000129

Added linux-mm to CC:

22a9:	8b 1e         mov    (%esi),%ebx                            #ebx=80004000 = page->flags
22ab:	89 f2         mov    %esi,%edx                              #remember "page"
22ad:	8b 46 08      mov    0x8(%esi),%eax                         #esi+8=-1  page->mapcount
22b0:	8b 7e 10      mov    0x10(%esi),%edi                        #esi+16=0  page->mapping
22b3:	f6 c7 40      test   $0x40,%bh
22b6:	74 03         je     22bb <get_page_from_freelist+0x24b>
22b8:	8b 56 0c      mov    0xc(%esi),%edx                         #page = page->first_page
22bb:	8b 4a 04      mov    0x4(%edx),%ecx                         #page->_count
 
Thank you for disassemble list, from above....

In prep_new_page()
 610 static int prep_new_page(struct page *page, int order, gfp_t gfp_flags)
 611 {
 612         if (unlikely(page_mapcount(page) |
 613                 (page->mapping != NULL)  |
 614                 (page_count(page) != 0)  |
 615                 (page->flags & PAGE_FLAGS_CHECK_AT_PREP)))
 616                 bad_page(page);

 page->mapping = NULL,  (VALID)
 page->mapcount = -1    (VALID)
 page->count ==> NULL access because PageTail() is set, see below.
 (Note: from .config, CONFIG_PAGEFLAGS_EXTENDED is set.)

==
 288 static inline int page_count(struct page *page)
 289 {
 290         return atomic_read(&compound_head(page)->_count);
 291 }

 281 static inline struct page *compound_head(struct page *page)
 282 {
 283         if (unlikely(PageTail(page)))
 284                 return page->first_page;
 285         return page;
 286 }
==

PageTail() is true (this is invalid) and page->first_page contains obsolete data.
But, here, PG_tail should not be there...

Hmm ?

Regards,
-Kame







^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: I just got got another Oops
  2009-03-16  2:55     ` KAMEZAWA Hiroyuki
@ 2009-03-16  3:22       ` KAMEZAWA Hiroyuki
  2009-03-16  8:03       ` BUG?: PAGE_FLAGS_CHECK_AT_PREP seems to be cleared too early (Was " KAMEZAWA Hiroyuki
  1 sibling, 0 replies; 18+ messages in thread
From: KAMEZAWA Hiroyuki @ 2009-03-16  3:22 UTC (permalink / raw)
  To: KAMEZAWA Hiroyuki
  Cc: Gene Heskett, David Newall, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org

On Mon, 16 Mar 2009 11:55:09 +0900
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:

> On Thu, 12 Mar 2009 14:31:49 -0400
> Gene Heskett <gene.heskett@gmail.com> wrote:
> 
> > Mar 12 14:15:02 coyote kernel: [ 2656.832669]
> > Mar 12 14:15:02 coyote kernel: [ 2656.832672] Pid: 18877, comm: kmail Not tainted (2.6.29-rc7 #5) System Product Name
> > Mar 12 14:15:02 coyote kernel: [ 2656.832675] EIP: 0060:[<c046520b>] EFLAGS: 00210202 CPU: 0
> > Mar 12 14:15:02 coyote kernel: [ 2656.832678] EIP is at get_page_from_freelist+0x24b/0x4c0
> > Mar 12 14:15:02 coyote kernel: [ 2656.832680] EAX: ffffffff EBX: 80004000 ECX: 00000001 EDX: 00000002
> > Mar 12 14:15:02 coyote kernel: [ 2656.832682] ESI: c28fc260 EDI: 00000000 EBP: f2168d5c ESP: f2168cfc
> > Mar 12 14:15:02 coyote kernel: [ 2656.832684]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
> > Mar 12 14:15:02 coyote kernel: [ 2656.832686] Process kmail (pid: 18877, ti=f2168000 task=f22018b0 task.ti=f2168000)
> > Mar 12 14:15:02 coyote kernel: [ 2656.832688] Stack:
> > Mar 12 14:15:02 coyote kernel: [ 2656.832689]  00000002 00000044 c28fc060 00000000 f1463ca4 c0744b80 c06d6480 00000002
> > Mar 12 14:15:02 coyote kernel: [ 2656.832693]  00000000 00000000 001201d2 00000002 00200246 00000001 c06d6900 00000100
> > Mar 12 14:15:02 coyote kernel: [ 2656.832698]  00000000 80000000 c06d7484 c06d6480 c06d6480 c06d6480 f22018b0 00000129
> 
> Added linux-mm to CC:
> 
> 22a9:	8b 1e         mov    (%esi),%ebx                            #ebx=80004000 = page->flags
> 22ab:	89 f2         mov    %esi,%edx                              #remember "page"
> 22ad:	8b 46 08      mov    0x8(%esi),%eax                         #esi+8=-1  page->mapcount
> 22b0:	8b 7e 10      mov    0x10(%esi),%edi                        #esi+16=0  page->mapping
> 22b3:	f6 c7 40      test   $0x40,%bh
> 22b6:	74 03         je     22bb <get_page_from_freelist+0x24b>
> 22b8:	8b 56 0c      mov    0xc(%esi),%edx                         #page = page->first_page
> 22bb:	8b 4a 04      mov    0x4(%edx),%ecx                         #page->_count
>  
> Thank you for disassemble list, from above....
> 
> In prep_new_page()
>  610 static int prep_new_page(struct page *page, int order, gfp_t gfp_flags)
>  611 {
>  612         if (unlikely(page_mapcount(page) |
>  613                 (page->mapping != NULL)  |
>  614                 (page_count(page) != 0)  |
>  615                 (page->flags & PAGE_FLAGS_CHECK_AT_PREP)))
>  616                 bad_page(page);
> 
>  page->mapping = NULL,  (VALID)
>  page->mapcount = -1    (VALID)
>  page->count ==> NULL access because PageTail() is set, see below.
>  (Note: from .config, CONFIG_PAGEFLAGS_EXTENDED is set.)
> 
> ==
>  288 static inline int page_count(struct page *page)
>  289 {
>  290         return atomic_read(&compound_head(page)->_count);
>  291 }
> 
>  281 static inline struct page *compound_head(struct page *page)
>  282 {
>  283         if (unlikely(PageTail(page)))
>  284                 return page->first_page;
>  285         return page;
>  286 }
> ==
> 
> PageTail() is true (this is invalid) and page->first_page contains obsolete data.
> But, here, PG_tail should not be there...
> 

Gene-san, could you set CONFIG_DEBUG_VM (and other debug option ?)
I think it can give us another view.

-Kame




^ permalink raw reply	[flat|nested] 18+ messages in thread

* BUG?: PAGE_FLAGS_CHECK_AT_PREP seems to be cleared too early (Was Re: I just got got another Oops
  2009-03-16  2:55     ` KAMEZAWA Hiroyuki
  2009-03-16  3:22       ` KAMEZAWA Hiroyuki
@ 2009-03-16  8:03       ` KAMEZAWA Hiroyuki
  2009-03-16 21:44         ` Hugh Dickins
  1 sibling, 1 reply; 18+ messages in thread
From: KAMEZAWA Hiroyuki @ 2009-03-16  8:03 UTC (permalink / raw)
  To: hugh@veritas.com
  Cc: Gene Heskett, David Newall, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, akpm@linux-foundation.org

Hi,
I'm sorry if I miss something..

>From this patch
==
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=79f4b7bf393e67bbffec807cc68caaefc72b82ee
==
#define PAGE_FLAGS_CHECK_AT_PREP       ((1 << NR_PAGEFLAGS) - 1)
...
@@ -468,16 +467,16 @@ static inline int free_pages_check(struct page *page)
                (page_count(page) != 0)  |
                (page->flags & PAGE_FLAGS_CHECK_AT_FREE)))
....
+       if (PageReserved(page))
+               return 1;
+       if (page->flags & PAGE_FLAGS_CHECK_AT_PREP)
+               page->flags &= ~PAGE_FLAGS_CHECK_AT_PREP;
+       return 0;
 }
==

PAGE_FLAGS_CHECK_AT_PREP is cleared by free_pages_check().

This means PG_head/PG_tail(PG_compound) flags are cleared here and Compound page
will never be freed in sane way.

Regards,
-Kame


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: BUG?: PAGE_FLAGS_CHECK_AT_PREP seems to be cleared too early (Was Re: I just got got another Oops
  2009-03-16  8:03       ` BUG?: PAGE_FLAGS_CHECK_AT_PREP seems to be cleared too early (Was " KAMEZAWA Hiroyuki
@ 2009-03-16 21:44         ` Hugh Dickins
  2009-03-16 23:44           ` KAMEZAWA Hiroyuki
  2009-03-20 15:23           ` Mel Gorman
  0 siblings, 2 replies; 18+ messages in thread
From: Hugh Dickins @ 2009-03-16 21:44 UTC (permalink / raw)
  To: KAMEZAWA Hiroyuki
  Cc: Gene Heskett, David Newall, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, akpm@linux-foundation.org

On Mon, 16 Mar 2009, KAMEZAWA Hiroyuki wrote:
> Hi,
> I'm sorry if I miss something..

I think it's me who missed something, and needs to say sorry.

> 
> >From this patch
> ==
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=79f4b7bf393e67bbffec807cc68caaefc72b82ee
> ==
> #define PAGE_FLAGS_CHECK_AT_PREP       ((1 << NR_PAGEFLAGS) - 1)
> ...
> @@ -468,16 +467,16 @@ static inline int free_pages_check(struct page *page)
>                 (page_count(page) != 0)  |
>                 (page->flags & PAGE_FLAGS_CHECK_AT_FREE)))
> ....
> +       if (PageReserved(page))
> +               return 1;
> +       if (page->flags & PAGE_FLAGS_CHECK_AT_PREP)
> +               page->flags &= ~PAGE_FLAGS_CHECK_AT_PREP;
> +       return 0;
>  }
> ==
> 
> PAGE_FLAGS_CHECK_AT_PREP is cleared by free_pages_check().
> 
> This means PG_head/PG_tail(PG_compound) flags are cleared here

Yes, well spotted.  How embarrassing.  I must have got confused
about when the checking occurred when freeing a compound page.

> and Compound page will never be freed in sane way.

But is that so?  I'll admit I've not tried this out yet, but my
understanding is that the Compound page actually gets freed fine:
free_compound_page() should have passed the right order down, and this
PAGE_FLAGS_CHECK_AT_PREP clearing should remove the Head/Tail/Compound
flags - doesn't it all work out sanely, without any leaking?

What goes missing is all the destroy_compound_page() checks:
that's at present just dead code.

There's several things we could do about this.

1.  We could regard destroy_compound_page() as legacy debugging code
from when compound pages were first introduced, and sanctify my error
by removing it.  Obviously that's appealing to me, makes me look like
a prophet rather than idiot!  That's not necessarily the right thing to
do, but might appeal also to those cutting overhead from page_alloc.c.

2.  We could do the destroy_compound_page() stuff in free_compound_page()
before calling __free_pages_ok(), and add the Head/Tail/Compound flags
into PAGE_FLAGS_CHECK_AT_FREE.  That seems a more natural ordering to
me, and would remove the PageCompound check from a hotter path; but
I've a suspicion there's a good reason why it was not done that way,
that I'm overlooking at this moment.

3.  We can define a PAGE_FLAGS_CLEAR_AT_FREE which omits the Head/Tail/
Compound flags, and lets destroy_compound_page() be called as before
where it's currently intended.

What do you think?  I suspect I'm going to have to spend tomorrow
worrying about something else entirely, and won't return here until
Wednesday.

But as regards the original "I just got got another Oops": my bug
that you point out here doesn't account for that, does it?  It's
still a mystery, isn't it, how the PageTail bit came to be set at
that point?

But that Oops does demonstrate that it's a very bad idea to be using
the deceptive page_count() in those bad_page() checks: we need to be
checking page->_count directly.

And in looking at this, I notice something else to worry about:
that CONFIG_HUGETLBFS prep_compound_gigantic_page(), which seems
to exist for a more general case than "p = page + i" - what happens
when such a gigantic page is freed, and arrives at the various
"p = page + i" assumptions on the freeing path?

Hugh

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: BUG?: PAGE_FLAGS_CHECK_AT_PREP seems to be cleared too early (Was Re: I just got got another Oops
  2009-03-16 21:44         ` Hugh Dickins
@ 2009-03-16 23:44           ` KAMEZAWA Hiroyuki
  2009-03-20 15:23           ` Mel Gorman
  1 sibling, 0 replies; 18+ messages in thread
From: KAMEZAWA Hiroyuki @ 2009-03-16 23:44 UTC (permalink / raw)
  To: Hugh Dickins
  Cc: Gene Heskett, David Newall, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, akpm@linux-foundation.org

On Mon, 16 Mar 2009 21:44:11 +0000 (GMT)
Hugh Dickins <hugh@veritas.com> wrote:

> On Mon, 16 Mar 2009, KAMEZAWA Hiroyuki wrote:
> > Hi,
> > I'm sorry if I miss something..
> 
> I think it's me who missed something, and needs to say sorry.
> 
> > 
> > >From this patch
> > ==
> > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=79f4b7bf393e67bbffec807cc68caaefc72b82ee
> > ==
> > #define PAGE_FLAGS_CHECK_AT_PREP       ((1 << NR_PAGEFLAGS) - 1)
> > ...
> > @@ -468,16 +467,16 @@ static inline int free_pages_check(struct page *page)
> >                 (page_count(page) != 0)  |
> >                 (page->flags & PAGE_FLAGS_CHECK_AT_FREE)))
> > ....
> > +       if (PageReserved(page))
> > +               return 1;
> > +       if (page->flags & PAGE_FLAGS_CHECK_AT_PREP)
> > +               page->flags &= ~PAGE_FLAGS_CHECK_AT_PREP;
> > +       return 0;
> >  }
> > ==
> > 
> > PAGE_FLAGS_CHECK_AT_PREP is cleared by free_pages_check().
> > 
> > This means PG_head/PG_tail(PG_compound) flags are cleared here
> 
> Yes, well spotted.  How embarrassing.  I must have got confused
> about when the checking occurred when freeing a compound page.
> 
> > and Compound page will never be freed in sane way.
> 
> But is that so?  I'll admit I've not tried this out yet, but my
> understanding is that the Compound page actually gets freed fine:
> free_compound_page() should have passed the right order down, and this
> PAGE_FLAGS_CHECK_AT_PREP clearing should remove the Head/Tail/Compound
> flags - doesn't it all work out sanely, without any leaking?
> 
I think it works sanely and pages are freed in valid way.
But bad_page() checking for compound pages (at destroy_compound_page())
is not done.


> What goes missing is all the destroy_compound_page() checks:
> that's at present just dead code.
> 
> There's several things we could do about this.
> 
> 1.  We could regard destroy_compound_page() as legacy debugging code
> from when compound pages were first introduced, and sanctify my error
> by removing it.  Obviously that's appealing to me, makes me look like
> a prophet rather than idiot!  That's not necessarily the right thing to
> do, but might appeal also to those cutting overhead from page_alloc.c.
> 
> 2.  We could do the destroy_compound_page() stuff in free_compound_page()
> before calling __free_pages_ok(), and add the Head/Tail/Compound flags
> into PAGE_FLAGS_CHECK_AT_FREE.  That seems a more natural ordering to
> me, and would remove the PageCompound check from a hotter path; but
> I've a suspicion there's a good reason why it was not done that way,
> that I'm overlooking at this moment.
> 
> 3.  We can define a PAGE_FLAGS_CLEAR_AT_FREE which omits the Head/Tail/
> Compound flags, and lets destroy_compound_page() be called as before
> where it's currently intended.
> 
> What do you think?  I suspect I'm going to have to spend tomorrow
> worrying about something else entirely, and won't return here until
> Wednesday.
> 
I like "2". 


> But as regards the original "I just got got another Oops": my bug
> that you point out here doesn't account for that, does it?  It's
> still a mystery, isn't it, how the PageTail bit came to be set at
> that point?
> 
I never find "who set it/where does it set". But page_alloc.c is an only
file which modifies PageTail bit and I'm the last modifier of it.
So, I'm intersted in this Oops.


> But that Oops does demonstrate that it's a very bad idea to be using
> the deceptive page_count() in those bad_page() checks: we need to be
> checking page->_count directly.
> 
I think so.

> And in looking at this, I notice something else to worry about:
> that CONFIG_HUGETLBFS prep_compound_gigantic_page(), which seems
> to exist for a more general case than "p = page + i" - what happens
> when such a gigantic page is freed, and arrives at the various
> "p = page + i" assumptions on the freeing path?
> 
Ah, I missed that path. I'll look into that today.

Thanks,
-Kame


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: BUG?: PAGE_FLAGS_CHECK_AT_PREP seems to be cleared too early (Was Re: I just got got another Oops
  2009-03-16 21:44         ` Hugh Dickins
  2009-03-16 23:44           ` KAMEZAWA Hiroyuki
@ 2009-03-20 15:23           ` Mel Gorman
  2009-03-22 14:55             ` Hugh Dickins
  1 sibling, 1 reply; 18+ messages in thread
From: Mel Gorman @ 2009-03-20 15:23 UTC (permalink / raw)
  To: Hugh Dickins
  Cc: KAMEZAWA Hiroyuki, Gene Heskett, David Newall,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	akpm@linux-foundation.org

On Mon, Mar 16, 2009 at 09:44:11PM +0000, Hugh Dickins wrote:
> On Mon, 16 Mar 2009, KAMEZAWA Hiroyuki wrote:
> > Hi,
> > I'm sorry if I miss something..
> 
> I think it's me who missed something, and needs to say sorry.
> 

Joining the party late as always.

> > 
> > >From this patch
> > ==
> > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=79f4b7bf393e67bbffec807cc68caaefc72b82ee
> > ==
> > #define PAGE_FLAGS_CHECK_AT_PREP       ((1 << NR_PAGEFLAGS) - 1)
> > ...
> > @@ -468,16 +467,16 @@ static inline int free_pages_check(struct page *page)
> >                 (page_count(page) != 0)  |
> >                 (page->flags & PAGE_FLAGS_CHECK_AT_FREE)))
> > ....
> > +       if (PageReserved(page))
> > +               return 1;
> > +       if (page->flags & PAGE_FLAGS_CHECK_AT_PREP)
> > +               page->flags &= ~PAGE_FLAGS_CHECK_AT_PREP;
> > +       return 0;
> >  }
> > ==
> > 
> > PAGE_FLAGS_CHECK_AT_PREP is cleared by free_pages_check().
> > 
> > This means PG_head/PG_tail(PG_compound) flags are cleared here
> 
> Yes, well spotted.  How embarrassing.  I must have got confused
> about when the checking occurred when freeing a compound page.
> 

I noticed this actually during the page allocator work and concluded
it didn't matter because free_pages_check() cleared out the bits in
the same way destroy_compound_page() did. The big difference was that
destroy_compound_page() did a lot more sanity checks and was slower.

I accidentally fixed this (because I implemented what I though things
should be doing instead of what they were really doing) at one point and
the overhead was so high of the debugging check that I just made a note to
"deal with this later, it's weird looking but ok".

> > and Compound page will never be freed in sane way.
> 
> But is that so?  I'll admit I've not tried this out yet, but my
> understanding is that the Compound page actually gets freed fine:
> free_compound_page() should have passed the right order down, and this
> PAGE_FLAGS_CHECK_AT_PREP clearing should remove the Head/Tail/Compound
> flags - doesn't it all work out sanely, without any leaking?
> 

That's more or less what I thought. It can't leak but it's not what you
expect from compound page destructors either.

> What goes missing is all the destroy_compound_page() checks:
> that's at present just dead code.
> 
> There's several things we could do about this.
> 
> 1.  We could regard destroy_compound_page() as legacy debugging code
> from when compound pages were first introduced, and sanctify my error
> by removing it.  Obviously that's appealing to me, makes me look like
> a prophet rather than idiot!  That's not necessarily the right thing to
> do, but might appeal also to those cutting overhead from page_alloc.c.
> 

The function is pretty heavy it has to be said. This would be my preferred
option rather than making the allocator go slower.

> 2.  We could do the destroy_compound_page() stuff in free_compound_page()
> before calling __free_pages_ok(), and add the Head/Tail/Compound flags
> into PAGE_FLAGS_CHECK_AT_FREE.  hat seems a more natural ordering to
> me, and would remove the PageCompound check from a hotter path; but
> I've a suspicion there's a good reason why it was not done that way,
> that I'm overlooking at this moment.
> 

I made this change and dropped it on the grounds it slowed things up so
badly. It was part of allowing compound pages to be on the PCP lists.
and ended up looking something like

static void free_compound_page(struct page *page)
{
       unsigned int order = compound_order(page);

       VM_BUG_ON(!PageCompound(page));
       if (unlikely(destroy_compound_page(page, order)))
               return;

       __free_pages_ok(page, order);
}

> 3.  We can define a PAGE_FLAGS_CLEAR_AT_FREE which omits the Head/Tail/
> Compound flags, and lets destroy_compound_page() be called as before
> where it's currently intended.
> 

Also did that, slowed things up. Tried fixing destroy_compound_page()
but it was doing the same work as free_pages_check() so it also sucked.

> What do you think?  I suspect I'm going to have to spend tomorrow
> worrying about something else entirely, and won't return here until
> Wednesday.
> 
> But as regards the original "I just got got another Oops": my bug
> that you point out here doesn't account for that, does it?  It's
> still a mystery, isn't it, how the PageTail bit came to be set at
> that point?
> 
> But that Oops does demonstrate that it's a very bad idea to be using
> the deceptive page_count() in those bad_page() checks: we need to be
> checking page->_count directly.
> 
> And in looking at this, I notice something else to worry about:
> that CONFIG_HUGETLBFS prep_compound_gigantic_page(), which seems
> to exist for a more general case than "p = page + i" - what happens
> when such a gigantic page is freed, and arrives at the various
> "p = page + i" assumptions on the freeing path?
> 

That function is a bit confusing I'll give you that. Glancing through,
what happens is that the destuctor gets replaced with a free_huge_page()
which throws the page onto those free lists instead. It never hits the
buddy lists on the grounds they can't handle orders >= MAX_ORDER.

Out of curiousity, here is a patch that was intended for a totally different
purpose but ended up forcing destroy_compound_page() to be used. It sucked
so I ended up unfixing it again. It can't be merged as-is obviously but
you'll see I redefined your flags a bit to exclude the compound flags
and all that jazz. It could be rebased of course but it'd make more sense
to have destroy_compound_page() that only does real work for DEBUG_VM as
free_pages_check() already does enough work.

====

>From 93f9b5ebae0000ae3e7985c98680226f4bdd90a8 Mon Sep 17 00:00:00 2001
From: Mel Gorman <mel@csn.ul.ie>
Date: Mon, 9 Mar 2009 11:56:56 +0000
Subject: [PATCH 32/34] Allow compound pages to be stored on the PCP lists

The SLUB allocator frees and allocates compound pages. The setup costs
for compound pages are noticeable in profiles and incur cache misses as
every struct page has to be checked and written. This patch allows
compound pages to be stored on the PCP list to save on teardown and
setup time.

Signed-off-by: Mel Gorman <mel@csn.ul.ie>
---
 include/linux/page-flags.h |    4 ++-
 mm/page_alloc.c            |   56 ++++++++++++++++++++++++++++++-------------
 2 files changed, 42 insertions(+), 18 deletions(-)

diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index 219a523..4177ec1 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -388,7 +388,9 @@ static inline void __ClearPageTail(struct page *page)
  * Pages being prepped should not have any flags set.  It they are set,
  * there has been a kernel bug or struct page corruption.
  */
-#define PAGE_FLAGS_CHECK_AT_PREP	((1 << NR_PAGEFLAGS) - 1)
+#define PAGE_FLAGS_CHECK_AT_PREP_BUDDY	((1 << NR_PAGEFLAGS) - 1)
+#define PAGE_FLAGS_CHECK_AT_PREP	(((1 << NR_PAGEFLAGS) - 1) & \
+					~(1 << PG_head | 1 << PG_tail))
 
 #endif /* !__GENERATING_BOUNDS_H */
 #endif	/* PAGE_FLAGS_H */
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 253fd98..2941638 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -280,11 +280,7 @@ out:
  * put_page() function.  Its ->lru.prev holds the order of allocation.
  * This usage means that zero-order pages may not be compound.
  */
-
-static void free_compound_page(struct page *page)
-{
-	__free_pages_ok(page, compound_order(page));
-}
+static void free_compound_page(struct page *page);
 
 void prep_compound_page(struct page *page, unsigned long order)
 {
@@ -553,7 +549,9 @@ static inline void __free_one_page(struct page *page,
 	zone->free_area[page_order(page)].nr_free++;
 }
 
-static inline int free_pages_check(struct page *page)
+/* Sanity check a free pages flags */
+static inline int check_freepage_flags(struct page *page,
+						unsigned long prepflags)
 {
 	if (unlikely(page_mapcount(page) |
 		(page->mapping != NULL)  |
@@ -562,8 +560,8 @@ static inline int free_pages_check(struct page *page)
 		bad_page(page);
 		return 1;
 	}
-	if (page->flags & PAGE_FLAGS_CHECK_AT_PREP)
-		page->flags &= ~PAGE_FLAGS_CHECK_AT_PREP;
+	if (page->flags & prepflags)
+		page->flags &= ~prepflags;
 	return 0;
 }
 
@@ -602,6 +600,12 @@ static int free_pcppages_bulk(struct zone *zone, int count,
 		page = list_entry(list->prev, struct page, lru);
 		freed += 1 << page->index;
 		list_del(&page->lru);
+
+		/* SLUB can have compound pages to the free lists */
+		if (unlikely(PageCompound(page)))
+			if (unlikely(destroy_compound_page(page, page->index)))
+				continue;
+
 		__free_one_page(page, zone, page->index, migratetype);
 	}
 	spin_unlock(&zone->lock);
@@ -633,8 +637,10 @@ static void __free_pages_ok(struct page *page, unsigned int order)
 	int bad = 0;
 	int clearMlocked = PageMlocked(page);
 
+	VM_BUG_ON(PageCompound(page));
 	for (i = 0 ; i < (1 << order) ; ++i)
-		bad += free_pages_check(page + i);
+		bad += check_freepage_flags(page + i,
+					PAGE_FLAGS_CHECK_AT_PREP_BUDDY);
 	if (bad)
 		return;
 
@@ -738,8 +744,20 @@ static int prep_new_page(struct page *page, int order, gfp_t gfp_flags)
 	if (gfp_flags & __GFP_ZERO)
 		prep_zero_page(page, order, gfp_flags);
 
-	if (order && (gfp_flags & __GFP_COMP))
-		prep_compound_page(page, order);
+	/*
+	 * If a compound page is requested, we have to check the page being
+	 * prepped. If it's already compound, we leave it alone. If a
+	 * compound page is not requested but the page being prepped is
+	 * compound, then it must be destroyed
+	 */
+	if (order) {
+		if ((gfp_flags & __GFP_COMP) && !PageCompound(page))
+			prep_compound_page(page, order);
+
+		if (!(gfp_flags & __GFP_COMP) && PageCompound(page))
+			if (unlikely(destroy_compound_page(page, order)))
+				return 1;
+	}
 
 	return 0;
 }
@@ -1105,14 +1123,9 @@ static void free_hot_cold_page(struct page *page, int order, int cold)
 	int migratetype;
 	int clearMlocked = PageMlocked(page);
 
-	/* SLUB can return lowish-order compound pages that need handling */
-	if (order > 0 && unlikely(PageCompound(page)))
-		if (unlikely(destroy_compound_page(page, order)))
-			return;
-
 	if (PageAnon(page))
 		page->mapping = NULL;
-	if (free_pages_check(page))
+	if (check_freepage_flags(page, PAGE_FLAGS_CHECK_AT_PREP))
 		return;
 
 	if (!PageHighMem(page)) {
@@ -1160,6 +1173,15 @@ out:
 	put_cpu();
 }
 
+static void free_compound_page(struct page *page)
+{
+	unsigned int order = compound_order(page);
+	if (order <= PAGE_ALLOC_COSTLY_ORDER)
+		free_hot_cold_page(page, order, 0);
+	else
+		__free_pages_ok(page, order);
+}
+
 void free_hot_page(struct page *page)
 {
 	free_hot_cold_page(page, 0, 0);
-- 
1.5.6.5

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: BUG?: PAGE_FLAGS_CHECK_AT_PREP seems to be cleared too early (Was Re: I just got got another Oops
  2009-03-20 15:23           ` Mel Gorman
@ 2009-03-22 14:55             ` Hugh Dickins
  2009-03-23 11:27               ` Mel Gorman
  0 siblings, 1 reply; 18+ messages in thread
From: Hugh Dickins @ 2009-03-22 14:55 UTC (permalink / raw)
  To: Mel Gorman
  Cc: KAMEZAWA Hiroyuki, Gene Heskett, David Newall,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	akpm@linux-foundation.org

On Fri, 20 Mar 2009, Mel Gorman wrote:
> On Mon, Mar 16, 2009 at 09:44:11PM +0000, Hugh Dickins wrote:
> > On Mon, 16 Mar 2009, KAMEZAWA Hiroyuki wrote:
> > > 
> > > PAGE_FLAGS_CHECK_AT_PREP is cleared by free_pages_check().
> > > This means PG_head/PG_tail(PG_compound) flags are cleared here
> > 
> > Yes, well spotted.  How embarrassing.  I must have got confused
> > about when the checking occurred when freeing a compound page.
> 
> I noticed this actually during the page allocator work and concluded
> it didn't matter because free_pages_check() cleared out the bits in
> the same way destroy_compound_page() did. The big difference was that
> destroy_compound_page() did a lot more sanity checks and was slower.
> 
> I accidentally fixed this (because I implemented what I though things
> should be doing instead of what they were really doing) at one point and
> the overhead was so high of the debugging check that I just made a note to
> "deal with this later, it's weird looking but ok".

I'm surprised the overhead was so high: I'd have imagined that it
was just treading on the same cachelines as free_pages_check()
already did, doing rather less work.

> 
> > > and Compound page will never be freed in sane way.
> > 
> > But is that so?  I'll admit I've not tried this out yet, but my
> > understanding is that the Compound page actually gets freed fine:
> > free_compound_page() should have passed the right order down, and this
> > PAGE_FLAGS_CHECK_AT_PREP clearing should remove the Head/Tail/Compound
> > flags - doesn't it all work out sanely, without any leaking?
> > 
> 
> That's more or less what I thought. It can't leak but it's not what you
> expect from compound page destructors either.
> 
> > What goes missing is all the destroy_compound_page() checks:
> > that's at present just dead code.
> > 
> > There's several things we could do about this.
> > 
> > 1.  We could regard destroy_compound_page() as legacy debugging code
> > from when compound pages were first introduced, and sanctify my error
> > by removing it.  Obviously that's appealing to me, makes me look like
> > a prophet rather than idiot!  That's not necessarily the right thing to
> > do, but might appeal also to those cutting overhead from page_alloc.c.
> > 
> 
> The function is pretty heavy it has to be said. This would be my preferred
> option rather than making the allocator go slower.

KAMEZAWA-san has voted for 2, so that was what I was intending to do.
But if destroy_compound_page() really is costly, I'm happy to throw
it out if others agree.

I don't think it actually buys us a great deal: the main thing it checks
(looking forward to the reuse of the pages, rather than just checking
that what was set up is still there) is that the order being freed is
not greater than the order that was allocated; but I think a PG_buddy
or a page->_count in the excess should catch that in free_pages_check().

And we don't have any such check for the much(?) more common case of
freeing a non-compound high-order page.

> 
> > 2.  We could do the destroy_compound_page() stuff in free_compound_page()
> > before calling __free_pages_ok(), and add the Head/Tail/Compound flags
> > into PAGE_FLAGS_CHECK_AT_FREE.  hat seems a more natural ordering to
> > me, and would remove the PageCompound check from a hotter path; but
> > I've a suspicion there's a good reason why it was not done that way,
> > that I'm overlooking at this moment.
> > 
> 
> I made this change and dropped it on the grounds it slowed things up so
> badly. It was part of allowing compound pages to be on the PCP lists.
> and ended up looking something like
> 
> static void free_compound_page(struct page *page)
> {
>        unsigned int order = compound_order(page);
> 
>        VM_BUG_ON(!PageCompound(page));
>        if (unlikely(destroy_compound_page(page, order)))
>                return;
> 
>        __free_pages_ok(page, order);
> }

Yes, that's how I was imagining it.   But I think we'd also want
to change hugetlb.c's set_compound_page_dtor(page, NULL) to
set_compound_page_dtor(page, free_compound_page), wouldn't we?
So far as I can see, that's the case that led the destroy call
to be sited in __free_one_page(), but I still don't get why it
was done that way.

> 
> > 3.  We can define a PAGE_FLAGS_CLEAR_AT_FREE which omits the Head/Tail/
> > Compound flags, and lets destroy_compound_page() be called as before
> > where it's currently intended.
> > 
> 
> Also did that, slowed things up. Tried fixing destroy_compound_page()
> but it was doing the same work as free_pages_check() so it also sucked.
> 
> > What do you think?  I suspect I'm going to have to spend tomorrow
> > worrying about something else entirely, and won't return here until
> > Wednesday.
> > 
> > But as regards the original "I just got got another Oops": my bug
> > that you point out here doesn't account for that, does it?  It's
> > still a mystery, isn't it, how the PageTail bit came to be set at
> > that point?
> > 
> > But that Oops does demonstrate that it's a very bad idea to be using
> > the deceptive page_count() in those bad_page() checks: we need to be
> > checking page->_count directly.

I notice your/Nick's 20/25 addresses this issue, good - I'd even be
happy to see that change go into 2.6.29, though probably too late now
(and it has been that way forever).  But note, it does need one of us
to replace the page_count in bad_page() in the same way, that's missing.

I've given up on trying to understand how that PageTail is set in
Gene's oops.  I was thinking that it got left behind somewhere
because of my destroy_compound_page sequence error, but I just
can't see how: I wonder if it's just a corrupt bit in the struct.

I don't now feel that we need to rush a fix for my error into 2.6.29:
it does appear to be working nicely enough with that inadvertent
change, and we're not yet agreed on which way to go from here.

> > 
> > And in looking at this, I notice something else to worry about:
> > that CONFIG_HUGETLBFS prep_compound_gigantic_page(), which seems
> > to exist for a more general case than "p = page + i" - what happens
> > when such a gigantic page is freed, and arrives at the various
> > "p = page + i" assumptions on the freeing path?
> > 
> 
> That function is a bit confusing I'll give you that. Glancing through,
> what happens is that the destuctor gets replaced with a free_huge_page()
> which throws the page onto those free lists instead. It never hits the
> buddy lists on the grounds they can't handle orders >= MAX_ORDER.

Ah yes, thanks a lot, I'd forgotten all that.  Yes, there appear to
be adequate MAX_ORDER checks in hugetlb.c to prevent that danger.

> 
> Out of curiousity,

My curiosity is very limited at the moment, I'm afraid I've not glanced.

> here is a patch that was intended for a totally different
> purpose but ended up forcing destroy_compound_page() to be used. It sucked
> so I ended up unfixing it again. It can't be merged as-is obviously but
> you'll see I redefined your flags a bit to exclude the compound flags
> and all that jazz. It could be rebased of course but it'd make more sense
> to have destroy_compound_page() that only does real work for DEBUG_VM as
> free_pages_check() already does enough work.

Yes, putting it under DEBUG_VM could be a compromise; though by now I've
persuaded myself that it's of little value, and the times it might catch
something would be out there without DEBUG_VM=y.

Hugh

> 
> ====
> 
> >From 93f9b5ebae0000ae3e7985c98680226f4bdd90a8 Mon Sep 17 00:00:00 2001
> From: Mel Gorman <mel@csn.ul.ie>
> Date: Mon, 9 Mar 2009 11:56:56 +0000
> Subject: [PATCH 32/34] Allow compound pages to be stored on the PCP lists
> 
> The SLUB allocator frees and allocates compound pages. The setup costs
> for compound pages are noticeable in profiles and incur cache misses as
> every struct page has to be checked and written. This patch allows
> compound pages to be stored on the PCP list to save on teardown and
> setup time.
> 
> Signed-off-by: Mel Gorman <mel@csn.ul.ie>
> ---
>  include/linux/page-flags.h |    4 ++-
>  mm/page_alloc.c            |   56 ++++++++++++++++++++++++++++++-------------
>  2 files changed, 42 insertions(+), 18 deletions(-)
> 
> diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
> index 219a523..4177ec1 100644
> --- a/include/linux/page-flags.h
> +++ b/include/linux/page-flags.h
> @@ -388,7 +388,9 @@ static inline void __ClearPageTail(struct page *page)
>   * Pages being prepped should not have any flags set.  It they are set,
>   * there has been a kernel bug or struct page corruption.
>   */
> -#define PAGE_FLAGS_CHECK_AT_PREP	((1 << NR_PAGEFLAGS) - 1)
> +#define PAGE_FLAGS_CHECK_AT_PREP_BUDDY	((1 << NR_PAGEFLAGS) - 1)
> +#define PAGE_FLAGS_CHECK_AT_PREP	(((1 << NR_PAGEFLAGS) - 1) & \
> +					~(1 << PG_head | 1 << PG_tail))
>  
>  #endif /* !__GENERATING_BOUNDS_H */
>  #endif	/* PAGE_FLAGS_H */
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 253fd98..2941638 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -280,11 +280,7 @@ out:
>   * put_page() function.  Its ->lru.prev holds the order of allocation.
>   * This usage means that zero-order pages may not be compound.
>   */
> -
> -static void free_compound_page(struct page *page)
> -{
> -	__free_pages_ok(page, compound_order(page));
> -}
> +static void free_compound_page(struct page *page);
>  
>  void prep_compound_page(struct page *page, unsigned long order)
>  {
> @@ -553,7 +549,9 @@ static inline void __free_one_page(struct page *page,
>  	zone->free_area[page_order(page)].nr_free++;
>  }
>  
> -static inline int free_pages_check(struct page *page)
> +/* Sanity check a free pages flags */
> +static inline int check_freepage_flags(struct page *page,
> +						unsigned long prepflags)
>  {
>  	if (unlikely(page_mapcount(page) |
>  		(page->mapping != NULL)  |
> @@ -562,8 +560,8 @@ static inline int free_pages_check(struct page *page)
>  		bad_page(page);
>  		return 1;
>  	}
> -	if (page->flags & PAGE_FLAGS_CHECK_AT_PREP)
> -		page->flags &= ~PAGE_FLAGS_CHECK_AT_PREP;
> +	if (page->flags & prepflags)
> +		page->flags &= ~prepflags;
>  	return 0;
>  }
>  
> @@ -602,6 +600,12 @@ static int free_pcppages_bulk(struct zone *zone, int count,
>  		page = list_entry(list->prev, struct page, lru);
>  		freed += 1 << page->index;
>  		list_del(&page->lru);
> +
> +		/* SLUB can have compound pages to the free lists */
> +		if (unlikely(PageCompound(page)))
> +			if (unlikely(destroy_compound_page(page, page->index)))
> +				continue;
> +
>  		__free_one_page(page, zone, page->index, migratetype);
>  	}
>  	spin_unlock(&zone->lock);
> @@ -633,8 +637,10 @@ static void __free_pages_ok(struct page *page, unsigned int order)
>  	int bad = 0;
>  	int clearMlocked = PageMlocked(page);
>  
> +	VM_BUG_ON(PageCompound(page));
>  	for (i = 0 ; i < (1 << order) ; ++i)
> -		bad += free_pages_check(page + i);
> +		bad += check_freepage_flags(page + i,
> +					PAGE_FLAGS_CHECK_AT_PREP_BUDDY);
>  	if (bad)
>  		return;
>  
> @@ -738,8 +744,20 @@ static int prep_new_page(struct page *page, int order, gfp_t gfp_flags)
>  	if (gfp_flags & __GFP_ZERO)
>  		prep_zero_page(page, order, gfp_flags);
>  
> -	if (order && (gfp_flags & __GFP_COMP))
> -		prep_compound_page(page, order);
> +	/*
> +	 * If a compound page is requested, we have to check the page being
> +	 * prepped. If it's already compound, we leave it alone. If a
> +	 * compound page is not requested but the page being prepped is
> +	 * compound, then it must be destroyed
> +	 */
> +	if (order) {
> +		if ((gfp_flags & __GFP_COMP) && !PageCompound(page))
> +			prep_compound_page(page, order);
> +
> +		if (!(gfp_flags & __GFP_COMP) && PageCompound(page))
> +			if (unlikely(destroy_compound_page(page, order)))
> +				return 1;
> +	}
>  
>  	return 0;
>  }
> @@ -1105,14 +1123,9 @@ static void free_hot_cold_page(struct page *page, int order, int cold)
>  	int migratetype;
>  	int clearMlocked = PageMlocked(page);
>  
> -	/* SLUB can return lowish-order compound pages that need handling */
> -	if (order > 0 && unlikely(PageCompound(page)))
> -		if (unlikely(destroy_compound_page(page, order)))
> -			return;
> -
>  	if (PageAnon(page))
>  		page->mapping = NULL;
> -	if (free_pages_check(page))
> +	if (check_freepage_flags(page, PAGE_FLAGS_CHECK_AT_PREP))
>  		return;
>  
>  	if (!PageHighMem(page)) {
> @@ -1160,6 +1173,15 @@ out:
>  	put_cpu();
>  }
>  
> +static void free_compound_page(struct page *page)
> +{
> +	unsigned int order = compound_order(page);
> +	if (order <= PAGE_ALLOC_COSTLY_ORDER)
> +		free_hot_cold_page(page, order, 0);
> +	else
> +		__free_pages_ok(page, order);
> +}
> +
>  void free_hot_page(struct page *page)
>  {
>  	free_hot_cold_page(page, 0, 0);
> -- 
> 1.5.6.5

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: BUG?: PAGE_FLAGS_CHECK_AT_PREP seems to be cleared too early (Was Re: I just got got another Oops
  2009-03-22 14:55             ` Hugh Dickins
@ 2009-03-23 11:27               ` Mel Gorman
  0 siblings, 0 replies; 18+ messages in thread
From: Mel Gorman @ 2009-03-23 11:27 UTC (permalink / raw)
  To: Hugh Dickins
  Cc: KAMEZAWA Hiroyuki, Gene Heskett, David Newall,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	akpm@linux-foundation.org

On Sun, Mar 22, 2009 at 02:55:08PM +0000, Hugh Dickins wrote:
> On Fri, 20 Mar 2009, Mel Gorman wrote:
> > On Mon, Mar 16, 2009 at 09:44:11PM +0000, Hugh Dickins wrote:
> > > On Mon, 16 Mar 2009, KAMEZAWA Hiroyuki wrote:
> > > > 
> > > > PAGE_FLAGS_CHECK_AT_PREP is cleared by free_pages_check().
> > > > This means PG_head/PG_tail(PG_compound) flags are cleared here
> > > 
> > > Yes, well spotted.  How embarrassing.  I must have got confused
> > > about when the checking occurred when freeing a compound page.
> > 
> > I noticed this actually during the page allocator work and concluded
> > it didn't matter because free_pages_check() cleared out the bits in
> > the same way destroy_compound_page() did. The big difference was that
> > destroy_compound_page() did a lot more sanity checks and was slower.
> > 
> > I accidentally fixed this (because I implemented what I though things
> > should be doing instead of what they were really doing) at one point and
> > the overhead was so high of the debugging check that I just made a note to
> > "deal with this later, it's weird looking but ok".
> 
> I'm surprised the overhead was so high: I'd have imagined that it
> was just treading on the same cachelines as free_pages_check()
> already did, doing rather less work.
> 

My recollection is that it looked heavy because I was running netperf which
was allocating on one CPU and freeing on the other, incurring a cache miss
for every page it wrote to. This showed up heavily in profiles as you might
imagine. However, this penalty would also be hit in free_pages_check() if
destroy_compound_page() had not run so that skewed my perception. Still, we are
running over the same array of pages twice, when we could have done it once.

> > 
> > > > and Compound page will never be freed in sane way.
> > > 
> > > But is that so?  I'll admit I've not tried this out yet, but my
> > > understanding is that the Compound page actually gets freed fine:
> > > free_compound_page() should have passed the right order down, and this
> > > PAGE_FLAGS_CHECK_AT_PREP clearing should remove the Head/Tail/Compound
> > > flags - doesn't it all work out sanely, without any leaking?
> > > 
> > 
> > That's more or less what I thought. It can't leak but it's not what you
> > expect from compound page destructors either.
> > 
> > > What goes missing is all the destroy_compound_page() checks:
> > > that's at present just dead code.
> > > 
> > > There's several things we could do about this.
> > > 
> > > 1.  We could regard destroy_compound_page() as legacy debugging code
> > > from when compound pages were first introduced, and sanctify my error
> > > by removing it.  Obviously that's appealing to me, makes me look like
> > > a prophet rather than idiot!  That's not necessarily the right thing to
> > > do, but might appeal also to those cutting overhead from page_alloc.c.
> > > 
> > 
> > The function is pretty heavy it has to be said. This would be my preferred
> > option rather than making the allocator go slower.
> 
> KAMEZAWA-san has voted for 2, so that was what I was intending to do.
> But if destroy_compound_page() really is costly, I'm happy to throw
> it out if others agree.
> 

I withdraw the objection on the grounds that 2 is the more correct
option of the two. Even though it is heavy, it is also possible to hold
compound pages on the PCP lists for a time and can be avoided in more
ways than one.

> I don't think it actually buys us a great deal: the main thing it checks
> (looking forward to the reuse of the pages, rather than just checking
> that what was set up is still there) is that the order being freed is
> not greater than the order that was allocated; but I think a PG_buddy
> or a page->_count in the excess should catch that in free_pages_check().
> 
> And we don't have any such check for the much(?) more common case of
> freeing a non-compound high-order page.
> 

We have a similar check sortof. It looks like this

        for (i = 0 ; i < (1 << order) ; ++i)
                bad += free_pages_check(page + i);

This is where we are walking over the array twice. One way of fixing this would
be to move the free_pages_check() higher in the call chain for high-order
pages and have destroy_compound_page() first checkec the tail pages know
where their head is and then call free_pages_check(). That should re-enable
just the debugging check without too much cost.

> > > 2.  We could do the destroy_compound_page() stuff in free_compound_page()
> > > before calling __free_pages_ok(), and add the Head/Tail/Compound flags
> > > into PAGE_FLAGS_CHECK_AT_FREE.  hat seems a more natural ordering to
> > > me, and would remove the PageCompound check from a hotter path; but
> > > I've a suspicion there's a good reason why it was not done that way,
> > > that I'm overlooking at this moment.
> > > 
> > 
> > I made this change and dropped it on the grounds it slowed things up so
> > badly. It was part of allowing compound pages to be on the PCP lists.
> > and ended up looking something like
> > 
> > static void free_compound_page(struct page *page)
> > {
> >        unsigned int order = compound_order(page);
> > 
> >        VM_BUG_ON(!PageCompound(page));
> >        if (unlikely(destroy_compound_page(page, order)))
> >                return;
> > 
> >        __free_pages_ok(page, order);
> > }
> 
> Yes, that's how I was imagining it.   But I think we'd also want
> to change hugetlb.c's set_compound_page_dtor(page, NULL) to
> set_compound_page_dtor(page, free_compound_page), wouldn't we?

For full correctness, yes. As it is, it happens to work because the
compound flags get cleared and destroy_compound_page() is little more
than a debug check.

> So far as I can see, that's the case that led the destroy call
> to be sited in __free_one_page(), but I still don't get why it
> was done that way.
> 

I don't recall any reasoning but probably because it just worked. The
first time huge pages had a destructor set to NULL was commit
41d78ba55037468e6c86c53e3076d1a74841de39 and it appears to have been
carried forward ever since.

> > 
> > > 3.  We can define a PAGE_FLAGS_CLEAR_AT_FREE which omits the Head/Tail/
> > > Compound flags, and lets destroy_compound_page() be called as before
> > > where it's currently intended.
> > > 
> > 
> > Also did that, slowed things up. Tried fixing destroy_compound_page()
> > but it was doing the same work as free_pages_check() so it also sucked.
> > 
> > > What do you think?  I suspect I'm going to have to spend tomorrow
> > > worrying about something else entirely, and won't return here until
> > > Wednesday.
> > > 
> > > But as regards the original "I just got got another Oops": my bug
> > > that you point out here doesn't account for that, does it?  It's
> > > still a mystery, isn't it, how the PageTail bit came to be set at
> > > that point?
> > > 
> > > But that Oops does demonstrate that it's a very bad idea to be using
> > > the deceptive page_count() in those bad_page() checks: we need to be
> > > checking page->_count directly.
> 
> I notice your/Nick's 20/25 addresses this issue, good - I'd even be
> happy to see that change go into 2.6.29, though probably too late now
> (and it has been that way forever). 

Agreed, although that change is an accident essentially. It's not super
clear to me it would help but I haven't looked closely enough at the oops
to have a useful opinion.

> But note, it does need one of us
> to replace the page_count in bad_page() in the same way, that's missing.
> 
> I've given up on trying to understand how that PageTail is set in
> Gene's oops.  I was thinking that it got left behind somewhere
> because of my destroy_compound_page sequence error, but I just
> can't see how: I wonder if it's just a corrupt bit in the struct.
> 

I can't see how it can be left behind either as it should have been
getting clobbered. If it was something like inappropriate buddy merging,
a lot more would have broken.

> I don't now feel that we need to rush a fix for my error into 2.6.29:
> it does appear to be working nicely enough with that inadvertent
> change, and we're not yet agreed on which way to go from here.
> 
> > > 
> > > And in looking at this, I notice something else to worry about:
> > > that CONFIG_HUGETLBFS prep_compound_gigantic_page(), which seems
> > > to exist for a more general case than "p = page + i" - what happens
> > > when such a gigantic page is freed, and arrives at the various
> > > "p = page + i" assumptions on the freeing path?
> > > 
> > 
> > That function is a bit confusing I'll give you that. Glancing through,
> > what happens is that the destuctor gets replaced with a free_huge_page()
> > which throws the page onto those free lists instead. It never hits the
> > buddy lists on the grounds they can't handle orders >= MAX_ORDER.
> 
> Ah yes, thanks a lot, I'd forgotten all that.  Yes, there appear to
> be adequate MAX_ORDER checks in hugetlb.c to prevent that danger.
> 
> > 
> > Out of curiousity,
> 
> My curiosity is very limited at the moment, I'm afraid I've not glanced.
> 

No harm. 

> > here is a patch that was intended for a totally different
> > purpose but ended up forcing destroy_compound_page() to be used. It sucked
> > so I ended up unfixing it again. It can't be merged as-is obviously but
> > you'll see I redefined your flags a bit to exclude the compound flags
> > and all that jazz. It could be rebased of course but it'd make more sense
> > to have destroy_compound_page() that only does real work for DEBUG_VM as
> > free_pages_check() already does enough work.
> 
> Yes, putting it under DEBUG_VM could be a compromise; though by now I've
> persuaded myself that it's of little value, and the times it might catch
> something would be out there without DEBUG_VM=y.
> 

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2009-03-23 11:28 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-12  5:33 I just got got another Oops Gene Heskett
2009-03-12  6:27 ` KAMEZAWA Hiroyuki
2009-03-12  8:36 ` David Newall
2009-03-12 17:28   ` Gene Heskett
2009-03-12 17:48   ` Gene Heskett
2009-03-12 19:37     ` David Newall
2009-03-12 23:28       ` Gene Heskett
2009-03-13  4:55         ` David Newall
2009-03-12 18:31   ` Gene Heskett
2009-03-16  2:55     ` KAMEZAWA Hiroyuki
2009-03-16  3:22       ` KAMEZAWA Hiroyuki
2009-03-16  8:03       ` BUG?: PAGE_FLAGS_CHECK_AT_PREP seems to be cleared too early (Was " KAMEZAWA Hiroyuki
2009-03-16 21:44         ` Hugh Dickins
2009-03-16 23:44           ` KAMEZAWA Hiroyuki
2009-03-20 15:23           ` Mel Gorman
2009-03-22 14:55             ` Hugh Dickins
2009-03-23 11:27               ` Mel Gorman
  -- strict thread matches above, loose matches on Subject: below --
2009-03-12  5:33 Gene Heskett

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox