1. 26 4月, 2013 1 次提交
    • N
      powerpc/pseries: Expose pseries devicetree_update() · 762ec157
      Nathan Fontenot 提交于
      Newer firmware on Power systems can transparently reassign platform resources
      (CPU and Memory) in use. For instance, if a processor or memory unit is
      predicted to fail, the platform may transparently move the processing to an
      equivalent unused processor or the memory state to an equivalent unused
      memory unit. However, reassigning resources across NUMA boundaries may alter
      the performance of the partition. When such reassignment is necessary, the
      Platform Resource Reassignment Notification (PRRN) option provides a
      mechanism to inform the Linux kernel of changes to the NUMA affinity of
      its platform resources.
      
      When rtasd receives a PRRN event, it needs to make a series of RTAS
      calls (ibm,update-nodes and ibm,update-properties) to retrieve the
      updated device tree information. These calls are already handled in the
      pseries_devicetree_update() routine used in partition migration.
      
      This patch exposes pseries_devicetree_update() to make it accessible
      to other pseries routines, this patch also updates pseries_devicetree_update()
      to take a 32-bit scope parameter. The scope value, which was previously hard
      coded to 1 for partition migration, is used for the RTAS calls
      ibm,update-nodes/properties to update the device tree.
      Signed-off-by: NNathan Fontenot <nfont@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      762ec157
  2. 15 11月, 2012 1 次提交
  3. 29 3月, 2012 1 次提交
  4. 28 3月, 2012 2 次提交
  5. 08 12月, 2011 1 次提交
    • S
      powerpc: Punch a hole in /dev/mem for librtas · 8a3e3d31
      sukadev@linux.vnet.ibm.com 提交于
      With CONFIG_STRICT_DEVMEM=y, user space cannot read any part of /dev/mem.
      Since this breaks librtas, punch a hole in /dev/mem to allow access to the
      rmo_buffer that librtas needs.
      
      Anton Blanchard reported the problem and helped with the fix.
      
      A quick test for this patch:
      
             # cat /proc/rtas/rmo_buffer
             000000000f190000 10000
      
             # python -c "print 0x000000000f190000 / 0x10000"
             3865
      
             # dd if=/dev/mem of=/tmp/foo count=1 bs=64k skip=3865
             1+0 records in
             1+0 records out
             65536 bytes (66 kB) copied, 0.000205235 s, 319 MB/s
      
             # dd if=/dev/mem of=/tmp/foo
             dd: reading `/dev/mem': Operation not permitted
             0+0 records in
             0+0 records out
             0 bytes (0 B) copied, 0.00022519 s, 0.0 kB/s
      Signed-off-by: NSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      8a3e3d31
  6. 25 11月, 2011 1 次提交
    • R
      powerpc/pseries: Cancel RTAS event scan before firmware flash · df17f56d
      Ravi K. Nittala 提交于
      The RTAS firmware flash update is conducted using an RTAS call that is
      serialized by lock_rtas() which uses spin_lock. While the flash is in
      progress, rtasd performs scan for any RTAS events that are generated by
      the system. rtasd keeps scanning for the RTAS events generated on the
      machine. This is performed via workqueue mechanism. The rtas_event_scan()
      also uses an RTAS call to scan the events, eventually trying to acquire
      the spin_lock before issuing the request.
      
      The flash update takes a while to complete and during this time, any other
      RTAS call has to wait. In this case, rtas_event_scan() waits for a long time
      on the spin_lock resulting in a soft lockup.
      
      Fix: Just before the flash update is performed, the queued rtas_event_scan()
      work item is cancelled from the work queue so that there is no other RTAS
      call issued while the flash is in progress. After the flash completes, the
      system reboots and the rtas_event_scan() is rescheduled.
      Signed-off-by: NSuzuki Poulose <suzuki@in.ibm.com>
      Signed-off-by: NRavi Nittala <ravi.nittala@in.ibm.com>
      Reported-by: NDivya Vikas <divya.vikas@in.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      df17f56d
  7. 20 9月, 2011 1 次提交
  8. 06 5月, 2011 1 次提交
  9. 13 10月, 2010 1 次提交
  10. 09 7月, 2010 2 次提交
  11. 15 12月, 2009 1 次提交
  12. 26 6月, 2009 2 次提交
    • B
      powerpc: Use one common impl. of RTAS timebase sync and use raw spinlock · c4007a2f
      Benjamin Herrenschmidt 提交于
      Several platforms use their own copy of what is essentially the same code,
      using RTAS to synchronize the timebases when bringing up new CPUs. This
      moves it all into a single common implementation and additionally
      turns the spinlock into a raw spinlock since the former can rely on
      the timebase not being frozen when spinlock debugging is enabled, and finally
      masks interrupts while the timebase is disabled.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      c4007a2f
    • B
      powerpc/rtas: Turn rtas lock into a raw spinlock · f97bb36f
      Benjamin Herrenschmidt 提交于
      RTAS currently uses a normal spinlock. However it can be called from
      contexts where this is not necessarily a good idea. For example, it
      can be called while syncing timebases, with the core timebase being
      frozen. Unfortunately, that will deadlock in case of lock contention
      when spinlock debugging is enabled as the spin lock debugging code
      will try to use __delay() which ... relies on the timebase being
      enabled.
      
      Also RTAS can be used in some low level IRQ handling code path so it
      may as well be a raw spinlock for -rt sake.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      f97bb36f
  13. 07 4月, 2009 1 次提交
  14. 13 1月, 2009 1 次提交
  15. 16 12月, 2008 1 次提交
  16. 04 8月, 2008 1 次提交
  17. 03 12月, 2007 1 次提交
  18. 20 11月, 2007 1 次提交
    • L
      [POWERPC] Fix RTAS os-term usage on kernel panic · a2b51812
      Linas Vepstas 提交于
      The rtas_os_term() routine was being called at the wrong time.
      The actual rtas call "os-term" will not ever return, and so
      calling it from the panic notifier is too early.  Instead,
      call it from the machine_reset() call.
      
      This splits the rtas_os_term() routine into two: one part to capture
      the kernel panic message, invoked during the panic notifier, and
      another part that is invoked during machine_reset().
      
      Prior to this patch, the os-term call was never being made,
      because panic_timeout was always non-zero.  Calling os-term
      helps keep the hypervisor happy!  We have to keep the hypervisor
      happy to avoid service, dump and error reporting problems.
      Signed-off-by: NLinas Vepstas <linas@austin.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      a2b51812
  19. 08 12月, 2006 2 次提交
  20. 04 12月, 2006 1 次提交
  21. 25 8月, 2006 1 次提交
  22. 08 8月, 2006 1 次提交
    • H
      [POWERPC] Fix might-sleep warning on removing cpus · 81b73dd9
      Haren Myneni 提交于
      Noticing the following might_sleep warning (dump_stack()) during kdump
      testing when CONFIG_DEBUG_SPINLOCK_SLEEP is enabled. All secondary CPUs
      will be calling rtas_set_indicator with interrupts disabled to remove
      them from global interrupt queue.
      
      BUG: sleeping function called from invalid context at
      arch/powerpc/kernel/rtas.c:463
      in_atomic():1, irqs_disabled():1
      Call Trace:
      [C00000000FFFB970] [C000000000010234] .show_stack+0x68/0x1b0 (unreliable)
      [C00000000FFFBA10] [C000000000059354] .__might_sleep+0xd8/0xf4
      [C00000000FFFBA90] [C00000000001D1BC] .rtas_busy_delay+0x20/0x5c
      [C00000000FFFBB20] [C00000000001D8A8] .rtas_set_indicator+0x6c/0xcc
      [C00000000FFFBBC0] [C000000000048BF4] .xics_teardown_cpu+0x118/0x134
      [C00000000FFFBC40] [C00000000004539C]
      .pseries_kexec_cpu_down_xics+0x74/0x8c
      [C00000000FFFBCC0] [C00000000002DF08] .crash_ipi_callback+0x15c/0x188
      [C00000000FFFBD50] [C0000000000296EC] .smp_message_recv+0x84/0xdc
      [C00000000FFFBDC0] [C000000000048E08] .xics_ipi_dispatch+0xf0/0x130
      [C00000000FFFBE50] [C00000000009EF10] .handle_IRQ_event+0x7c/0xf8
      [C00000000FFFBF00] [C0000000000A0A14] .handle_percpu_irq+0x90/0x10c
      [C00000000FFFBF90] [C00000000002659C] .call_handle_irq+0x1c/0x2c
      [C00000000058B9C0] [C00000000000CA10] .do_IRQ+0xf4/0x1a4
      [C00000000058BA50] [C0000000000044EC] hardware_interrupt_entry+0xc/0x10
       --- Exception: 501 at .plpar_hcall_norets+0x14/0x1c
         LR = .pseries_dedicated_idle_sleep+0x190/0x1d4
      [C00000000058BD40] [C00000000058BDE0] 0xc00000000058bde0 (unreliable)
      [C00000000058BDF0] [C00000000001270C] .cpu_idle+0x10c/0x1e0
      [C00000000058BE70] [C000000000009274] .rest_init+0x44/0x5c
      
      To fix this issue, rtas_set_indicator_fast() is added so that will not
      wait for RTAS 'busy' delay and this new function is used for kdump (in
      xics_teardown_cpu()) and for CPU hotplug ( xics_migrate_irqs_away() and
      xics_setup_cpu()).
      
      Note that the platform architecture spec says that set-indicator
      on the indicator we're using here is not permitted to return the
      busy or extended busy status codes.
      Signed-off-by: NHaren Myneni <haren@us.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      81b73dd9
  23. 28 6月, 2006 1 次提交
  24. 15 6月, 2006 1 次提交
  25. 09 6月, 2006 1 次提交
  26. 11 1月, 2006 1 次提交
  27. 09 1月, 2006 1 次提交
  28. 03 11月, 2005 1 次提交
  29. 01 11月, 2005 1 次提交
  30. 19 10月, 2005 1 次提交
    • P
      powerpc: Merge machdep.h · 143a1dec
      Paul Mackerras 提交于
      A few things change for consistency between ppc32 and ppc64:
      idle functions return void; *_get_boot_time functions return
      unsigned long (i.e. time_t) rather than filling in a struct rtc_time
      (since that's useful to the callers and easier for pmac to
      generate); *_get_rtc_time and *_set_rtc_time functions take
      a struct rtc_time; irq_canonicalize is gone; nvram_sync returns
      void.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      143a1dec
  31. 06 10月, 2005 1 次提交
    • P
      powerpc: Merge in the ppc64 version of the prom code. · 9b6b563c
      Paul Mackerras 提交于
      This brings in the ppc64 version of prom_init.c, prom.c and btext.c
      and makes them work for ppc32.  This also brings in the new calling
      convention, where the first entry to the kernel (with r5 != 0) goes
      to the prom_init code, which then restarts from the beginning (with
      r5 == 0) after it has done its stuff.
      
      For now this also brings in the ppc32 version of setup.c.  It also
      merges lmb.h.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      9b6b563c
  32. 23 6月, 2005 2 次提交
  33. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4