---

New IA-64 Linux kernel released; McKinley support added

This appeared on the IA-64 Linux kernel mailing
list.

Posted by:
David Mosberger davidm@hpl.hp.com 
Thu, 5 Apr 2001 13:26:40 -0700 

The latest IA-64 patch is now available at:

 ftp://ftp.kernel.org/pub/linux/kernel/ports/ia64/

in file linux-2.4.3-ia64-010405.diff*

CAVEAT: You will need a NEW BOOTLOADER with this patch.  More on this
below.

What this patch does:

        - Switch over to new bootstrap procedure developed by
          Stephane: the kernel is now booted in physical mode and the
          bootloader is now completely decoupled from the kernel: it
          simply loads the kernel as an ELF file and then jumps to the
          entry point.  It has no special knowledge of where the
          ZERO_PAGE is anymore, etc.  The new bootloader also supports
          compressed kernel.  The Makefile supports this via "make
          compressed": this target will produce "vmlinux" with all
          debug info in it and "vmlinux.gz", a stripped and compressed
          version of the kernel.

        - Sync up with Linus' 2.4.3 changes.  Warning: the locking
          strategy changed for page table allocation.  If you have
          code that calls pmd_alloc(), you'll need to update that code
          to use the mm->page_table_lock (I already made these changes
          for the IA-32 subsystem and for the AGP driver).

        - Add McKinley support (Alex).

        - The IA-32 execve() no longer has to clear r8 through r15
          (it's already done in the generic execve() path).

        - Use 64MB instead of 256MB pages in the identity mapped
          regions and load the kernel at address 68MB.  This avoids
          problems with conflicting memory attributes due to the first
          1MB of address space (Asit).

        - Don't panic in efivars.c just because EFI variables are not
          supported.  Note: please do not call BUG() *UNLESS* you're
          dealing with a problem that absolutely positiveley would
          kill the kernel, delete your files, or some such.  Linux is
          very careful not to panic for silly reasons and we'd like to
          keep it that way.

        - Change ptrace.c so sync_kernel_register_backing_store()
          works again.  Update unaligned.c and process.c accordingly.
          This hasn't been well tested yet, but strace still works and
          doing an inferior call with gdb no longer seems to corrupt
          the stacked registers, so there is hope. ;-) Thanks to Kevin
          for tracking down this issue.  Also, hopefully fix
          PTRACE_GETSIGINFO, PTRACE_SETSIGINFO, and the ptrace and
          core dump handling of ar.rnat.

        - Fix the initialization ordering bug that caused the 2.4.2
          kernels to get stuck when using a page size smaller than
          16KB.

        - Fix a buglet in get_unmapped_area().  Thanks to Matthew
          Wilcox for reporting this.  (This bug had no negative
          effect on any existing IA-64 implementation.)

        - Fix thinko in printk() rate limiting code (Khalid).

        - Update efirtc driver to move /proc/efirtc to
          /proc/driver/efirtc and to use a format more in line with
          the regular RTC driver (Stephane).

        - Hack fs/binfmt_elf so that the auxiliary information is
          passed independent of whether the binary is statically or
          dynamically linked (Rich, I haven't run this past Linus yet,
          but I hope he won't have an issue with it; it really makes
          no sense at all to not pass this info for static binaries:
          an ELF file is an ELF file, no matter whether it's static or
          dynamic).

        - Fix access_ok() to reject attempts to fool the kernel into
          giving access to the virtually mapped page table (this
          required moving the initial stack pointer down by one page).

        - Various minor clean ups.

In case it isn't clear yet: this patch has far more changes than I'd
normally feel comfortable with (we're trying to _stabilize_ things,
remember...).  However, as things go, several issues cropped up all at
the same time and this pretty much forced us to adopt a new bootstrap
procedure.  And since we had to update the bootloader anyhow, this
provided an opportunity to clean up some of the cruft that has
accumulated over the past couple of months.  The good news is that
while this patch may cause some pain, in my opinion the compressed
kernel support alone makes it well worth it. ;-) Still, test long and
well before shipping this kernel as part of a distro...

Now, as far as the new bootloader is concerned: Stephane has done all
the heavy lifting here and he'll soon send out an announcement with
pointers to both source and binary.

Usual disclaimers:

 o The patch below is for informational purposes only.  Get the real
   thing from ftp.kernel.org.

 o The patch below has been tested on 2P Big Sur and on the HP Ski
   simulator, in both cases with UP and MP.  As usual, YMMV.

Enjoy,

        --david


Complete Story

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends, & analysis