11 Sep, 2007

1 commit

  • When PTRACE_SYSCALL was used and then PTRACE_DETACH is used, the
    TIF_SYSCALL_TRACE flag is left set on the formerly-traced task. This
    means that when a new tracer comes along and does PTRACE_ATTACH, it's
    possible he gets a syscall tracing stop even though he's never used
    PTRACE_SYSCALL. This happens if the task was in the middle of a system
    call when the second PTRACE_ATTACH was done. The symptom is an
    unexpected SIGTRAP when the tracer thinks that only SIGSTOP should have
    been provoked by his ptrace calls so far.

    A few machines already fixed this in ptrace_disable (i386, ia64, m68k).
    But all other machines do not, and still have this bug. On x86_64, this
    constitutes a regression in IA32 compatibility support.

    Since all machines now use TIF_SYSCALL_TRACE for this, I put the
    clearing of TIF_SYSCALL_TRACE in the generic ptrace_detach code rather
    than adding it to every other machine's ptrace_disable.

    Signed-off-by: Roland McGrath
    Signed-off-by: Linus Torvalds

    Roland McGrath
     

01 Sep, 2007

2 commits

  • This patch cleans up the `enable early console for SKI' patch
    (471e7a44848f467c9b83adc3463d019d2fa8817f), and
    1. potentially allows the gensparse_defconfig to work again.
    (there are other problems running a generic kernel on Ski)
    2. fixes the `console registered twice' problem.
    3. Cleans up the code by moving the `extern hpsim_cons' declaration to
    a new asm/hpsim.h file.

    Thanks to Jes for comments.

    Signed-off-by: Peter Chubb
    Signed-off-by: Tony Luck

    Peter Chubb
     
  • Add additional support for CPU disable on SN platforms.
    Correctly setup the smp_affinity mask for I/O error IRQs.
    Restrict the use of the feature to Altix 4000 and 450 systems
    running with a CPU disable capable PROM, and do not allow disabling
    of CPU 0.

    Signed-off-by: John Keller
    Signed-off-by: Tony Luck

    John Keller
     

29 Aug, 2007

2 commits

  • The pending interrupts can be remaining at boot up time on some
    platform. This will cause spurious interrupts when interrupt is
    enabled for the first time. This patch clears IVR at the CPU
    initialization to eliminate such spurious interrupts.

    Signed-off-by: Kenji Kaneshige
    Signed-off-by: Tony Luck

    Kenji Kaneshige
     
  • Fix handling for spurious interrupts not being mapped to any IRQs.

    Currently, spurious interrupts that are not mapped to any IRQs are
    handled as IRQ 15 (== IA64_SPURIOUS_VECTOR). But it is not proper
    because vector != irq. We need special handlings for such spurious
    interrupts not being mapped to any IRQs.

    Signed-off-by: Kenji Kaneshige
    Signed-off-by: Tony Luck

    Kenji Kaneshige
     

18 Aug, 2007

2 commits

  • When using Ski to debug early startup, it's a bit of a pain not to
    have printk.

    This patch enables the simulated console very early.
    It may be worth conditionalising on the command line... but this is
    enough for now.

    Signed-off-by: Peter Chubb
    Signed-off-by: Tony Luck

    Peter Chubb
     
  • The "ri" field in the processor status register only has defined
    values of 0, 1, 2. Do not let ptrace set this to 3. As with
    other reserved fields in registers we silently discard the value.

    Signed-off-by: Shaohua Li
    Signed-off-by: Tony Luck

    Shaohua Li
     

16 Aug, 2007

1 commit

  • The core cpufreq code doesn't appear to understand returning -EAGAIN
    for the get() function of the cpufreq_driver. If PAL_GET_PSTATE returns
    -1, such as when running on Xen, scaling_cur_freq is happy to return
    4294967285 kHz (ie. (unsigned)-11). The other drivers appear to return
    0 for a failure, and doing so gives me the max frequency from
    scaling_cur_frequency and "" from cpuinfo_cur_frequency. I
    believe that's the desired behavior.

    Signed-off-by: Alex Williamson
    Acked-by: Venkatesh Pallipadi
    Signed-off-by: Tony Luck

    Alex Williamson
     

14 Aug, 2007

5 commits

  • Explicitly put the unwind section into its own program-header. This
    used to be unnecessary (probably because binutils did it for us), but
    with current binutils (e.g., v2.17.50.20070804) we won't get
    the PT_IA_64_UNWIND header without this patch which will break
    unwinding in a debugger and simulators such as Ski.

    Signed-off-by: David Mosberger-Tang
    Signed-off-by: Tony Luck

    David Mosberger-Tang
     
  • Add NOTES to linker script such that the kernel can be built with
    recent versions of binutils. Without this patch, final link fails
    with this error:

    ld: .tmp_vmlinux1: section `.text' can't be allocated in segment 0
    ld: final link failed: Bad value

    This error is due to the fact that the --build-id option is used
    with newer linkers to include a .notes section on the kernel, but
    without the NOTES macro, that section won't be included in the kernel
    which then leads to the above error message.

    Signed-off-by: David Mosberger-Tang
    Signed-off-by: Tony Luck

    David Mosberger-Tang
     
  • Use local_vector_to_irq() instead of looping through all NR_IRQS.
    This avoids registering the CPE handler on multiple irqs. Only
    register if the irq is valid. If no valid irq is found, print an
    error message and set up polling.

    Signed-off-by: Russ Anderson
    Signed-off-by: Tony Luck

    Russ Anderson
     
  • Add base support for implementing platform_irq_to_vector(), and
    then use it on SN2.

    Signed-off-by: Kenji Kaneshige
    Acked-by: John Keller
    Signed-off-by: Tony Luck

    Kenji Kaneshige
     
  • While sending interrupts to a cpu to repeatedly wake a thread, on occasion
    that thread will take a full timer tick cycle (4002 usec in my case)
    to wakeup.

    The problem concerns a race condition in the code around the safe_halt()
    call in the default_idle() routine. Setting 'nohalt' on the kernel
    command line causes the long wakeups to disappear.

    void
    default_idle (void)
    {
    local_irq_enable();
    while (!need_resched()) {
    --> if (can_do_pal_halt)
    --> safe_halt();
    else

    A timer tick could arrive between the check for !need_resched and the
    actual call to safe_halt() (which does a pal call to PAL_HALT_LIGHT).
    By the time the timer tick completes, a thread that might now need to run
    could get held up for as long as a timer tick waiting for the halted cpu.

    I'm proposing that we disable irq's and check need_resched again before
    calling safe_halt(). Does anyone see any problem with this approach?

    Signed-off-by: Dimitri Sivanich
    Signed-off-by: Tony Luck

    Dimitri Sivanich
     

02 Aug, 2007

3 commits

  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
    [IA64] ITC: Reduce rating for ITC clock if ITCs are drifty
    [IA64] SN2: Fix up sn2_rtc clock
    [IA64] Fix wrong access to irq_desc[] in iosapic_register_intr().
    [IA64] Fix possible race in destroy_and_reserve_irq()
    [IA64] Fix registered interrupt check
    [IA64] Remove a few duplicate includes
    [IA64] Allow smp_call_function_single() to current cpu
    [IA64] fix a few section mismatch warnings

    Linus Torvalds
     
  • Make sure to reduce the rating of the ITC clock if ITCs are drifty. If they
    are drifting then we have not synchronized the ITC values, nor are we doing
    the jitter compensation (useless since drift may increase the differentials
    arbitrarily).

    Without this patch it is possible that the ITC clock becomes selected as
    the system clock on systems with drifty ITCs which will result in
    nanosleep hanging.

    One can still select the itc clock manually on such systems via

    clocksource=itc

    (Produces nice hangs on SGI Altix.)

    Signed-off-by: Christoph Lameter
    Signed-off-by: Tony Luck

    Christoph Lameter
     
  • In error path we must unlock irq_desc[irq].lock before we change
    'irq'.

    Signed-off-by: Kenji Kaneshige
    Signed-off-by: Tony Luck

    Kenji Kaneshige
     

01 Aug, 2007

1 commit

  • Remove unused TIF_NOTIFY_RESUME flag for all processor architectures. The
    flag was not used excecpt on IA-64 where the patch replaces it with
    TIF_PERFMON_WORK.

    Signed-off-by: stephane eranian
    Cc:
    Cc: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephane Eranian
     

31 Jul, 2007

5 commits

  • Currently, destroy_and_reserve_irq() sets irq_status[irq] UNUSED using
    clear_irq_vector() and sets irq_status[irq] RSVD using reserve_irq().
    But there is a race window because vector_lock is once released between
    them. This patch fixes this race window.

    Signed-off-by: Kenji Kaneshige
    Signed-off-by: Tony Luck

    Kenji Kaneshige
     
  • Fix the problem that interrupts are not initialized correctly at PCI
    hotplug or driver reloading time.

    By vector domain change, the iosapic_rte_info structure was changed to
    be on the iosapic_intr_info[irq].rtes list even after the interrupts
    are unregistered. So iosapic_intr_info[irq].rtes list must not be
    checked to see if there are registered interrupts (RTEs) on the
    irq. We must check iosapic_intr_info[irq].count counter instead.

    Signed-off-by: Kenji Kaneshige
    Signed-off-by: Tony Luck

    Kenji Kaneshige
     
  • This patch removes a few duplicate includes from arch/ia64/

    Acked-by: Jes Sorensen
    Signed-off-by: Jesper Juhl
    Signed-off-by: Tony Luck

    Jesper Juhl
     
  • This removes the requirement for callers to get_cpu() to check in simple
    cases. i386 and x86_64 already received a similar treatment.

    Signed-off-by: Avi Kivity
    Signed-off-by: Tony Luck

    Avi Kivity
     
  • Fix the following section mismatch warnings:

    WARNING: vmlinux.o(.text+0x41902): Section mismatch: reference to .init.text:__alloc_bootmem (between 'ia64_mca_cpu_init' and 'ia64_do_tlb_purge')
    WARNING: vmlinux.o(.text+0x49222): Section mismatch: reference to .init.text:__alloc_bootmem (between 'register_intr' and 'iosapic_register_intr')
    WARNING: vmlinux.o(.text+0x62beb2): Section mismatch: reference to .init.text:__alloc_bootmem_node (between 'hubdev_init_node' and 'cnodeid_get_geoid')

    Signed-off-by: Sam Ravnborg
    Signed-off-by: Tony Luck

    Sam Ravnborg
     

30 Jul, 2007

1 commit

  • Remove fs.h from mm.h. For this,
    1) Uninline vma_wants_writenotify(). It's pretty huge anyway.
    2) Add back fs.h or less bloated headers (err.h) to files that need it.

    As result, on x86_64 allyesconfig, fs.h dependencies cut down from 3929 files
    rebuilt down to 3444 (-12.3%).

    Cross-compile tested without regressions on my two usual configs and (sigh):

    alpha arm-mx1ads mips-bigsur powerpc-ebony
    alpha-allnoconfig arm-neponset mips-capcella powerpc-g5
    alpha-defconfig arm-netwinder mips-cobalt powerpc-holly
    alpha-up arm-netx mips-db1000 powerpc-iseries
    arm arm-ns9xxx mips-db1100 powerpc-linkstation
    arm-assabet arm-omap_h2_1610 mips-db1200 powerpc-lite5200
    arm-at91rm9200dk arm-onearm mips-db1500 powerpc-maple
    arm-at91rm9200ek arm-picotux200 mips-db1550 powerpc-mpc7448_hpc2
    arm-at91sam9260ek arm-pleb mips-ddb5477 powerpc-mpc8272_ads
    arm-at91sam9261ek arm-pnx4008 mips-decstation powerpc-mpc8313_rdb
    arm-at91sam9263ek arm-pxa255-idp mips-e55 powerpc-mpc832x_mds
    arm-at91sam9rlek arm-realview mips-emma2rh powerpc-mpc832x_rdb
    arm-ateb9200 arm-realview-smp mips-excite powerpc-mpc834x_itx
    arm-badge4 arm-rpc mips-fulong powerpc-mpc834x_itxgp
    arm-carmeva arm-s3c2410 mips-ip22 powerpc-mpc834x_mds
    arm-cerfcube arm-shannon mips-ip27 powerpc-mpc836x_mds
    arm-clps7500 arm-shark mips-ip32 powerpc-mpc8540_ads
    arm-collie arm-simpad mips-jazz powerpc-mpc8544_ds
    arm-corgi arm-spitz mips-jmr3927 powerpc-mpc8560_ads
    arm-csb337 arm-trizeps4 mips-malta powerpc-mpc8568mds
    arm-csb637 arm-versatile mips-mipssim powerpc-mpc85xx_cds
    arm-ebsa110 i386 mips-mpc30x powerpc-mpc8641_hpcn
    arm-edb7211 i386-allnoconfig mips-msp71xx powerpc-mpc866_ads
    arm-em_x270 i386-defconfig mips-ocelot powerpc-mpc885_ads
    arm-ep93xx i386-up mips-pb1100 powerpc-pasemi
    arm-footbridge ia64 mips-pb1500 powerpc-pmac32
    arm-fortunet ia64-allnoconfig mips-pb1550 powerpc-ppc64
    arm-h3600 ia64-bigsur mips-pnx8550-jbs powerpc-prpmc2800
    arm-h7201 ia64-defconfig mips-pnx8550-stb810 powerpc-ps3
    arm-h7202 ia64-gensparse mips-qemu powerpc-pseries
    arm-hackkit ia64-sim mips-rbhma4200 powerpc-up
    arm-integrator ia64-sn2 mips-rbhma4500 s390
    arm-iop13xx ia64-tiger mips-rm200 s390-allnoconfig
    arm-iop32x ia64-up mips-sb1250-swarm s390-defconfig
    arm-iop33x ia64-zx1 mips-sead s390-up
    arm-ixp2000 m68k mips-tb0219 sparc
    arm-ixp23xx m68k-amiga mips-tb0226 sparc-allnoconfig
    arm-ixp4xx m68k-apollo mips-tb0287 sparc-defconfig
    arm-jornada720 m68k-atari mips-workpad sparc-up
    arm-kafa m68k-bvme6000 mips-wrppmc sparc64
    arm-kb9202 m68k-hp300 mips-yosemite sparc64-allnoconfig
    arm-ks8695 m68k-mac parisc sparc64-defconfig
    arm-lart m68k-mvme147 parisc-allnoconfig sparc64-up
    arm-lpd270 m68k-mvme16x parisc-defconfig um-x86_64
    arm-lpd7a400 m68k-q40 parisc-up x86_64
    arm-lpd7a404 m68k-sun3 powerpc x86_64-allnoconfig
    arm-lubbock m68k-sun3x powerpc-cell x86_64-defconfig
    arm-lusl7200 mips powerpc-celleb x86_64-up
    arm-mainstone mips-atlas powerpc-chrp32

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     

