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