Skip to contentSkip to conversation

kernel update (relative to 2.4.21)

DISCUSSION Applied Bjorn Helgaas 3 participants 5 messages Jul 2, 2003 – Jul 15, 2003

lore
Share & tools
lore
#0 lore raw

The ia64 kernel patch for Linux 2.4.21 is available here:

    ftp://ftp.kernel.org/pub/linux/kernel/ports/ia64/v2.4/linux-2.4.21-ia64-030702.diff.gz

The current 2.4-based ia64 tree is also available as a BitKeeper repository. You can browse the changelog and the source files with a normal browser at:

    http://lia64.bkbits.net:8080/linux-ia64-2.4

or you can use the BitKeeper tools to maintain a local copy of the tree like this:

    $ bk clone bk://lia64.bkbits.net/linux-ia64-2.4 linux-ia64-2.4

Bjorn

Changes since the June 3, 2003 2.4.21 interim patch:

- runtime platform detection (Martin Hicks).
- add hugetlb uid/gid/etc mount options and file attributes (Rohit Seth).
- export EFI system table info in /proc (Chad Smith).
- work around ia32 race condition (Arun Sharma).
- fix ia32 msgsnd/msgrcv off-by-4 error (Arun Sharma).
- fix ia32 munmap size = 0 return (Arun Sharma).
- fix ia32 mmap (addr + len > IA32_PAGE_OFFSET) error (Arun Sharma).
- don't allow ptrace to set syscall arg NaT bits (John Marvin).
- SGI SN update 030630 (John Hesterberg).
- ignore empty address ranges from ACPI _CRS.

Changes since the 2.4.20-ia64-021210 patch:

