07 Jan, 2009

4 commits

  • Signed-off-by: Harvey Harrison
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (60 commits)
    uio: make uio_info's name and version const
    UIO: Documentation for UIO ioport info handling
    UIO: Pass information about ioports to userspace (V2)
    UIO: uio_pdrv_genirq: allow custom irq_flags
    UIO: use pci_ioremap_bar() in drivers/uio
    arm: struct device - replace bus_id with dev_name(), dev_set_name()
    libata: struct device - replace bus_id with dev_name(), dev_set_name()
    avr: struct device - replace bus_id with dev_name(), dev_set_name()
    block: struct device - replace bus_id with dev_name(), dev_set_name()
    chris: struct device - replace bus_id with dev_name(), dev_set_name()
    dmi: struct device - replace bus_id with dev_name(), dev_set_name()
    gadget: struct device - replace bus_id with dev_name(), dev_set_name()
    gpio: struct device - replace bus_id with dev_name(), dev_set_name()
    gpu: struct device - replace bus_id with dev_name(), dev_set_name()
    hwmon: struct device - replace bus_id with dev_name(), dev_set_name()
    i2o: struct device - replace bus_id with dev_name(), dev_set_name()
    IA64: struct device - replace bus_id with dev_name(), dev_set_name()
    i7300_idle: struct device - replace bus_id with dev_name(), dev_set_name()
    infiniband: struct device - replace bus_id with dev_name(), dev_set_name()
    ISDN: struct device - replace bus_id with dev_name(), dev_set_name()
    ...

    Linus Torvalds
     
  • The atomic_t type cannot currently be used in some header files because it
    would create an include loop with asm/atomic.h. Move the type definition
    to linux/types.h to break the loop.

    Signed-off-by: Matthew Wilcox
    Cc: Huang Ying
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • Replace s390_root_dev_register() with root_device_register() etc.

    [Includes fix from Cornelia Huck]

    Signed-off-by: Mark McLoughlin
    Cc: Cornelia Huck
    Signed-off-by: Greg Kroah-Hartman

    Mark McLoughlin
     

04 Jan, 2009

1 commit

  • …/git/tip/linux-2.6-tip

    * 'cpus4096-for-linus-3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (77 commits)
    x86: setup_per_cpu_areas() cleanup
    cpumask: fix compile error when CONFIG_NR_CPUS is not defined
    cpumask: use alloc_cpumask_var_node where appropriate
    cpumask: convert shared_cpu_map in acpi_processor* structs to cpumask_var_t
    x86: use cpumask_var_t in acpi/boot.c
    x86: cleanup some remaining usages of NR_CPUS where s/b nr_cpu_ids
    sched: put back some stack hog changes that were undone in kernel/sched.c
    x86: enable cpus display of kernel_max and offlined cpus
    ia64: cpumask fix for is_affinity_mask_valid()
    cpumask: convert RCU implementations, fix
    xtensa: define __fls
    mn10300: define __fls
    m32r: define __fls
    h8300: define __fls
    frv: define __fls
    cris: define __fls
    cpumask: CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
    cpumask: zero extra bits in alloc_cpumask_var_node
    cpumask: replace for_each_cpu_mask_nr with for_each_cpu in kernel/time/
    cpumask: convert mm/
    ...

    Linus Torvalds
     

01 Jan, 2009

1 commit


31 Dec, 2008

5 commits


30 Dec, 2008

2 commits


26 Dec, 2008

1 commit


25 Dec, 2008

13 commits


01 Dec, 2008

