[Linux-ia64] kernel update (relative to 2.4.10)

From: David Mosberger <davidm_at_hpl.hp.com>
Date: 2001-09-25 17:17:52
[Argh, the linux-ia64 mailer didn't like the original mail because
 the patch was too big.  Here follows the same without patch...]

Here is a long-awaited kernel update which brings us in sync with
2.4.10.  As usual, it's available at
ftp://ftp.kernel.org/pub/linux/kernel/ports/ia64/ in file:

	linux-2.4.10-ia64-010924.diff*

The major changes this time include:

 - Major ia32 subsystem update by yours truly:
	- enable use of emulator prefix: for a non-directory file with
	  path PATH, the ia32 subsystem now uses /emul/ia32-linux/PATH
	  if the file exists
	- fix a nasty bug which caused ia32 binaries to subtly corrupt
	  page table page (this was the reason "realplay" often crashed
	  on start up, but the bug could affect any process, not just
	  ia32 processes)
	- make the address space layout of ia32 tasks match that of
	  a real linux/x86 task; in particular, the stack now starts
	  at 0xc0000000 (and grows towards lower addresses)
	- fix emulated mmap() and mprotect() to work when page size is 4K
	  and work better when the page size is larger
	- fix emulated ptrace() sys x86 strace() works
	- fill in missing system calls (pread, pwrite, sendfile, SuS-compliant
	  getrlimit, mmap2, {,f}truncate64, {,l,f}stat64, 32-bit uid/gid
	  versions of lchown, getuid etc., pivot_root, mincore, madvise,
	  getdents64, fcntl64) and drop some unsupported ones
	  (module related syscalls, vm86, bdflush)
	- support signal delivery with SA_RESTORER sigreturn
	- don't align shared mmap()s to 1MB---this filled up a 32-bit address
	  space too quickly
    with these fixes in place, I'm able to successfully run the ia32
    versions of realplay, OpenOffice, mozilla, netscape, acrobat, strace,
    Intel compilers, etc.  But as usual, your mileage may vary.
 - update perform to v0.3 (Stephane Eranian)
 - SN updates from SGI (just a starter, more to follow...)
 - be more consistent about using i-cache prefetches (use .few for branches
   within a routine, .many otherwise)
 - fix alternate stack signal delivery (used to break if the old stack
   didn't have enough memory to hold the dirty stacked registers); ironically,
   this fix probably also speeds up this case (it's no longer necessary
   to do a flushrs...)
 - McKinley related I/O SAPIC updates from Alex Williamson
 - fix irq bug which caused console keyboard to report timeout when
   pressing the caps lock key (Richard Hirst)
 - fix ptrace race condition (thanks to Shoichi Sakon for providing
   a test case that reproduced this problem)
 - turn on dcr.lc by default
 - many sync-ups for 2.4.10 (thanks to KOCHI Takayoshi for sending a timely
   ACPI update)

I should warn that this kernel has received only moderate testing so
far.  The remote access server I'm normally using to access a test
ia64 machine crashed just shortly before making the patch, so I wasn't
able to do my usual round of testing.  Having said that, the kernel
seems to work fine on a dual Itanium Big Sur, so there is hope.  As
you know, Linus and co decided to basically rewrite the VM system.  As
far as I can tell, this hasn't had any negative impact on ia64, but
I'd recommend doing a lot of testing before declaring this kernel as
ready for prime time.

Oh, and as usual, the patch below is fyi, only.  The the full patch
for definite answers.

Enjoy,

	--david
Received on Tue Sep 25 00:17:58 2001

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:05 EST