1. 27 6月, 2013 1 次提交
  2. 26 4月, 2013 1 次提交
  3. 17 4月, 2013 4 次提交
  4. 14 2月, 2013 1 次提交
  5. 08 1月, 2013 2 次提交
    • H
      s390/irq: remove split irq fields from /proc/stat · 420f42ec
      Heiko Carstens 提交于
      Now that irq sum accounting for /proc/stat's "intr" line works again we
      have the oddity that the sum field (first field) contains only the sum
      of the second (external irqs) and third field (I/O interrupts).
      The reason for that is that these two fields are already sums of all other
      fields. So if we would sum up everything we would count every interrupt
      twice.
      This is broken since the split interrupt accounting was merged two years
      ago: 052ff461 "[S390] irq: have detailed
      statistics for interrupt types".
      To fix this remove the split interrupt fields from /proc/stat's "intr"
      line again and only have them in /proc/interrupts.
      
      This restores the old behaviour, seems to be the only sane fix and mimics
      a behaviour from other architectures where /proc/interrupts also contains
      more than /proc/stat's "intr" line does.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      420f42ec
    • H
      s390/irq: enable irq sum accounting for /proc/stat again · add9bde2
      Heiko Carstens 提交于
      For more than two years, since f2c66cd8
      "/proc/stat: scalability of irq num per cpu" the output of /proc/stat is
      broken.
      The first field in the "intr" line should contain the sum of all interrupts,
      however since the above mentioned change it is always zero.
      
      The reason for that is that a per cpu irq sum variable had been introduced
      which got incremented when calling kstat_incr_irqs_this_cpu(). However
      on s390 we directly incremented only the per cpu per irq counter by accessing
      the array element via kstat_cpu(smp_processor_id()).irqs[...].
      So fix this and use the kstat_incr_irqs_this_cpu() wrapper which increments
      both: the per cpu per irq counter and the per cpu irq sum counter.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      add9bde2
  6. 26 9月, 2012 1 次提交
  7. 20 7月, 2012 1 次提交
    • H
      s390/comments: unify copyright messages and remove file names · a53c8fab
      Heiko Carstens 提交于
      Remove the file name from the comment at top of many files. In most
      cases the file name was wrong anyway, so it's rather pointless.
      
      Also unify the IBM copyright statement. We did have a lot of sightly
      different statements and wanted to change them one after another
      whenever a file gets touched. However that never happened. Instead
      people start to take the old/"wrong" statements to use as a template
      for new files.
      So unify all of them in one go.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      a53c8fab
  8. 16 5月, 2012 1 次提交
  9. 11 3月, 2012 1 次提交
    • M
      [S390] rework idle code · 4c1051e3
      Martin Schwidefsky 提交于
      Whenever the cpu loads an enabled wait PSW it will appear as idle to the
      underlying host system. The code in default_idle calls vtime_stop_cpu
      which does the necessary voodoo to get the cpu time accounting right.
      The udelay code just loads an enabled wait PSW. To correct this rework
      the vtime_stop_cpu/vtime_start_cpu logic and move the difficult parts
      to entry[64].S, vtime_stop_cpu can now be called from anywhere and
      vtime_start_cpu is gone. The correction of the cpu time during wakeup
      from an enabled wait PSW is done with a critical section in entry[64].S.
      As vtime_start_cpu is gone, s390_idle_check can be removed as well.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      4c1051e3
  10. 30 10月, 2011 2 次提交
  11. 26 9月, 2011 1 次提交
  12. 16 3月, 2011 2 次提交
  13. 17 12月, 2010 1 次提交
    • C
      drivers: Replace __get_cpu_var with __this_cpu_read if not used for an address. · 4a6f4fe8
      Christoph Lameter 提交于
      __get_cpu_var() can be replaced with this_cpu_read and will then use a single
      read instruction with implied address calculation to access the correct per cpu
      instance.
      
      However, the address of a per cpu variable passed to __this_cpu_read() cannot be
      determed (since its an implied address conversion through segment prefixes).
      Therefore apply this only to uses of __get_cpu_var where the addres of the
      variable is not used.
      
      V3->V4:
      	- Move one instance of this_cpu_inc_return to a later patch
      	  so that this one can go in without percpu infrastructrure
      	  changes.
      
      Sedat: fixed compile failure caused by an extra ')'.
      
      Cc: Neil Horman <nhorman@tuxdriver.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Sedat Dilek <sedat.dilek@gmail.com>
      Acked-by: NH. Peter Anvin <hpa@zytor.com>
      Signed-off-by: NChristoph Lameter <cl@linux.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      4a6f4fe8
  14. 17 5月, 2010 1 次提交
    • M
      [S390] idle time accounting vs. machine checks · 6377981f
      Martin Schwidefsky 提交于
      A machine check can interrupt the i/o and external interrupt handler
      anytime. If the machine check occurs while the interrupt handler is
      waking up from idle vtime_start_cpu can get executed a second time
      and the int_clock / async_enter_timer values in the lowcore get
      clobbered. This can confuse the cpu time accounting.
      To fix this problem two changes are needed. First the machine check
      handler has to use its own copies of int_clock and async_enter_timer,
      named mcck_clock and mcck_enter_timer. Second the nested execution
      of vtime_start_cpu has to be prevented. This is done in s390_idle_check
      by checking the wait bit in the program status word.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      6377981f
  15. 22 4月, 2010 1 次提交
  16. 27 2月, 2010 2 次提交
  17. 05 11月, 2009 1 次提交
    • M
      nohz: Introduce arch_needs_cpu · 3c5d92a0
      Martin Schwidefsky 提交于
      Allow the architecture to request a normal jiffy tick when the system
      goes idle and tick_nohz_stop_sched_tick is called . On s390 the hook is
      used to prevent the system going fully idle if there has been an
      interrupt other than a clock comparator interrupt since the last wakeup.
      
      On s390 the HiperSockets response time for 1 connection ping-pong goes
      down from 42 to 34 microseconds. The CPU cost decreases by 27%.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      LKML-Reference: <20090929122533.402715150@de.ibm.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      3c5d92a0
  18. 11 9月, 2009 3 次提交
  19. 12 6月, 2009 2 次提交
  20. 26 3月, 2009 2 次提交
  21. 09 1月, 2009 1 次提交
  22. 31 12月, 2008 1 次提交
  23. 25 12月, 2008 4 次提交
  24. 11 10月, 2008 3 次提交
    • H
      [S390] Move private simple udelay function to arch/s390/lib/delay.c. · 5a0d0e65
      Heiko Carstens 提交于
      Move cio's private simple udelay function to lib/delay.c and turn it
      into something much more readable. So we have all implementations
      at one place.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      5a0d0e65
    • H
      [S390] cio: fix cio_tpi. · b1e76613
      Heiko Carstens 提交于
      In cio_tpi only disable bottom halves when not in interrupt context.
      Otherwise a WARN_ON gets triggered. Besides that, when we are in
      interrupt context bottom halves are disabled anyway.
      Fixes this one:
      
      Badness at kernel/softirq.c:77
      Modules linked in:
      CPU: 2 Not tainted 2.6.26 #4
      Process swapper (pid: 0, task: 000000003fe83db0, ksp: 000000003fea7d28)
      Krnl PSW : 0404c00180000000 0000000000053f4e (__local_bh_disable+0xbe/0xcc)
                 R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:3 CC:0 PM:0 EA:3
      Krnl GPRS: 0000000000008ee0 00000000005f95e0 0000000000000000 0000000000000001
                 000000000020be92 0000000000000000 0000000000000210 00000000005d36c0
                 000000003fb5f4d8 0000000000000000 000000000020bed0 000000003fb5f3c8
                 00000000009be920 0000000000364898 000000003fb5f408 000000003fb5f3c8
      Krnl Code: 0000000000053f42: bf2f1000           icm     %r2,15,0(%r1)
                 0000000000053f46: a774ffc5           brc     7,53ed0
                 0000000000053f4a: a7f40001           brc     15,53f4c
                >0000000000053f4e: a7280001           lhi     %r2,1
                 0000000000053f52: 50201000           st      %r2,0(%r1)
                 0000000000053f56: a7f4ffbd           brc     15,53ed0
                 0000000000053f5a: 0707               bcr     0,%r7
                 0000000000053f5c: a7f13fc0           tmll    %r15,16320
      Call Trace:
      ([<0000000000000210>] 0x210)
       [<0000000000053f86>] local_bh_disable+0x2a/0x38
       [<000000000020bed0>] wait_cons_dev+0xd4/0x154
       [<0000000000247cb2>] raw3215_make_room+0x6a/0x1a8
       [<000000000024861a>] raw3215_write+0x86/0x28c
       [<00000000002488a0>] con3215_write+0x80/0x110
       [<000000000004c3e0>] __call_console_drivers+0xc8/0xe4
       [<000000000004c47e>] _call_console_drivers+0x82/0xc4
       [<000000000004c744>] release_console_sem+0x218/0x2c0
       [<000000000004cf64>] vprintk+0x3c0/0x504
       [<0000000000354a4a>] printk+0x52/0x64
       [<0000000000088004>] __print_symbol+0x40/0x50
       [<0000000000071dbc>] print_stack_trace+0x78/0xac
       [<0000000000079e78>] print_lock_dependencies+0x148/0x208
       [<000000000007a050>] print_irq_inversion_bug+0x118/0x15c
       [<000000000007a106>] check_usage_forwards+0x72/0x84
       [<000000000007a36e>] mark_lock+0x1d2/0x594
       [<000000000007baca>] __lock_acquire+0x886/0xf48
       [<000000000007c234>] lock_acquire+0xa8/0xe0
       [<0000000000350316>] _write_lock+0x56/0x98
       [<000000000026cd92>] zfcp_erp_adapter_reopen+0x4e/0x8c
       [<000000000026f1e8>] zfcp_qdio_int_resp+0x2e4/0x2f4
       [<00000000002210f4>] qdio_int_handler+0x274/0x888
       [<00000000002177b6>] ccw_device_call_handler+0x6e/0xd8
       [<0000000000215336>] ccw_device_irq+0xd6/0x160
       [<0000000000212f88>] io_subchannel_irq+0x8c/0x118
       [<000000000020c120>] do_IRQ+0x1d0/0x1fc
       [<00000000000270b2>] io_return+0x0/0x8
       [<000000000001c8a4>] cpu_idle+0x178/0x21c
      ([<000000000001c884>] cpu_idle+0x158/0x21c)
       [<00000000003483a2>] start_secondary+0xb6/0xc8
      INFO: lockdep is turned off.
      Last Breaking-Event-Address:
       [<0000000000053f4a>] __local_bh_disable+0xba/0xcc
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      b1e76613
    • P
      [S390] cio: inline assembly cleanup · f9c9fe3e
      Peter Oberparleiter 提交于
      Fix incorrect in- and output constraints, remove volatile declaration
      of inline assembly parameters and reformat constraint declarations to
      be more consistent.
      Signed-off-by: NPeter Oberparleiter <peter.oberparleiter@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      f9c9fe3e