2 commits

  • * 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
    [S390] Update default configuration.
    [S390] Fix alignment of initial kernel stack.
    [S390] pgtable.h: Fix oops in unmap_vmas for KVM processes
    [S390] fix/cleanup sched_clock
    [S390] fix system call parameter functions.

    Linus Torvalds
     
  • All architectures now use the generic compat_sys_ptrace, as should every
    new architecture that needs 32bit compat (if we'll ever get another).

    Remove the now superflous __ARCH_WANT_COMPAT_SYS_PTRACE define, and also
    kill a comment about __ARCH_SYS_PTRACE that was added after
    __ARCH_SYS_PTRACE was already gone.

    Signed-off-by: Christoph Hellwig
    Acked-by: David S. Miller
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

27 Nov, 2008

2 commits

  • When running several kvm processes with lots of memory overcommitment,
    we have seen an oops during process shutdown:
    ------------[ cut here ]------------
    Kernel BUG at 0000000000193434 [verbose debug info unavailable]
    addressing exception: 0005 [#1] PREEMPT SMP
    Modules linked in: kvm sunrpc qeth_l2 dm_mod qeth ccwgroup
    CPU: 10 Not tainted 2.6.28-rc4-kvm-bigiron-00521-g0ccca08-dirty #8
    Process kuli (pid: 14460, task: 0000000149822338, ksp: 0000000024f57650)
    Krnl PSW : 0704e00180000000 0000000000193434 (unmap_vmas+0x884/0xf10)
    R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:2 PM:0 EA:3
    Krnl GPRS: 0000000000000002 0000000000000000 000000051008d000 000003e05e6034e0
    00000000001933f6 00000000000001e9 0000000407259e0a 00000002be88c400
    00000200001c1000 0000000407259608 0000000407259e08 0000000024f577f0
    0000000407259e09 0000000000445fa8 00000000001933f6 0000000024f577f0
    Krnl Code: 0000000000193426: eb22000c000d sllg %r2,%r2,12
    000000000019342c: a7180000 lhi %r1,0
    0000000000193430: b2290012 iske %r1,%r2
    >0000000000193434: a7110002 tmll %r1,2
    0000000000193438: a7840006 brc 8,193444
    000000000019343c: 9602c000 oi 0(%r12),2
    0000000000193440: 96806000 oi 0(%r6),128
    0000000000193444: a7110004 tmll %r1,4
    Call Trace:
    ([] unmap_vmas+0x846/0xf10)
    [] exit_mmap+0x210/0x458
    [] mmput+0x54/0xfc
    [] exit_mm+0x134/0x144
    [] do_exit+0x240/0x878
    [] do_group_exit+0x98/0xc8
    [] get_signal_to_deliver+0x30c/0x358
    [] do_signal+0xec/0x860
    [] sysc_sigpending+0xe/0x22
    [] 0x2000013198a
    INFO: lockdep is turned off.
    Last Breaking-Event-Address:
    [] free_swap_and_cache+0x1a0/0x1a4
    ---[ end trace bc19f1d51ac9db7c ]---

    The faulting instruction is the storage key operation (iske) in
    ptep_rcp_copy (called by pte_clear, called by unmap_vmas). iske
    reads dirty and reference bit information for a physical page and
    requires a valid physical address. Since we are in pte_clear, we
    cannot rely on the pte containing a valid address. Fortunately we
    dont need these information in pte_clear - after all there is no
    mapping. The best fix is to remove the needless call to ptep_rcp_copy
    that contains the iske.

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Martin Schwidefsky

    Christian Borntraeger
     
  • syscall_get_nr() currently returns a valid result only if the call
    chain of the traced process includes do_syscall_trace_enter(). But
    collect_syscall() can be called for any sleeping task, the result of
    syscall_get_nr() in general is completely bogus.

    To make syscall_get_nr() work for any sleeping task the traps field
    in pt_regs is replace with svcnr - the system call number the process
    is executing. If svcnr == 0 the process is not on a system call path.

    The syscall_get_arguments and syscall_set_arguments use regs->gprs[2]
    for the first system call parameter. This is incorrect since gprs[2]
    may have been overwritten with the system call number if the call
    chain includes do_syscall_trace_enter. Use regs->orig_gprs2 instead.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     

28 Oct, 2008

3 commits

  • The s390 kernel does not compile if virtio console is enabled, but guest
    support is disabled:

    LD .tmp_vmlinux1
    arch/s390/kernel/built-in.o: In function `setup_arch':
    /space/linux-2.5/arch/s390/kernel/setup.c:773: undefined reference to
    `s390_virtio_console_init'

    The fix is related to
    commit 99e65c92f2bbf84f43766a8bf701e36817d62822
    Author: Christian Borntraeger
    Date: Fri Jul 25 15:50:04 2008 +0200
    KVM: s390: Fix guest kconfig

    Which changed the build process to build kvm_virtio.c only if CONFIG_S390_GUEST
    is set. We must ifdef the prototype in the header file accordingly.

    Reported-by: Heiko Carstens
    Signed-off-by: Christian Borntraeger
    Signed-off-by: Martin Schwidefsky

    Christian Borntraeger
     
  • We got a stack overflow with a small stack configuration on a 32 bit
    system. It just looks like as 4kb isn't enough and too dangerous.
    So lets get rid of 4kb stacks on 32 bit.

    But one thing I completely dislike about the call trace below is that
    just for debugging or tracing purposes sprintf gets called (cio_start_key):

    /* process condition code */
    sprintf(dbf_txt, "ccode:%d", ccode);
    CIO_TRACE_EVENT(4, dbf_txt);

    But maybe its just me who thinks that this could be done better.

    Kernel stack overflow.
    Modules linked in: dm_multipath sunrpc bonding qeth_l2 dm_mod qeth ccwgroup vmur
    CPU: 1 Not tainted 2.6.27-30.x.20081015-s390default #1
    Process httpd (pid: 3807, task: 20ae2df8, ksp: 1666fb78)
    Krnl PSW : 040c0000 8027098a (number+0xe/0x348)
    R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:0 CC:0 PM:0
    Krnl GPRS: 00d43318 0027097c 1666f277 9666f270
    00000000 00000000 0000000a ffffffff
    9666f270 1666f228 1666f277 1666f098
    00000002 80270982 80271016 1666f098
    Krnl Code: 8027097e: f0340dd0a7f1 srp 3536(4,%r0),2033(%r10),4
    80270984: 0f00 clcl %r0,%r0
    80270986: a7840001 brc 8,80270988
    >8027098a: 18ef lr %r14,%r15
    8027098c: a7faff68 ahi %r15,-152
    80270990: 18bf lr %r11,%r15
    80270992: 18a2 lr %r10,%r2
    80270994: 1893 lr %r9,%r3

    Modified calltrace with annotated stackframe size of each function:

    stackframe size
    |
    0 304 vsnprintf+850 [0x271016]
    1 72 sprintf+74 [0x271522]
    2 56 cio_start_key+262 [0x2d4c16]
    3 56 ccw_device_start_key+222 [0x2dfe92]
    4 56 ccw_device_start+40 [0x2dff28]
    5 48 raw3215_start_io+104 [0x30b0f8]
    6 56 raw3215_write+494 [0x30ba0a]
    7 40 con3215_write+68 [0x30bafc]
    8 40 __call_console_drivers+146 [0x12b0fa]
    9 32 _call_console_drivers+102 [0x12b192]
    10 64 release_console_sem+268 [0x12b614]
    11 168 vprintk+462 [0x12bca6]
    12 72 printk+68 [0x12bfd0]
    13 256 __print_symbol+50 [0x15a882]
    14 56 __show_trace+162 [0x103d06]
    15 32 show_trace+224 [0x103e70]
    16 48 show_stack+152 [0x103f20]
    17 56 dump_stack+126 [0x104612]
    18 96 __alloc_pages_internal+592 [0x175004]
    19 80 cache_alloc_refill+776 [0x196f3c]
    20 40 __kmalloc+258 [0x1972ae]
    21 40 __alloc_skb+94 [0x328086]
    22 32 pskb_copy+50 [0x328252]
    23 32 skb_realloc_headroom+110 [0x328a72]
    24 104 qeth_l2_hard_start_xmit+378 [0x7803bfde]
    25 56 dev_hard_start_xmit+450 [0x32ef6e]
    26 56 __qdisc_run+390 [0x3425d6]
    27 48 dev_queue_xmit+410 [0x331e06]
    28 40 ip_finish_output+308 [0x354ac8]
    29 56 ip_output+218 [0x355b6e]
    30 24 ip_local_out+56 [0x354584]
    31 120 ip_queue_xmit+300 [0x355cec]
    32 96 tcp_transmit_skb+812 [0x367da8]
    33 40 tcp_push_one+158 [0x369fda]
    34 112 tcp_sendmsg+852 [0x35d5a0]
    35 240 sock_sendmsg+164 [0x32035c]
    36 56 kernel_sendmsg+86 [0x32064a]
    37 88 sock_no_sendpage+98 [0x322b22]
    38 104 tcp_sendpage+70 [0x35cc1e]
    39 48 sock_sendpage+74 [0x31eb66]
    40 64 pipe_to_sendpage+102 [0x1c4b2e]
    41 64 __splice_from_pipe+120 [0x1c5340]
    42 72 splice_from_pipe+90 [0x1c57e6]
    43 56 generic_splice_sendpage+38 [0x1c5832]
    44 48 do_splice_from+104 [0x1c4c38]
    45 48 direct_splice_actor+52 [0x1c4c88]
    46 80 splice_direct_to_actor+180 [0x1c4f80]
    47 72 do_splice_direct+70 [0x1c5112]
    48 64 do_sendfile+360 [0x19de18]
    49 72 sys_sendfile64+126 [0x19df32]
    50 336 sysc_do_restart+18 [0x111a1a]

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • The current enable_sie code sets the mm->context.pgstes bit to tell
    dup_mm that the new mm should have extended page tables. This bit is also
    used by the s390 specific page table primitives to decide about the page
    table layout - which means context.pgstes has two meanings. This can cause
    any kind of bugs. For example - e.g. shrink_zone can call
    ptep_clear_flush_young while enable_sie is running. ptep_clear_flush_young
    will test for context.pgstes. Since enable_sie changed that value of the old
    struct mm without changing the page table layout ptep_clear_flush_young will
    do the wrong thing.
    The solution is to split pgstes into two bits
    - one for the allocation
    - one for the current state

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Martin Schwidefsky

    Christian Borntraeger
     

20 Oct, 2008

1 commit

  • This patch series introduces a cgroup subsystem that utilizes the swsusp
    freezer to freeze a group of tasks. It's immediately useful for batch job
    management scripts. It should also be useful in the future for
    implementing container checkpoint/restart.

    The freezer subsystem in the container filesystem defines a cgroup file
    named freezer.state. Reading freezer.state will return the current state
    of the cgroup. Writing "FROZEN" to the state file will freeze all tasks
    in the cgroup. Subsequently writing "RUNNING" will unfreeze the tasks in
    the cgroup.

    * Examples of usage :

    # mkdir /containers/freezer
    # mount -t cgroup -ofreezer freezer /containers
    # mkdir /containers/0
    # echo $some_pid > /containers/0/tasks

    to get status of the freezer subsystem :

    # cat /containers/0/freezer.state
    RUNNING

    to freeze all tasks in the container :

    # echo FROZEN > /containers/0/freezer.state
    # cat /containers/0/freezer.state
    FREEZING
    # cat /containers/0/freezer.state
    FROZEN

    to unfreeze all tasks in the container :

    # echo RUNNING > /containers/0/freezer.state
    # cat /containers/0/freezer.state
    RUNNING

    This patch:

    The first step in making the refrigerator() available to all
    architectures, even for those without power management.

    The purpose of such a change is to be able to use the refrigerator() in a
    new control group subsystem which will implement a control group freezer.

    [akpm@linux-foundation.org: fix sparc]
    Signed-off-by: Cedric Le Goater
    Signed-off-by: Matt Helsley
    Acked-by: Pavel Machek
    Acked-by: Serge E. Hallyn
    Acked-by: Rafael J. Wysocki
    Acked-by: Nigel Cunningham
    Tested-by: Matt Helsley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Helsley
     

16 Oct, 2008

1 commit


14 Oct, 2008

1 commit


11 Oct, 2008

3 commits

  • This patch defines a dirty bit in the PGSTE that can be used to implement
    dirty pages logging for KVM's live migration. The bit is set in the
    ptep_rcp_copy function, which is called to save dirty and referenced information
    from the storage key in the PGSTE. The bit can be tested and reset by KVM using
    the kvm_s390_test_and_clear_page_dirty function that is introduced by this patch.

    Acked-by: Carsten Otte
    Signed-off-by: Florian Funke
    Signed-off-by: Martin Schwidefsky

    Florian Funke
     
  • EMC Symmetrix Subsystem Control I/O through CKD dasd requires a
    specific parameter list sent to the array via a Perform Subsystem
    Function CCW. The Symmetrix response is retrieved from the array
    via a Read Subsystem Data CCW.

    Signed-off-by: Nigel Hislop
    Signed-off-by: Hannes Reinecke
    Signed-off-by: Martin Schwidefsky

    Nigel Hislop
     
  • 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: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens