Bug 46213 - Installer hangs when specify
Installer hangs when specify
Status: CLOSED RAWHIDE
Product: Red Hat Linux
Classification: Retired
Component: kernel (Show other bugs)
7.1
ia64 Linux
high Severity high
: ---
: ---
Assigned To: Arjan van de Ven
Brock Organ
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2001-06-27 08:41 EDT by Shinya Narahara
Modified: 2005-10-31 17:00 EST (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2001-07-24 02:12:10 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Shinya Narahara 2001-06-27 08:41:24 EDT
From Bugzilla Helper:
User-Agent: Mozilla/4.75 [ja] (WinNT; U)

Description of problem:
IA-64 Installer, the kernel 2.4.3-12, may have a memory bug.

How reproducible:
Always

Steps to Reproduce:
1. Boot IA-64 machine.
2. Insert redhat 7.1 Installation CD-ROM.
3. input string below, on the EFI shell.
      elilo linux mem=512m
	

Actual Results:  Kernel panic happens between kernel booting.
The message is below:
...
Freeing initrd memory: 692kB freed
kernel BUG at page_alloc.c:86!

Expected Results:  normal boot.

Additional info:

We saw this on the machines IA-64 2way, 4way and 8way.
We suppose this is caused by the kernel patch linux-2.4.2-vmpoisone.patch.

If we can't specify the kernel parameter "mem=", it will be kernel panic
between installation of redhat Linux for IA-64 on the machine which
has much memory(ex. 8Gbyte), because of the lack of the SWIOTLB
buffer(DMA buffer). We think this may be avoided by using an another
kernel parameter "swiotlb=16384", 256Mbyte, however very doubtful.
Comment 1 Takanori Kawano 2001-06-27 22:51:53 EDT
On my investigation, the cause is that:
(1) When 'mem=xxx' is used, it is possible that the page corresponds to
    the memory used by initrd is not made because initrd is loaded into 
    high address region by bootloader.
(2) free_initrd_mem() frees the memory used by initrd even if its 
    corresponding page was not exist.

The following is the patch I sent this to linux kernel ML.
I saw the kernel applied this patch boots normally with 'mem=512m' on Bigsur 
with 1GB memory.

--- ./arch/ia64/mm/init.c       Thu Jun 28 10:16:45 2001
+++ ./arch/ia64/mm/init.c.new   Thu Jun 28 09:57:58 2001
@@ -141,10 +141,12 @@
                printk ("Freeing initrd memory: %ldkB freed\n", (end - start) >>
 10);

        for (; start < end; start += PAGE_SIZE) {
-               clear_bit(PG_reserved, &virt_to_page(start)->flags);
-               set_page_count(virt_to_page(start), 1);
-               free_page(start);
-               ++totalram_pages;
+               if (VALID_PAGE(virt_to_page(start))) {
+                       clear_bit(PG_reserved, &virt_to_page(start)->flags);
+                       set_page_count(virt_to_page(start), 1);
+                       free_page(start);
+                       ++totalram_pages;
+               }
        }
 }


Comment 2 Shinya Narahara 2001-12-03 01:50:19 EST
This issue has been fixed already, kernel-2.4.9 or above.

Note You need to log in before you can comment on or make changes to this bug.