1. 27 3月, 2006 15 次提交
  2. 23 3月, 2006 3 次提交
  3. 22 3月, 2006 1 次提交
  4. 16 3月, 2006 4 次提交
    • J
      [PATCH] powerpc: properly configure DDR/P5IOC children devs · 92eb4602
      John Rose 提交于
      The dynamic add path for PCI Host Bridges can fail to configure children
      adapters under P5IOC controllers.  It fails to properly fixup bus/device
      resources, and it fails to properly enable EEH.  Both of these steps
      need to occur before any children devices are enabled in
      pci_bus_add_devices().
      Signed-off-by: NJohn Rose <johnrose@austin.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      92eb4602
    • O
      [PATCH] powerpc: remove duplicate EXPORT_SYMBOLS · 920573bd
      Olaf Hering 提交于
      remove warnings when building a 64bit kernel.
      smp_call_function triggers also with 32bit kernel.
      
      WARNING: vmlinux: duplicate symbol 'smp_call_function' previous definition was in vmlinux
      arch/powerpc/kernel/ppc_ksyms.c:164:EXPORT_SYMBOL(smp_call_function);
      arch/powerpc/kernel/smp.c:300:EXPORT_SYMBOL(smp_call_function);
      
      WARNING: vmlinux: duplicate symbol 'ioremap' previous definition was in vmlinux
      arch/powerpc/kernel/ppc_ksyms.c:113:EXPORT_SYMBOL(ioremap);
      arch/powerpc/mm/pgtable_64.c:321:EXPORT_SYMBOL(ioremap);
      
      WARNING: vmlinux: duplicate symbol '__ioremap' previous definition was in vmlinux
      arch/powerpc/kernel/ppc_ksyms.c:117:EXPORT_SYMBOL(__ioremap);
      arch/powerpc/mm/pgtable_64.c:322:EXPORT_SYMBOL(__ioremap);
      
      WARNING: vmlinux: duplicate symbol 'iounmap' previous definition was in vmlinux
      arch/powerpc/kernel/ppc_ksyms.c:118:EXPORT_SYMBOL(iounmap);
      arch/powerpc/mm/pgtable_64.c:323:EXPORT_SYMBOL(iounmap);
      Signed-off-by: NOlaf Hering <olh@suse.de>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      920573bd
    • M
      [PATCH] powerpc: RTC memory corruption · 0e8ed479
      Michael Neuling 提交于
      We should be memset'ing the data we are pointing to, not the pointer
      itself.  This is in an error path so we probably don't hit it much.
      Signed-off-by: NMichael Neuling <mikey@neuling.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      0e8ed479
    • P
      powerpc: Fix problem with time going backwards · 0a45d449
      Paul Mackerras 提交于
      The recent changes to keep gettimeofday in sync with xtime had the side
      effect that it was occasionally possible for the time reported by
      gettimeofday to go back by a microsecond.  There were two reasons:
      (1) when we recalculated the offsets used by gettimeofday every 2^31
      timebase ticks, we lost an accumulated fractional microsecond, and
      (2) because the update is done some time after the notional start of
      jiffy, if ntp is slowing the clock, it is possible to see time go backwards
      when the timebase factor gets reduced.
      
      This fixes it by (a) slowing the gettimeofday clock by about 1us in
      2^31 timebase ticks (a factor of less than 1 in 3.7 million), and (b)
      adjusting the timebase offsets in the rare case that the gettimeofday
      result could possibly go backwards (i.e. when ntp is slowing the clock
      and the timer interrupt is late).  In this case the adjustment will
      reduce to zero eventually because of (a).
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      0a45d449
  5. 08 3月, 2006 1 次提交
    • P
      powerpc: Fix various syscall/signal/swapcontext bugs · 1bd79336
      Paul Mackerras 提交于
      A careful reading of the recent changes to the system call entry/exit
      paths revealed several problems, plus some things that could be
      simplified and improved:
      
      * 32-bit wasn't testing the _TIF_NOERROR bit in the syscall fast exit
        path, so it was only doing anything with it once it saw some other
        bit being set.  In other words, the noerror behaviour would apply to
        the next system call where we had to reschedule or deliver a signal,
        which is not necessarily the current system call.
      
      * 32-bit wasn't doing the call to ptrace_notify in the syscall exit
        path when the _TIF_SINGLESTEP bit was set.
      
      * _TIF_RESTOREALL was in both _TIF_USER_WORK_MASK and
        _TIF_PERSYSCALL_MASK, which is odd since _TIF_RESTOREALL is only set
        by system calls.  I took it out of _TIF_USER_WORK_MASK.
      
      * On 64-bit, _TIF_RESTOREALL wasn't causing the non-volatile registers
        to be restored (unless perhaps a signal was delivered or the syscall
        was traced or single-stepped).  Thus the non-volatile registers
        weren't restored on exit from a signal handler.  We probably got
        away with it mostly because signal handlers written in C wouldn't
        alter the non-volatile registers.
      
      * On 32-bit I simplified the code and made it more like 64-bit by
        making the syscall exit path jump to ret_from_except to handle
        preemption and signal delivery.
      
      * 32-bit was calling do_signal unnecessarily when _TIF_RESTOREALL was
        set - but I think because of that 32-bit was actually restoring the
        non-volatile registers on exit from a signal handler.
      
      * I changed the order of enabling interrupts and saving the
        non-volatile registers before calling do_syscall_trace_leave; now we
        enable interrupts first.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      1bd79336
  6. 05 3月, 2006 1 次提交
  7. 03 3月, 2006 3 次提交
  8. 01 3月, 2006 1 次提交
  9. 28 2月, 2006 1 次提交
  10. 27 2月, 2006 1 次提交
  11. 25 2月, 2006 1 次提交
  12. 24 2月, 2006 6 次提交
    • P
      powerpc: Implement accurate task and CPU time accounting · c6622f63
      Paul Mackerras 提交于
      This implements accurate task and cpu time accounting for 64-bit
      powerpc kernels.  Instead of accounting a whole jiffy of time to a
      task on a timer interrupt because that task happened to be running at
      the time, we now account time in units of timebase ticks according to
      the actual time spent by the task in user mode and kernel mode.  We
      also count the time spent processing hardware and software interrupts
      accurately.  This is conditional on CONFIG_VIRT_CPU_ACCOUNTING.  If
      that is not set, we do tick-based approximate accounting as before.
      
      To get this accurate information, we read either the PURR (processor
      utilization of resources register) on POWER5 machines, or the timebase
      on other machines on
      
      * each entry to the kernel from usermode
      * each exit to usermode
      * transitions between process context, hard irq context and soft irq
        context in kernel mode
      * context switches.
      
      On POWER5 systems with shared-processor logical partitioning we also
      read both the PURR and the timebase at each timer interrupt and
      context switch in order to determine how much time has been taken by
      the hypervisor to run other partitions ("steal" time).  Unfortunately,
      since we need values of the PURR on both threads at the same time to
      accurately calculate the steal time, and since we can only calculate
      steal time on a per-core basis, the apportioning of the steal time
      between idle time (time which we ceded to the hypervisor in the idle
      loop) and actual stolen time is somewhat approximate at the moment.
      
      This is all based quite heavily on what s390 does, and it uses the
      generic interfaces that were added by the s390 developers,
      i.e. account_system_time(), account_user_time(), etc.
      
      This patch doesn't add any new interfaces between the kernel and
      userspace, and doesn't change the units in which time is reported to
      userspace by things such as /proc/stat, /proc/<pid>/stat, getrusage(),
      times(), etc.  Internally the various task and cpu times are stored in
      timebase units, but they are converted to USER_HZ units (1/100th of a
      second) when reported to userspace.  Some precision is therefore lost
      but there should not be any accumulating error, since the internal
      accumulation is at full precision.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      c6622f63
    • A
      [PATCH] powerpc64: remove broken/bitrotted HMT support · f1870f77
      Anton Blanchard 提交于
      HMT support is currently broken and needs to be reworked to play nicely
      with the SMT scheduler. Remove the bit rotten bits for the time being.
      
      I also updated an incorrect comment, we enter __secondary_hold with the
      physical cpu id in r3.
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f1870f77
    • A
      [PATCH] powerpc: Fix runlatch performance issues · cb2c9b27
      Anton Blanchard 提交于
      The runlatch SPR can take a lot of time to write. My original runlatch
      code would set it on every exception entry even though most of the time
      this was not required. It would also continually set it in the idle
      loop, which is an issue on an SMT capable processor.
      
      Now we cache the runlatch value in a threadinfo bit, and only check for
      it in decrementer and hardware interrupt exceptions as well as the idle
      loop. Boot on POWER3, POWER5 and iseries, and compile tested on pmac32.
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      cb2c9b27
    • A
      [PATCH] powerpc: fix altivec_unavailable_exception Oopses · f1434a48
      Alan Curry 提交于
      altivec_unavailable_exception is called without setting r3... it looks like
      the r3 that actually gets passed in as struct pt_regs *regs is the
      undisturbed value of r3 at the time the altivec instruction was encountered.
      The user actually gets to choose the pt_regs printed in the Oops!
      
      This fixes the oops by passing the correct pt_regs pointer to
      altivec_unavailable_exception.
      Signed-off-by: NAlan Curry <pacman@TheWorld.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f1434a48
    • H
      [PATCH] powerpc: Trivial fix to set the proper timeout value for kdump · 01aaed9d
      Haren Myneni 提交于
      The panic CPU is waiting forever due to some large timeout value if some
      CPU is not responding to an IPI.
      This patch fixes the problem - the maximum waiting period will be
      10 seconds and then the kdump boot will go ahead.
      Signed-off-by: NHaren Myneni <haren@us.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      01aaed9d
    • M
      [PATCH] powerpc: Only calculate htab_size in one place for kexec · 337a7128
      Michael Ellerman 提交于
      For kexec we need to know the size of the MMU hash table.
      
      Currently we calculate the size once in the htab code, and then twice more in
      the kexec code, once using htab_hash_mask and once using ppc64_pft_size.
      On some machines the ppc64_pft_size calculation is broken because
      ppc64_pft_size is not set.
      
      So we need to fix the second calculation, but better still we should just
      calculate the size once and use it everywhere else.
      
      Tested on Power5 LPAR, Power4 non-LPAR and Power3.
      Signed-off-by: NMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      337a7128
  13. 20 2月, 2006 2 次提交