27 Jul, 2007

6 commits


26 Jul, 2007

7 commits


25 Jul, 2007

1 commit


21 Jul, 2007

3 commits

  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
    [IA64] Prevent people from directly including .
    [IA64] remove time interpolator
    [IA64] Convert to generic timekeeping/clocksource
    [IA64] refresh some config files for 64K pagesize
    [IA64] Delete iosapic_free_rte()
    [IA64] fallocate system call
    [IA64] Enable percpu vector domain for IA64_DIG
    [IA64] Enable percpu vector domain for IA64_GENERIC
    [IA64] Support irq migration across domain
    [IA64] Add support for vector domain
    [IA64] Add mapping table between irq and vector
    [IA64] Check if irq is sharable
    [IA64] Fix invalid irq vector assumption for iosapic
    [IA64] Use dynamic irq for iosapic interrupts
    [IA64] Use per iosapic lock for indirect iosapic register access
    [IA64] Cleanup lock order in iosapic_register_intr
    [IA64] Remove duplicated members in iosapic_rte_info
    [IA64] Remove block structure for locking in iosapic.c

    Linus Torvalds
     
  • Tony Luck
     
  • This is a merge of Peter Keilty's initial patch (which was
    revived by Bob Picco) for this with Hidetoshi Seto's fixes
    and scaling improvements.

    Acked-by: Bob Picco
    Signed-off-by: Tony Luck

    Tony Luck