* IA64:
- bugfix in ia64_fls() (Dan Magenheimer, David Mosberger).
- fix 64->32 bit truncation in brl emulation (Arun Sharma).
- fix signal delivery when current register frame is incomplete (David Mosberger).
- fix siginfo.si_addr for SIGSEGV from NaT-page-consumption faults (David Mosberger).
- predicate srlz.d after clearing psr.i (David Mosberger).
- read/write semaphores using atomic ops (Ken Chen).
- moved ia64_fetch_and_add() el al to intrinsics.h (from David Mosberger's 2.5 changes).
- improve optimization of ia64_fetch_and_add (David Mosberger).
- print ISR for FPSWA faults (Martin Hicks).
- don't sync ITC if they may drift (Jes Sorensen).
- fix timer interrupt loss when syncing ITC (Alex Williamson).
- delay TLB flushing to avoid smp_call_function in context switch path.
- disable interrupts during context switch to fix occasional hang in threaded programs (Bjorn Helgaas, Stephane Eranian, John Marvin).
- move mmu_gathers into local_cpu_data (Martin Hicks).
- fix ptrace writes of R4-R7 (David Mosberger).
- fix corruption of kernel NaT bits via ptrace (David Mosberger).
- fix page-fault handling of not-present translations in region 5 (John Marvin).
- support for hugetlb (backported from 2.5) (Rohit Seth).
- fix FPH owner tracking (Asit Mallick, David Mosberger, Arun Sharma).
* I/O:
- add barrier so sba_iommu IOPDIR updates are visible (Alex Williamson).
- remove sym53c8xx "duplicate device detection" (needed to support multi-PCI domains).
- probe only PCI buses reported by ACPI.
- support multiple IO port spaces (via ACPI PCI root bridge resources).
- export io_space symbol (Jes Sorensen).
- fill in /proc/io{mem,ports} with ACPI PCI root bridge resources.
- various IOSAPIC cleanups.
- HP Diva multiport serial card fixes (Paul Bame).
- sync up sba_iommu with 2.5.
- use seq_file in sba_iommu for large /proc files.
- implement pcibios_set_mwi() (Grant Grundler, David Mosberger).
* ACPI:
- compile fix for ACPI without PCI (Jesse Barnes).
- leftover SPCR code removed (Matthew Wilcox).
- add acpi_walk_namespace() and acpi_resource_to_address64().
- support serial ports from ACPI namespace (Khalid Aziz, Bjorn Helgaas).
- check _CID and _HID in ACPI hot-plug controller driver (Matthew Wilcox).
- remove unused acpi_get_addr_space() interface.
- add acpi_find_vendor_resource for GUID-identified vendor resources.
* Perfmon (Stephane Eranian):
- upgrade to 1.4.
- fix broken system-wide monitoring overflow notifications.
- correct McKinley opcode matcher reserved bitmask.
- update to avoid smp_call_function in context-switch path.
* MCA/CMC/CPE:
- poll for CPEs on all CPUs (Alex Williamson).
- poll for CMCs if interrupts happen too fast (Alex Williamson).
- fix MCA stack size (Keith Owens).
- set 'always rendezvous for mca' flag (Keith Owens).
- set rendezvous timeout to 20 seconds (Keith Owens).
- handle SAL requirements for minimum rendezvous timeout (Keith Owens).
- dump min-state area in INIT handler (David Mosberger).
- print backtrace in INIT handler (David Mosberger).
- fix INIT copying of banked registers (David Mosberger).
- export SAL logs in /proc/sal/cpuX/ (Bjorn Helgaas).
* Unwind:
- cleanups and fixes (David Mosberger, Keith Owens).
- fix unwind pt_regs_off usage (Andreas Schwab).
- don't reference past end of unwind-table (Suresh Siddha, David Mosberger).
- added unwind info consistency checker ("make check") (Harish Patil, David Mosberger).
- improve show_trace_task portability (Vladimir Simonov).
- fix scratch-regs in coredumps (David Mosberger).
- call get_scratch_regs only when really needed (Keith Owens).
* IA32 emulation:
- fix sys32_mprotect semaphore drop (Arun Sharma).
- make sys32_ptrace use ptrace_check_attach (Andreas Schwab).
- make sys32_ipc return -ENOSYS (not -EINVAL) for unknown call number (David Mosberger).
- fix kernel thread address space for request_module from ia32 process (Andreas Schwab).
- make CONFIG_SYSCTL control sys32_sysctl (Peter Chubb, Bjorn Helgaas).
- add totalhigh, freehigh,mem_unit to sys32_sysinfo (reported by Andrew Clausen).
- don't turn on O_LARGEFILE automatically on open() (David Mosberger).
- fix msgctl emulation (Arun Sharma).
- fix shmctl(IPC_SET) (Arun Sharma).
- fix shmctl(IPC_STAT) (Arun Sharma).
- check for bad command in semctl (Arun Sharma).
- correct rlimit cur/max declarations (Arun Sharma).
- fix ptrace FPREGS (Venkatesh Pallipadi).
* Configs:
- update defconfig.
- add sample configs in arch/ia64/configs.
- sim{eth,scsi,serial} (drivers for HP simulator) moved back to drivers/ to fix initialization ordering problems.
- simscsi updated with 2.5 features (i.e., disk size detection).
- SGI SN files updated (John Hesterberg).
* Misc bug-fixes:
- fix early_printk() declaration (Suresh Siddha).
- workaround in agpgart_be.c for gcc-3.2.2 defect (reported by Alex Williamson).
- export pm_idle (reported by Steve Goldman and Alex Tsariounov).
- declare test_bit() address as "const" (Peter Chubb).
- fix efivars locking issues (Matt Domsch, Peter Chubb, David Mosberger).
- vmlinux.lds.S: Move __start/__end inside sections (Suresh Siddha, David Mosberger).
- wrap pal.h in #ifdef __KERNEL__ for apps that include <linux/modules.h>.
* Misc cleanup:
- clean up printk severity levels (from 2.5 change).
- C99 initializers (from Rusty Russell's 2.5 patch).
- fix unaligned macros to avoid name clashes (David Mosberger).
- fix /proc/pal/.../vm_info memory attributes (David Mosberger).
- consolidate/replace cpu_is_online() with cpu_online() (Martin Hicks).
- simplify syscalls with force_successful_syscall_return() (from 2.5).
- remove redundant "cpu not responding message".

Note 1:
As part of making SAL error records visible in /proc, I removed the dump of MCA records on the console. A user-level daemon can retrieve and decode the error records. A simple example of such a daemon is available here:

ftp://kernel.org/pub/linux/kernel/people/helgaas/salinfo-0.2.tar.gz

N.B.: The kernel used to clear error records from the SAL log. In the new scheme, it is the user-level daemon's responsibility to clear the records. If there is no daemon, the records won't get cleared, and the firmware log may fill up, preventing future errors from being logged.

Note 2:
I normally use either a gcc-2.96 x86->ia64 cross compiler or a gcc-3.2.3 native compiler, and both work fine for me. Using the unreleased gcc-3.3.1 native compiler, I see test case failures related to signal delivery, so I'd avoid that compiler until this is better understood.

#1 lore raw
Quoted 1 line · Bjorn Helgaas
   ftp://ftp.kernel.org/pub/linux/kernel/ports/ia64/v2.4/linux-2.4.21-ia64-030702.diff.gz

Trivial patch to remove warnings about unused variables and functions befing used before they are defined.

Index: 21.7/arch/ia64/kernel/smpboot.c

arch/ia64/kernel/smpboot.c Thu, 03 Jul 2003 14:34:19 +1000 kaos (linux-2.4/r/c/37_smpboot.c 1.1.3.1.3.1.1.6 644) renamed from arch/ia64/kernel/smpboot.c Sun, 18 May 2003 15:06:40 +1000 kaos (linux-2.4/r/c/37_smpboot.c 1.1.3.1.3.1.1.6 644) +1 -0
@@ -320,6 +320,7 @@ smp_callin (void)
 {
 	int cpuid, phys_id;
 	extern void ia64_init_itm(void);
+	extern void ia64_cpu_local_tick(void);
 
 #ifdef CONFIG_PERFMON
 	extern void pfm_init_percpu(void);

Index: 21.7/arch/ia64/kernel/setup.c

arch/ia64/kernel/setup.c Thu, 03 Jul 2003 14:32:42 +1000 kaos (linux-2.4/r/c/48_setup.c 1.1.3.1.3.1.2.8 644) renamed from arch/ia64/kernel/setup.c Thu, 03 Jul 2003 12:05:08 +1000 kaos (linux-2.4/r/c/48_setup.c 1.1.3.1.3.1.2.8 644) +4 -4
@@ -32,6 +32,10 @@
 #include <linux/ioport.h>
 #include <linux/efi.h>
 
+#ifdef CONFIG_BLK_DEV_RAM
+# include <linux/blk.h>
+#endif
+
 #include <asm/ia32.h>
 #include <asm/page.h>
 #include <asm/machvec.h>
@@ -42,10 +46,6 @@
 #include <asm/smp.h>
 #include <asm/tlb.h>
 
-#ifdef CONFIG_BLK_DEV_RAM
-# include <linux/blk.h>
-#endif
-
 #if defined(CONFIG_SMP) && (IA64_CPU_SIZE > PAGE_SIZE)
 # error "struct cpuinfo_ia64 too big!"
 #endif

Index: 21.7/arch/ia64/kernel/process.c

arch/ia64/kernel/process.c Thu, 03 Jul 2003 14:23:52 +1000 kaos (linux-2.4/r/c/50_process.c 1.1.3.1.3.1.2.2.1.5 644) renamed from arch/ia64/kernel/process.c Thu, 03 Jul 2003 12:05:08 +1000 kaos (linux-2.4/r/c/50_process.c 1.1.3.1.3.1.2.2.1.5 644) +6 -6
@@ -56,12 +56,6 @@ ia64_do_show_stack (struct unw_frame_inf
 }
 
 void
-show_trace_task (struct task_struct *task)
-{
-	show_stack(task);
-}
-
-void
 show_stack (struct task_struct *task)
 {
 	if (!task)
@@ -75,6 +69,12 @@ show_stack (struct task_struct *task)
 }
 
 void
+show_trace_task (struct task_struct *task)
+{
+	show_stack(task);
+}
+
+void
 show_regs (struct pt_regs *regs)
 {
 	unsigned long ip = regs->cr_iip + ia64_psr(regs)->ri;

Index: 21.7/arch/ia64/kernel/perfmon.c

arch/ia64/kernel/perfmon.c Thu, 03 Jul 2003 14:25:23 +1000 kaos (linux-2.4/r/c/51_perfmon.c 1.1.3.2.3.1.1.1.1.4 644) renamed from arch/ia64/kernel/perfmon.c Sun, 18 May 2003 15:06:40 +1000 kaos (linux-2.4/r/c/51_perfmon.c 1.1.3.2.3.1.1.1.1.4 644) +2 -0
@@ -447,7 +447,9 @@ static struct {
  * forward declarations
  */
 static void pfm_reset_pmu(struct task_struct *);
+#ifndef CONFIG_SMP
 static unsigned long pfm_lazy_save_regs (struct task_struct *ta);
+#endif
 
 #if   defined(CONFIG_ITANIUM)
 #include "perfmon_itanium.h"

Index: 21.7/arch/ia64/kernel/pci.c

arch/ia64/kernel/pci.c Thu, 03 Jul 2003 14:50:21 +1000 kaos (linux-2.4/s/c/0_pci.c 1.1.2.1.3.1.1.10 644) renamed from arch/ia64/kernel/pci.c Thu, 03 Jul 2003 12:05:08 +1000 kaos (linux-2.4/s/c/0_pci.c 1.1.2.1.3.1.1.10 644) +0 -3
@@ -390,9 +390,6 @@ pcibios_config_init (void)
 void __init
 pcibios_init (void)
 {
-	int i = 0;
-	struct pci_controller *controller;
-
 #ifdef CONFIG_IA64_MCA
 	ia64_mca_check_errors();    /* For post-failure MCA error logging */
 #endif

Index: 21.7/arch/ia64/kernel/acpi.c

arch/ia64/kernel/acpi.c Thu, 03 Jul 2003 14:49:20 +1000 kaos (linux-2.4/s/c/18_acpi.c 1.1.3.1.3.1.1.1.1.4 644) renamed from arch/ia64/kernel/acpi.c Sun, 18 May 2003 15:06:40 +1000 kaos (linux-2.4/s/c/18_acpi.c 1.1.3.1.3.1.1.1.1.4 644) +0 -1
@@ -179,7 +179,6 @@ acpi_hp_csr_space(acpi_handle obj, u64 *
 	acpi_status status;
 	u8 *data;
 	u32 length;
-	int i;
 
 	status = acpi_find_vendor_resource(obj, &hp_ccsr_descriptor, &data, &length);
 

Index: 21.7/arch/ia64/kernel/salinfo.c

arch/ia64/kernel/salinfo.c Thu, 03 Jul 2003 14:50:01 +1000 kaos (linux-2.4/K/g/22_salinfo.c 1.2 644) renamed from arch/ia64/kernel/salinfo.c Thu, 03 Jul 2003 12:05:08 +1000 kaos (linux-2.4/K/g/22_salinfo.c 1.2 644) +0 -3
@@ -98,9 +98,6 @@ salinfo_log_wakeup(int type)
 static int
 salinfo_event_open(struct inode *inode, struct file *file)
 {
-	struct proc_dir_entry *entry = (struct proc_dir_entry *) inode->u.generic_ip;
-	struct salinfo_event *event = entry->data;
-
 	if (!suser())
 		return -EPERM;
 	return 0;
#2 lore raw
In reply to Bjorn Helgaas
Quoted 1 line · Bjorn Helgaas
   ftp://ftp.kernel.org/pub/linux/kernel/ports/ia64/v2.4/linux-2.4.21-ia64-030702.diff.gz

Make the define for VM_HUGETLB_PAGES the same as 2.5. Using 14 conflicts with XFS on 2.4.

Index: 21.7/include/linux/sysctl.h

include/linux/sysctl.h Mon, 07 Jul 2003 14:46:36 +1000 kaos (linux-2.4/e/b/38_sysctl.h 1.1.5.2.1.1.3.17 644) renamed from include/linux/sysctl.h Thu, 03 Jul 2003 12:05:08 +1000 kaos (linux-2.4/e/b/38_sysctl.h 1.1.5.2.1.1.3.17 644) +1 -1
@@ -144,7 +144,7 @@ enum
 	VM_MAX_MAP_COUNT,	/* int: Maximum number of active map areas */
 	VM_MIN_READAHEAD,    /* Min file readahead */
 	VM_MAX_READAHEAD,    /* Max file readahead */
-	VM_HUGETLB_PAGES	/* Number of available huge pages */
+	VM_HUGETLB_PAGES,	/* int: Number of available Huge Pages */
 };
 
 
author Applied
#3 lore raw
In reply to Bjorn Helgaas
Quoted 11 lines · Keith Owens
Quoted 1 line · Bjorn Helgaas
   ftp://ftp.kernel.org/pub/linux/kernel/ports/ia64/v2.4/linux-2.4.21-ia64-030702.diff.gz

Make the define for VM_HUGETLB_PAGES the same as 2.5. Using 14 conflicts with XFS on 2.4.

Index: 21.7/include/linux/sysctl.h

include/linux/sysctl.h Mon, 07 Jul 2003 14:46:36 +1000 kaos (linux-2.4/e/b/38_sysctl.h 1.1.5.2.1.1.3.17 644) enum · line 148

Quoted 6 lines
include/linux/sysctl.h Mon, 07 Jul 2003 14:46:36 +1000 kaos (linux-2.4/e/b/38_sysctl.h 1.1.5.2.1.1.3.17 644) renamed from include/linux/sysctl.h Thu, 03 Jul 2003 12:05:08 +1000 kaos (linux-2.4/e/b/38_sysctl.h 1.1.5.2.1.1.3.17 644) +1 -1
@@ -144,7 +144,7 @@ enum
 	VM_MAX_MAP_COUNT,	/* int: Maximum number of active map areas */
 	VM_MIN_READAHEAD,    /* Min file readahead */
 	VM_MAX_READAHEAD,    /* Max file readahead */
-	VM_HUGETLB_PAGES	/* Number of available huge pages */
+	VM_HUGETLB_PAGES,	/* int: Number of available Huge Pages */
 };

I applied this for 2.4. Thanks!

author Applied
#4 lore raw
In reply to Bjorn Helgaas
Quoted 6 lines · Keith Owens
Quoted 1 line · Bjorn Helgaas
   ftp://ftp.kernel.org/pub/linux/kernel/ports/ia64/v2.4/linux-2.4.21-ia64-030702.diff.gz

Trivial patch to remove warnings about unused variables and functions befing used before they are defined.

I applied this, thanks!