From: Planet-Lab Support Date: Mon, 8 Aug 2005 21:12:07 +0000 (+0000) Subject: This commit was manufactured by cvs2svn to create tag X-Git-Tag: after-2_6_10-vs1_9_3_17-merge X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=d0cd7e7f40cfe15662f068b851fda1e1c59fce66;p=linux-2.6.git This commit was manufactured by cvs2svn to create tag 'after-2_6_10-vs1_9_3_17-merge'. --- diff --git a/.cvsignore b/.cvsignore index c150355e6..5e7d07457 100644 --- a/.cvsignore +++ b/.cvsignore @@ -11,4 +11,3 @@ Module.symvers System.map vmlinux -linux diff --git a/Documentation/ckrm/mem_rc.design b/Documentation/ckrm/mem_rc.design index 1c020ff5a..bc565c6a0 100644 --- a/Documentation/ckrm/mem_rc.design +++ b/Documentation/ckrm/mem_rc.design @@ -12,13 +12,9 @@ These are the events in a page's lifecycle: When the memory subsystem runs low on LRU pages, pages are reclaimed by - moving pages from active list to inactive list (refill_inactive_zone()) - - freeing pages from the inactive list (shrink_zone) + - freeing pages from the inactive list (shrink_zone) depending on the recent usage of the page(approximately). -In the process of the life cycle a page can move from the lru list to swap -and back. For this document's purpose, we treat it same as freeing and -allocating the page, respectfully. - 1. Introduction --------------- Memory resource controller controls the number of lru physical pages @@ -44,26 +40,26 @@ memory allocation logic. Note that the numbers that are specified in the shares file, doesn't directly correspond to the number of pages. But, the user can make it so by making the total_guarantee and max_limit of the default class -(/rcfs/taskclass) to be the total number of pages(given in stats file) +(/rcfs/taskclass) to be the total number of pages(given in config file) available in the system. for example: # cd /rcfs/taskclass - # grep System stats - System: tot_pages=257512,active=5897,inactive=2931,free=243991 + # cat config + res=mem;tot_pages=239778,active=60473,inactive=135285,free=44555 # cat shares res=mem,guarantee=-2,limit=-2,total_guarantee=100,max_limit=100 - "tot_pages=257512" above mean there are 257512 lru pages in + "tot_pages=239778" above mean there are 239778 lru pages in the system. By making total_guarantee and max_limit to be same as this number at this level (/rcfs/taskclass), one can make guarantee and limit in all classes refer to the number of pages. - # echo 'res=mem,total_guarantee=257512,max_limit=257512' > shares + # echo 'res=mem,total_guarantee=239778,max_limit=239778' > shares # cat shares - res=mem,guarantee=-2,limit=-2,total_guarantee=257512,max_limit=257512 + res=mem,guarantee=-2,limit=-2,total_guarantee=239778,max_limit=239778 The number of pages a class can use be anywhere between its guarantee and @@ -72,100 +68,60 @@ to choose a victim page to swap out. While the number of pages a class can have allocated may be anywhere between its guarantee and limit, victim pages will be choosen from classes that are above their guarantee. -Victim class will be chosen by the number pages a class is using over its -guarantee. i.e a class that is using 10000 pages over its guarantee will be -chosen against a class that is using 1000 pages over its guarantee. -Pages belonging to classes that are below their guarantee will not be -chosen as a victim. - -2. Configuaration parameters ---------------------------- - -Memory controller provides the following configuration parameters. Usage of -these parameters will be made clear in the following section. - -fail_over: When pages are being allocated, if the class is over fail_over % of - its limit, then fail the memory allocation. Default is 110. - ex: If limit of a class is 30000 and fail_over is 110, then memory - allocations would start failing once the class is using more than 33000 - pages. - -shrink_at: When a class is using shrink_at % of its limit, then start - shrinking the class, i.e start freeing the page to make more free pages - available for this class. Default is 90. - ex: If limit of a class is 30000 and shrink_at is 90, then pages from this - class will start to get freed when the class's usage is above 27000 +Pages will be freed from classes that are close to their "limit" before +freeing pages from the classes that are close to their guarantee. Pages +belonging to classes that are below their guarantee will not be chosen as +a victim. -shrink_to: When a class reached shrink_at % of its limit, ckrm will try to - shrink the class's usage to shrink_to %. Defalut is 80. - ex: If limit of a class is 30000 with shrink_at being 90 and shrink_to - being 80, then ckrm will try to free pages from the class when its - usage reaches 27000 and will try to bring it down to 24000. - -num_shrinks: Number of shrink attempts ckrm will do within shrink_interval - seconds. After this many attempts in a period, ckrm will not attempt a - shrink even if the class's usage goes over shrink_at %. Default is 10. - -shrink_interval: Number of seconds in a shrink period. Default is 10. - -3. Design +2. Core Design -------------------------- CKRM memory resource controller taps at appropriate low level memory management functions to associate a page with a class and to charge a class that brings the page to the LRU list. -CKRM maintains lru lists per-class instead of keeping it system-wide, so -that reducing a class's usage doesn't involve going through the system-wide -lru lists. - -3.1 Changes in page allocation function(__alloc_pages()) +2.1 Changes in page allocation function(__alloc_pages()) -------------------------------------------------------- -- If the class that the current task belong to is over 'fail_over' % of its - 'limit', allocation of page(s) fail. Otherwise, the page allocation will - proceed as before. +- If the class that the current task belong to is over 110% of its 'limit', + allocation of page(s) fail. +- After succesful allocation of a page, the page is attached with the class + to which the current task belongs to. - Note that the class is _not_ charged for the page(s) here. -3.2 Changes in page free(free_pages_bulk()) +2.2 Changes in page free(free_pages_bulk()) ------------------------------------------- -- If the page still belong to a class, the class will be credited for this - page. +- page is freed from the class it belongs to. -3.3 Adding/Deleting page to active/inactive list +2.3 Adding/Deleting page to active/inactive list ------------------------------------------------- When a page is added to the active or inactive list, the class that the -task belongs to is charged for the page usage. +page belongs to is charged for the page usage. When a page is deleted from the active or inactive list, the class that the page belongs to is credited back. -If a class uses 'shrink_at' % of its limit, attempt is made to shrink -the class's usage to 'shrink_to' % of its limit, in order to help the class -stay within its limit. +If a class uses upto its limit, attempt is made to shrink the class's usage +to 90% of its limit, in order to help the class stay within its limit. But, if the class is aggressive, and keep getting over the class's limit -often(more than such 'num_shrinks' events in 'shrink_interval' seconds), -then the memory resource controller gives up on the class and doesn't try -to shrink the class, which will eventually lead the class to reach -fail_over % and then the page allocations will start failing. +often(more than 10 shrink events in 10 seconds), then the memory resource +controller gives up on the class and doesn't try to shrink the class, which +will eventually lead the class to reach its 110% of its limit and then the +page allocations will start failing. -3.4 Changes in the page reclaimation path (refill_inactive_zone and shrink_zone) +2.4 Chages in the page reclaimation path (refill_inactive_zone and shrink_zone) ------------------------------------------------------------------------------- Pages will be moved from active to inactive list(refill_inactive_zone) and -pages from inactive list by choosing victim classes. Victim classes are -chosen depending on their usage over their guarantee. - -Classes with DONT_CARE guarantee are assumed an implicit guarantee which is -based on the number of children(with DONT_CARE guarantee) its parent has -(including the default class) and the unused pages its parent still has. -ex1: If a default root class /rcfs/taskclass has 3 children c1, c2 and c3 -and has 200000 pages, and all the classes have DONT_CARE guarantees, then -all the classes (c1, c2, c3 and the default class of /rcfs/taskclass) will -get 50000 (200000 / 4) pages each. -ex2: If, in the above example c1 is set with a guarantee of 80000 pages, -then the other classes (c2, c3 and the default class of /rcfs/taskclass) -will get 40000 ((200000 - 80000) / 3) pages each. - -3.5 Handling of Shared pages +pages from inactive list will be freed in the following order: +(range is calculated by subtracting 'guarantee' from 'limit') + - Classes that are over 110% of their range + - Classes that are over 100% of their range + - Classes that are over 75% of their range + - Classes that are over 50% of their range + - Classes that are over 25% of their range + - Classes whose parent is over 110% of its range + - Classes that are over their guarantee + +2.5 Handling of Shared pages ---------------------------- Even if a mm is shared by tasks, the pages that belong to the mm will be charged against the individual tasks that bring the page into LRU. diff --git a/Documentation/ckrm/mem_rc.usage b/Documentation/ckrm/mem_rc.usage index 3d2f2f04f..faddbf84e 100644 --- a/Documentation/ckrm/mem_rc.usage +++ b/Documentation/ckrm/mem_rc.usage @@ -16,21 +16,20 @@ For brevity, unless otherwise specified all the following commands are executed in the default class (/rcfs/taskclass). Initially, the systemwide default class gets 100% of the LRU pages, and the -stats file at the /rcfs/taskclass level displays the total number of -physical pages. +config file displays the total number of physical pages. # cd /rcfs/taskclass - # grep System stats - System: tot_pages=239778,active=60473,inactive=135285,free=44555 + # cat config + res=mem;tot_pages=239778,active=60473,inactive=135285,free=44555 # cat shares res=mem,guarantee=-2,limit=-2,total_guarantee=100,max_limit=100 tot_pages - total number of pages active - number of pages in the active list ( sum of all zones) - inactive - number of pages in the inactive list ( sum of all zones) - free - number of free pages (sum of all zones) + inactive - number of pages in the inactive list ( sum of all zones ) + free - number of free pages (sum of all pages) - By making total_guarantee and max_limit to be same as tot_pages, one can + By making total_guarantee and max_limit to be same as tot_pages, one make make the numbers in shares file be same as the number of pages for a class. @@ -38,51 +37,13 @@ physical pages. # cat shares res=mem,guarantee=-2,limit=-2,total_guarantee=239778,max_limit=239778 -Changing configuration parameters: ----------------------------------- -For description of the paramters read the file mem_rc.design in this same directory. - -Following is the default values for the configuration parameters: - - localhost:~ # cd /rcfs/taskclass - localhost:/rcfs/taskclass # cat config - res=mem,fail_over=110,shrink_at=90,shrink_to=80,num_shrinks=10,shrink_interval=10 - -Here is how to change a specific configuration parameter. Note that more than one -configuration parameter can be changed in a single echo command though for simplicity -we show one per echo. - -ex: Changing fail_over: - localhost:/rcfs/taskclass # echo "res=mem,fail_over=120" > config - localhost:/rcfs/taskclass # cat config - res=mem,fail_over=120,shrink_at=90,shrink_to=80,num_shrinks=10,shrink_interval=10 - -ex: Changing shrink_at: - localhost:/rcfs/taskclass # echo "res=mem,shrink_at=85" > config - localhost:/rcfs/taskclass # cat config - res=mem,fail_over=120,shrink_at=85,shrink_to=80,num_shrinks=10,shrink_interval=10 - -ex: Changing shrink_to: - localhost:/rcfs/taskclass # echo "res=mem,shrink_to=75" > config - localhost:/rcfs/taskclass # cat config - res=mem,fail_over=120,shrink_at=85,shrink_to=75,num_shrinks=10,shrink_interval=10 - -ex: Changing num_shrinks: - localhost:/rcfs/taskclass # echo "res=mem,num_shrinks=20" > config - localhost:/rcfs/taskclass # cat config - res=mem,fail_over=120,shrink_at=85,shrink_to=75,num_shrinks=20,shrink_interval=10 - -ex: Changing shrink_interval: - localhost:/rcfs/taskclass # echo "res=mem,shrink_interval=15" > config - localhost:/rcfs/taskclass # cat config - res=mem,fail_over=120,shrink_at=85,shrink_to=75,num_shrinks=20,shrink_interval=15 Class creation -------------- # mkdir c1 -Its initial share is DONT_CARE. The parent's share values will be unchanged. +Its initial share is don't care. The parent's share values will be unchanged. Setting a new class share ------------------------- @@ -101,7 +62,6 @@ Monitoring stats file shows statistics of the page usage of a class # cat stats ----------- Memory Resource stats start ----------- - System: tot_pages=239778,active=60473,inactive=135285,free=44555 Number of pages used(including pages lent to children): 196654 Number of pages guaranteed: 239778 Maximum limit of pages: 239778 diff --git a/Documentation/ckrm/numtasks b/Documentation/ckrm/numtasks deleted file mode 100644 index 94b4b09ef..000000000 --- a/Documentation/ckrm/numtasks +++ /dev/null @@ -1,122 +0,0 @@ -Introduction -------------- - -Numtasks is a resource controller under the CKRM framework that allows the -user/sysadmin to manage the number of tasks a class can create. It also allows -one to limit the fork rate across the system. - -As with any other resource under the CKRM framework, numtasks also assigns -all the resources to the detault class(/rcfs/taskclass). Since , the number -of tasks in a system is not limited, this resource controller provides a -way to set the total number of tasks available in the system through the config -file. By default this value is 128k(131072). In other words, if not changed, -the total number of tasks allowed in a system is 131072. - -The config variable that affect this is sys_total_tasks. - -This resource controller also allows the sysadmin to limit the number of forks -that are allowed in the system within the specified number of seconds. This -can be acheived by changing the attributes forkrate and forkrate_interval in -the config file. Through this feature one can protect the system from being -attacked by fork bomb type applications. - -Installation -------------- - -1. Configure "Number of Tasks Resource Manager" under CKRM (see - Documentation/ckrm/installation). This can be configured as a module - also. But, when inserted as a module it cannot be removed. - -2. Reboot the system with the new kernel. Insert the module, if compiled - as a module. - -3. Verify that the memory controller is present by reading the file - /rcfs/taskclass/config (should show a line with res=numtasks) - -Usage ------ - -For brevity, unless otherwise specified all the following commands are -executed in the default class (/rcfs/taskclass). - -As explained above the config file shows sys_total_tasks and forkrate -info. - - # cd /rcfs/taskclass - # cat config - res=numtasks,sys_total_tasks=131072,forkrate=1000000,forkrate_interval=3600 - -By default, the sys_total_tasks is set to 131072(128k), and forkrate is set -to 1 million and forkrate_interval is set to 3600 seconds. Which means the -total number of tasks in a system is limited to 131072 and the forks are -limited to 1 million per hour. - -sysadmin can change these values by just writing the attribute/value pair -to the config file. - - # echo res=numtasks,forkrate=100,forkrate_interval=10 > config - # cat config - res=numtasks,sys_total_tasks=1000,forkrate=100,forkrate_interval=10 - - # echo res=numtasks,forkrate=100,forkrate_interval=10 > config - # cat config - res=numtasks,sys_total_tasks=1000,forkrate=100,forkrate_interval=10 - -By making total_guarantee and max_limit to be same as sys_total_tasks, -sysadmin can make the numbers in shares file be same as the number of tasks -for a class. - - # echo res=numtasks,total_guarantee=131072,max_limit=131072 > shares - # cat shares - res=numtasks,guarantee=-2,limit=-2,total_guarantee=131072,max_limit=131072 - - -Class creation --------------- - - # mkdir c1 - -Its initial share is don't care. The parent's share values will be unchanged. - -Setting a new class share -------------------------- - -'guarantee' specifies the number of tasks this class is entitled to get -'limit' is the maximum number of tasks this class can get. - -Following command will set the guarantee of class c1 to be 25000 and the limit -to be 50000 - - # echo 'res=numtasks,guarantee=25000,limit=50000' > c1/shares - # cat c1/shares - res=numtasks,guarantee=25000,limit=50000,total_guarantee=100,max_limit=100 - -Limiting forks in a time period -------------------------------- -By default, this resource controller allows forking of 1 million tasks in -an hour. - -Folowing command would change it to allow only 100 forks per 10 seconds - - # echo res=numtasks,forkrate=100,forkrate_interval=10 > config - # cat config - res=numtasks,sys_total_tasks=1000,forkrate=100,forkrate_interval=10 - -Note that the same set of values is used across the system. In other words, -each individual class will be allowed 'forkrate' forks in 'forkrate_interval' -seconds. - -Monitoring ----------- - -stats file shows statistics of the number of tasks usage of a class -[root@localhost taskclass]# cat stats -Number of tasks resource: -Total Over limit failures: 0 -Total Over guarantee sucesses: 0 -Total Over guarantee failures: 0 -Maximum Over limit failures: 0 -Maximum Over guarantee sucesses: 0 -Maximum Over guarantee failures: 0 -cur_alloc 38; borrowed 0; cnt_guar 131072; cnt_limit 131072 cnt_unused 131072, unused_guarantee 100, cur_max_limit 0 - diff --git a/Documentation/devices.txt b/Documentation/devices.txt index 60ce4ae9d..f115145e5 100644 --- a/Documentation/devices.txt +++ b/Documentation/devices.txt @@ -100,7 +100,6 @@ Your cooperation is appreciated. 9 = /dev/urandom Faster, less secure random number gen. 10 = /dev/aio Asyncronous I/O notification interface 11 = /dev/kmsg Writes to this come out as printk's - 12 = /dev/oldmem Access to kexec-ed crash dump 1 block RAM disk 0 = /dev/ram0 First RAM disk 1 = /dev/ram1 Second RAM disk diff --git a/Documentation/kdump.txt b/Documentation/kdump.txt deleted file mode 100644 index 8fc3d68ae..000000000 --- a/Documentation/kdump.txt +++ /dev/null @@ -1,105 +0,0 @@ -Documentation for kdump - the kexec based crash dumping solution -================================================================ - -DESIGN -====== - -We use kexec to reboot to a second kernel whenever a dump needs to be taken. -This second kernel is booted with with very little memory (configurable -at compile time). The first kernel reserves the section of memory that the -second kernel uses. This ensures that on-going DMA from the first kernel -does not corrupt the second kernel. The first 640k of physical memory is -needed irrespective of where the kernel loads at. Hence, this region is -backed up before reboot. - -In the second kernel, "old memory" can be accessed in two ways. The -first one is through a device interface. We can create a /dev/oldmem or -whatever and write out the memory in raw format. The second interface is -through /proc/vmcore. This exports the dump as an ELF format file which -can be written out using any file copy command (cp, scp, etc). Further, gdb -can be used to perform some minimal debugging on the dump file. Both these -methods ensure that there is correct ordering of the dump pages (corresponding -to the first 640k that has been relocated). - -SETUP -===== - -1) Obtain the appropriate -mm tree patch and apply it on to the vanilla - kernel tree. - -2) Two kernels need to be built in order to get this feature working. - - For the first kernel, choose the default values for the following options. - - a) Physical address where the kernel is loaded - b) kexec system call - c) kernel crash dumps - - All the options are under "Processor type and features" - - For the second kernel, change (a) to 16MB. If you want to choose another - value here, ensure "location from where the crash dumping kernel will boot - (MB)" under (c) reflects the same value. - - Also ensure you have CONFIG_HIGHMEM on. - -3) Boot into the first kernel. You are now ready to try out kexec based crash - dumps. - -4) Load the second kernel to be booted using - - kexec -p --args-linux --append="root= dump - init 1 memmap=exactmap memmap=640k@0 memmap=32M@16M" - - Note that has to be a vmlinux image. bzImage will not - work, as of now. - -5) Enable kexec based dumping by - - echo 1 > /proc/kexec-dump - - If this is not set, the system will not do a kexec reboot in the event - of a panic. - -6) System reboots into the second kernel when a panic occurs. - You could write a module to call panic, for testing purposes. - -7) Write out the dump file using - - cp /proc/vmcore - -You can also access the dump as a device for a linear/raw view. To do this, -you will need the kd-oldmem-.patch built into the kernel. To create -the device, type - - mknod /dev/oldmem c 1 12 - -Use "dd" with suitable options for count, bs and skip to access specific -portions of the dump. - -ANALYSIS -======== - -You can run gdb on the dump file copied out of /proc/vmcore. Use vmlinux built -with -g and run - - gdb vmlinux - -Stack trace for the task on processor 0, register display, memory display -work fine. - -TODO -==== - -1) Provide a kernel-pages only view for the dump. This could possibly turn up - as /proc/vmcore-kern. -2) Provide register contents of all processors (similar to what multi-threaded - core dumps does). -3) Modify "crash" to make it recognize this dump. -4) Make the i386 kernel boot from any location so we can run the second kernel - from the reserved location instead of the current approach. - -CONTACT -======= - -Hariprasad Nellitheertha - hari at in dot ibm dot com diff --git a/MAINTAINERS b/MAINTAINERS index 5f81698b5..66275d498 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1259,17 +1259,6 @@ M: rml@novell.com L: linux-kernel@vger.kernel.org S: Maintained -KEXEC -P: Eric Biederman -P: Randy Dunlap -M: ebiederm@xmission.com -M: rddunlap@osdl.org -W: http://www.xmission.com/~ebiederm/files/kexec/ -W: http://developer.osdl.org/rddunlap/kexec/ -L: linux-kernel@vger.kernel.org -L: fastboot@osdl.org -S: Maintained - LANMEDIA WAN CARD DRIVER P: Andrew Stanley-Jones M: asj@lanmedia.com diff --git a/Makefile b/Makefile index effcf26e0..5133b8b16 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 10 -EXTRAVERSION = -1.14_FC2.1.planetlab +EXTRAVERSION = -1.12_FC2.1.planetlab NAME=AC 1 # *DOCUMENTATION* diff --git a/arch/h8300/kernel/ints.c b/arch/h8300/kernel/ints.c index 0b9ddba3d..edb3c4170 100644 --- a/arch/h8300/kernel/ints.c +++ b/arch/h8300/kernel/ints.c @@ -114,7 +114,7 @@ void __init init_IRQ(void) } } interrupt_redirect_table = ramvec; -#ifdef CRASH_DUMP_VECTOR +#ifdef DUMP_VECTOR ramvec_p = ramvec; for (i = 0; i < NR_IRQS; i++) { if ((i % 8) == 0) diff --git a/arch/h8300/platform/h8s/ints.c b/arch/h8300/platform/h8s/ints.c index 6b27e5ac5..5441cdd12 100644 --- a/arch/h8300/platform/h8s/ints.c +++ b/arch/h8300/platform/h8s/ints.c @@ -134,7 +134,7 @@ void __init init_IRQ(void) ramvec[TRAP0_VEC] = VECTOR(system_call); ramvec[TRAP3_VEC] = break_vec; interrupt_redirect_table = ramvec; -#ifdef CRASH_DUMP_VECTOR +#ifdef DUMP_VECTOR ramvec_p = ramvec; for (i = 0; i < NR_IRQS; i++) { if ((i % 8) == 0) diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index 1ed5b3831..1e4f78c0a 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig @@ -922,53 +922,6 @@ config REGPARM generate incorrect output with certain kernel constructs when -mregparm=3 is used. -config KERN_PHYS_OFFSET - int "Physical address where the kernel is loaded (1-112)MB" - range 1 112 - default "1" - help - This gives the physical address where the kernel is loaded. - Primarily used in the case of kexec on panic where the - recovery kernel needs to run at a different address than - the panic-ed kernel. - -config KEXEC - bool "kexec system call (EXPERIMENTAL)" - depends on EXPERIMENTAL - help - kexec is a system call that implements the ability to shutdown your - current kernel, and to start another kernel. It is like a reboot - but it is indepedent of the system firmware. And like a reboot - you can start any kernel with it, not just Linux. - - The name comes from the similiarity to the exec system call. - - It is an ongoing process to be certain the hardware in a machine - is properly shutdown, so do not be surprised if this code does not - initially work for you. It may help to enable device hotplugging - support. As of this writing the exact hardware interface is - strongly in flux, so no good recommendation can be made. - -config CRASH_DUMP - bool "kernel crash dumps (EXPERIMENTAL)" - depends on KEXEC - help - Generate crash dump using kexec. - -config BACKUP_BASE - int "location from where the crash dumping kernel will boot (MB)" - depends on CRASH_DUMP - default 16 - help - This is the location where the second kernel will boot from. - -config BACKUP_SIZE - int "Size of memory used by the crash dumping kernel (MB)" - depends on CRASH_DUMP - range 16 64 - default 32 - help - The size of the second kernel's memory. endmenu diff --git a/arch/i386/boot/compressed/head.S b/arch/i386/boot/compressed/head.S index 4f41af3a5..c5e80b69e 100644 --- a/arch/i386/boot/compressed/head.S +++ b/arch/i386/boot/compressed/head.S @@ -74,7 +74,7 @@ startup_32: popl %esi # discard address popl %esi # real mode pointer xorl %ebx,%ebx - ljmp $(__BOOT_CS), $KERN_PHYS_OFFSET + ljmp $(__BOOT_CS), $0x100000 /* * We come here, if we were loaded high. @@ -99,7 +99,7 @@ startup_32: popl %ecx # lcount popl %edx # high_buffer_start popl %eax # hcount - movl $KERN_PHYS_OFFSET,%edi + movl $0x100000,%edi cli # make sure we don't get interrupted ljmp $(__BOOT_CS), $0x1000 # and jump to the move routine @@ -124,5 +124,5 @@ move_routine_start: movsl movl %ebx,%esi # Restore setup pointer xorl %ebx,%ebx - ljmp $(__BOOT_CS), $KERN_PHYS_OFFSET + ljmp $(__BOOT_CS), $0x100000 move_routine_end: diff --git a/arch/i386/boot/compressed/misc.c b/arch/i386/boot/compressed/misc.c index 9805b3730..874568330 100644 --- a/arch/i386/boot/compressed/misc.c +++ b/arch/i386/boot/compressed/misc.c @@ -14,7 +14,6 @@ #include #include