1. 26 3月, 2009 13 次提交
  2. 18 3月, 2009 1 次提交
  3. 19 2月, 2009 1 次提交
  4. 11 2月, 2009 1 次提交
  5. 23 1月, 2009 4 次提交
    • M
      [S390] Add missing compat system call wrappers. · e34a6280
      Michael Holzheu 提交于
      Add wrapper functions for the following compat system calls:
      * readahead
      * sendfile64
      * tkill
      * tgkill
      * keyctl
      This ensures that the high order bits of the parameter registers are correctly
      sign extended.
      Signed-off-by: NMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      e34a6280
    • H
      [S390] etr/stp: fix possible deadlock · 179cb81a
      Heiko Carstens 提交于
      Precreate stop_machine threads in case the machine supports ETR/STP.
      Otherwise we might deadlock if a time sync operation gets scheduled
      and the creation of stop_machine threads would cause disk I/O.
      This is just the minimal fix.
      The real fix would be to only precreate stop_machine threads if
      ETR/STP is actually used. But that would be a rather large and
      complicated patch.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      179cb81a
    • H
      [S390] cputime: fix lowcore initialization on cpu hotplug · f9a2f797
      Heiko Carstens 提交于
      On (initial) cpu hotplug the lowcore values for user_timer and
      system_timer don't get initialized like they would get on each
      process schedule.
      On initial start of secondary cpus this leads to the situation
      where per thread user/system_timer values are larger than the
      corresponding contents of the lowcore. When later calculating
      time spent in user/system context the result can be negative.
      
      So for cpu hotplug we should manually initialize lowcore values.
      
      Fixes this bug:
      
      Kernel BUG at 000ec080 [verbose debug info unavailable]
      fixpoint divide exception: 0009 [#1] PREEMPT SMP
      Modules linked in:
      CPU: 10 Not tainted 2.6.28 #4
      Process sysctl (pid: 975, task: 3fa752e0, ksp: 3fbebca0)
      Krnl PSW : 070c1000 800ec080 (show_stat+0x390/0x5fc)
                 R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:1 PM:0
      Krnl GPRS: 7fffffff fefc7ce5 3faec080 003879ae
                 00000001 01388000 7fffffff 01388000
                 00000000 00000000 0049ad50 3fbebcf8
                 01388000 002f51a8 800ec1fe 3fbebcf8
      Krnl Code: 800ec076: 9001b188           stm     %r0,%r1,392(%r11)
                 800ec07a: 9801b0c0           lm      %r0,%r1,192(%r11)
                 800ec07e: 1d05               dr      %r0,%r5
                >800ec080: 9001b0c0           stm     %r0,%r1,192(%r11)
                 800ec084: 5860b0c4           l       %r6,196(%r11)
                 800ec088: 1806               lr      %r0,%r6
                 800ec08a: 8c800001           srdl    %r8,1
                 800ec08e: 1d87               dr      %r8,%r7
      Call Trace:
      ([<00000000000ec1ee>] show_stat+0x4fe/0x5fc)
       [<00000000000c13e8>] seq_read+0xc4/0x3ac
       [<00000000000e4796>] proc_reg_read+0x6e/0x9c
       [<00000000000a6a44>] vfs_read+0x78/0x100
       [<00000000000a6ba8>] sys_read+0x40/0x80
       [<00000000000234a8>] sysc_do_restart+0x1a/0x1e
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      f9a2f797
    • M
      [S390] fix compat sigaltstack syscall table entry · e9a4e9d5
      Michael Holzheu 提交于
      When 31 bit user space programs call sigaltstack on a 64 bit Linux
      OS, the system call returns -1 with errno=EFAULT. The 31 bit pointer passed
      to the system call is extended to 64 bit, but the high order bits are not
      set to zero. The kernel detects the invalid user space pointer and
      returns -EFAULT. To solve the problem, sys32_sigaltstack_wrapper()
      instead of sys32_sigaltstack() has to be called. The wrapper function sets
      the high order bits to zero.
      Signed-off-by: NMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      e9a4e9d5
  6. 14 1月, 2009 2 次提交
  7. 09 1月, 2009 3 次提交
  8. 07 1月, 2009 1 次提交
  9. 06 1月, 2009 1 次提交
  10. 01 1月, 2009 1 次提交
  11. 31 12月, 2008 6 次提交
    • M
      [PATCH] fast vdso implementation for CLOCK_THREAD_CPUTIME_ID · c742b31c
      Martin Schwidefsky 提交于
      The extract cpu time instruction (ectg) instruction allows the user
      process to get the current thread cputime without calling into the
      kernel. The code that uses the instruction needs to switch to the
      access registers mode to get access to the per-cpu info page that
      contains the two base values that are needed to calculate the current
      cputime from the CPU timer with the ectg instruction.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      c742b31c
    • M
      [PATCH] improve idle cputime accounting · 9cfb9b3c
      Martin Schwidefsky 提交于
      Distinguish the cputime of the idle process where idle is actually using
      cpu cycles from the cputime where idle is sleeping on an enabled wait psw.
      The former is accounted as system time, the later as idle time.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      9cfb9b3c
    • M
      [PATCH] improve precision of idle time detection. · 6f430924
      Martin Schwidefsky 提交于
      Increase the precision of the idle time calculation that is exported
      to user space via /sys/devices/system/cpu/cpu<x>/idle_time_us
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      6f430924
    • M
      [PATCH] improve precision of process accounting. · aa5e97ce
      Martin Schwidefsky 提交于
      The unit of the cputime accouting values that are stored per process is
      currently a microsecond. The CPU timer has a maximum granularity of
      2**-12 microseconds. There is no benefit in storing the per process values
      in the lesser precision and there is the disadvantage that the backend
      has to do the rounding to microseconds. The better solution is to use
      the maximum granularity of the CPU timer as cputime unit.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      aa5e97ce
    • M
      [PATCH] idle cputime accounting · 79741dd3
      Martin Schwidefsky 提交于
      The cpu time spent by the idle process actually doing something is
      currently accounted as idle time. This is plain wrong, the architectures
      that support VIRT_CPU_ACCOUNTING=y can do better: distinguish between the
      time spent doing nothing and the time spent by idle doing work. The first
      is accounted with account_idle_time and the second with account_system_time.
      The architectures that use the account_xxx_time interface directly and not
      the account_xxx_ticks interface now need to do the check for the idle
      process in their arch code. In particular to improve the system vs true
      idle time accounting the arch code needs to measure the true idle time
      instead of just testing for the idle process.
      To improve the tick based accounting as well we would need an architecture
      primitive that can tell us if the pt_regs of the interrupted context
      points to the magic instruction that halts the cpu.
      
      In addition idle time is no more added to the stime of the idle process.
      This field now contains the system time of the idle process as it should
      be. On systems without VIRT_CPU_ACCOUNTING this will always be zero as
      every tick that occurs while idle is running will be accounted as idle
      time.
      
      This patch contains the necessary common code changes to be able to
      distinguish idle system time and true idle time. The architectures with
      support for VIRT_CPU_ACCOUNTING need some changes to exploit this.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      79741dd3
    • M
      [PATCH] fix scaled & unscaled cputime accounting · 457533a7
      Martin Schwidefsky 提交于
      The utimescaled / stimescaled fields in the task structure and the
      global cpustat should be set on all architectures. On s390 the calls
      to account_user_time_scaled and account_system_time_scaled never have
      been added. In addition system time that is accounted as guest time
      to the user time of a process is accounted to the scaled system time
      instead of the scaled user time.
      To fix the bugs and to prevent future forgetfulness this patch merges
      account_system_time_scaled into account_system_time and
      account_user_time_scaled into account_user_time.
      
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Jeremy Fitzhardinge <jeremy@xensource.com>
      Cc: Chris Wright <chrisw@sous-sol.org>
      Cc: Michael Neuling <mikey@neuling.org>
      Acked-by: NPaul Mackerras <paulus@samba.org>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      457533a7
  12. 26 12月, 2008 1 次提交
  13. 25 12月, 2008 5 次提交