1. 09 10月, 2014 3 次提交
  2. 30 9月, 2014 1 次提交
  3. 26 9月, 2014 2 次提交
  4. 25 9月, 2014 14 次提交
  5. 09 9月, 2014 15 次提交
    • H
      s390/spinlock: optimize spin_unlock code · 44230282
      Heiko Carstens 提交于
      Use a memory barrier + store sequence instead of a load + compare and swap
      sequence to unlock a spinlock and an rw lock.
      For the spinlock case this saves us two memory reads and a not needed cpu
      serialization after the compare and swap instruction stored the new value.
      
      The kernel size (performance_defconfig) gets reduced by ~14k.
      
      Average execution time of a tight inlined spin_unlock loop drops from
      5.8ns to 0.7ns on a zEC12 machine.
      
      An artificial stress test case where several counters are protected with
      a single spinlock and which are only incremented while holding the spinlock
      shows ~30% improvement on a 4 cpu machine.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      44230282
    • H
      s390/ftrace: optimize mcount code · 3d1e220d
      Heiko Carstens 提交于
      Reduce the number of executed instructions within the mcount block if
      function tracing is enabled. We achieve that by using a non-standard
      C function call ABI. Since the called function is also written in
      assembler this is not a problem.
      This also allows to replace the unconditional store at the beginning
      of the mcount block with a larl instruction, which doesn't touch
      memory.
      
      In theory we could also patch the first instruction of the mcount block
      to enable and disable function tracing. However this would break kprobes.
      This could be fixed with implementing the "kprobes_on_ftrace" feature;
      however keeping the odd jprobes working seems not to be possible without
      a lot of code churn. Therefore keep the code easy and simply accept one
      wasted 1-cycle "larl" instruction per function prologue.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      3d1e220d
    • H
      s390/kprobes: remove unused jprobe_return_end() · ea2f4769
      Heiko Carstens 提交于
      Even if it has a __used annotation it is actually unused.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      ea2f4769
    • H
      s390/ftrace: enforce DYNAMIC_FTRACE if FUNCTION_TRACER is selected · 5d6a0163
      Heiko Carstens 提交于
      We have too many combinations for function tracing. Lets simply stick to
      the most advanced option, so we don't have to care of other combinations.
      
      This means we always select DYNAMIC_FTRACE if FUNCTION_TRACER is selected.
      
      In the s390 Makefile also remove CONFIG_FTRACE_SYSCALLS since that
      functionality got moved to architecture independent code in the meantime.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      5d6a0163
    • H
      s390/ftrace: add HAVE_DYNAMIC_FTRACE_WITH_REGS support · 10dec7db
      Heiko Carstens 提交于
      This code is based on a patch from Vojtech Pavlik.
      http://marc.info/?l=linux-s390&m=140438885114413&w=2
      
      The actual implementation now differs significantly:
      Instead of adding a second function "ftrace_regs_caller" which would be nearly
      identical to the existing ftrace_caller function, the current ftrace_caller
      function is now an alias to ftrace_regs_caller and always passes the needed
      pt_regs structure and function_trace_op parameters unconditionally.
      
      Besides that also use asm offsets to correctly allocate and access the new
      struct pt_regs on the stack.
      
      While at it we can make use of new instruction to get rid of some indirect
      loads if compiled for new machines.
      
      The passed struct pt_regs can be changed by the called function and it's new
      contents will replace the current contents.
      
      Note: to change the return address the embedded psw member of the pt_regs
      structure must be changed. The psw member is right now incomplete, since
      the mask part is missing. For all current use cases this should be sufficent.
      Providing and restoring a sane mask would mean we need to add an epsw/lpswe
      pair to the mcount code. Only these two instruction would cost us ~120 cycles
      which currently seems not necessary.
      
      Cc: Vojtech Pavlik <vojtech@suse.cz>
      Cc: Jiri Kosina <jkosina@suse.cz>
      Cc: Jiri Slaby <jslaby@suse.cz>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      10dec7db
    • H
      s390/ftrace: optimize function graph caller code · 2481a87b
      Heiko Carstens 提交于
      When the function graph tracer is disabled we can skip three additional
      instructions. So let's just do this.
      
      So if function tracing is enabled but function graph tracing is
      runtime disabled, we get away with a single unconditional branch.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      2481a87b
    • H
      s390: pass march flag to assembly files as well · 0f1b1ff5
      Heiko Carstens 提交于
      Currently the march flag gets only passed to C files, but not to
      assembler files.
      This means that we can't add new instructions like e.g. aghik to asm
      files, since the assembler doesn't know of the new instructions if
      the appropriate march flag isn't specified.
      
      So also pass the march flag when compiling assembler files as well.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      0f1b1ff5
    • M
      s390/vdso: add vdso support for coarse clocks · b7eacb59
      Martin Schwidefsky 提交于
      Add CLOCK_REALTIME_COARSE and CLOCK_MONOTONIC_COARSE optimization to
      the 64-bit and 31-bit vdso.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      b7eacb59
    • M
      s390/vdso: replace stck with stcke · 070b7be6
      Martin Schwidefsky 提交于
      If gettimeofday / clock_gettime are called multiple times in a row
      the STCK instruction will stall until a difference in the result is
      visible. This unnecessarily slows down the vdso calls, use stcke
      instead of stck to get rid of the stall.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      070b7be6
    • H
      Documentation/kprobes: add s390 to list of supported architectures · 369e8c35
      Heiko Carstens 提交于
      s390 supports kprobes since 2006 but is missing in the list of
      architectures that support kprobes.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      369e8c35
    • H
      b7d5006d
    • L
      Merge branch 'for_linus_urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 8c68face
      Linus Torvalds 提交于
      Pull ext4 bugfix from Ted Ts'o.
      
      [ Hmm.  It's possible we should make kfree() aware of error pointers,
        and use IS_ERR_OR_NULL rather than a NULL check.  But in the meantime
        this is obviously the right fix.  - Linus ]
      
      * 'for_linus_urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: avoid trying to kfree an ERR_PTR pointer
      8c68face
    • L
      Merge branch 'for-3.17' of git://linux-nfs.org/~bfields/linux · 861b7102
      Linus Torvalds 提交于
      Pull nfsd bugfixes from Bruce Fields:
       "A couple minor nfsd bugfixes"
      
      * 'for-3.17' of git://linux-nfs.org/~bfields/linux:
        lockd: fix rpcbind crash on lockd startup failure
        nfsd4: fix rd_dircount enforcement
      861b7102
    • J
      lockd: fix rpcbind crash on lockd startup failure · 7c17705e
      J. Bruce Fields 提交于
      Nikita Yuschenko reported that booting a kernel with init=/bin/sh and
      then nfs mounting without portmap or rpcbind running using a busybox
      mount resulted in:
      
        # mount -t nfs 10.30.130.21:/opt /mnt
        svc: failed to register lockdv1 RPC service (errno 111).
        lockd_up: makesock failed, error=-111
        Unable to handle kernel paging request for data at address 0x00000030
        Faulting instruction address: 0xc055e65c
        Oops: Kernel access of bad area, sig: 11 [#1]
        MPC85xx CDS
        Modules linked in:
        CPU: 0 PID: 1338 Comm: mount Not tainted 3.10.44.cge #117
        task: cf29cea0 ti: cf35c000 task.ti: cf35c000
        NIP: c055e65c LR: c0566490 CTR: c055e648
        REGS: cf35dad0 TRAP: 0300   Not tainted  (3.10.44.cge)
        MSR: 00029000 <CE,EE,ME>  CR: 22442488  XER: 20000000
        DEAR: 00000030, ESR: 00000000
      
        GPR00: c05606f4 cf35db80 cf29cea0 cf0ded80 cf0dedb8 00000001 1dec3086
        00000000
        GPR08: 00000000 c07b1640 00000007 1dec3086 22442482 100b9758 00000000
        10090ae8
        GPR16: 00000000 000186a5 00000000 00000000 100c3018 bfa46edc 100b0000
        bfa46ef0
        GPR24: cf386ae0 c07834f0 00000000 c0565f88 00000001 cf0dedb8 00000000
        cf0ded80
        NIP [c055e65c] call_start+0x14/0x34
        LR [c0566490] __rpc_execute+0x70/0x250
        Call Trace:
        [cf35db80] [00000080] 0x80 (unreliable)
        [cf35dbb0] [c05606f4] rpc_run_task+0x9c/0xc4
        [cf35dbc0] [c0560840] rpc_call_sync+0x50/0xb8
        [cf35dbf0] [c056ee90] rpcb_register_call+0x54/0x84
        [cf35dc10] [c056f24c] rpcb_register+0xf8/0x10c
        [cf35dc70] [c0569e18] svc_unregister.isra.23+0x100/0x108
        [cf35dc90] [c0569e38] svc_rpcb_cleanup+0x18/0x30
        [cf35dca0] [c0198c5c] lockd_up+0x1dc/0x2e0
        [cf35dcd0] [c0195348] nlmclnt_init+0x2c/0xc8
        [cf35dcf0] [c015bb5c] nfs_start_lockd+0x98/0xec
        [cf35dd20] [c015ce6c] nfs_create_server+0x1e8/0x3f4
        [cf35dd90] [c0171590] nfs3_create_server+0x10/0x44
        [cf35dda0] [c016528c] nfs_try_mount+0x158/0x1e4
        [cf35de20] [c01670d0] nfs_fs_mount+0x434/0x8c8
        [cf35de70] [c00cd3bc] mount_fs+0x20/0xbc
        [cf35de90] [c00e4f88] vfs_kern_mount+0x50/0x104
        [cf35dec0] [c00e6e0c] do_mount+0x1d0/0x8e0
        [cf35df10] [c00e75ac] SyS_mount+0x90/0xd0
        [cf35df40] [c000ccf4] ret_from_syscall+0x0/0x3c
      
      The addition of svc_shutdown_net() resulted in two calls to
      svc_rpcb_cleanup(); the second is no longer necessary and crashes when
      it calls rpcb_register_call with clnt=NULL.
      Reported-by: NNikita Yushchenko <nyushchenko@dev.rtsoft.ru>
      Fixes: 679b033d "lockd: ensure we tear down any live sockets when socket creation fails during lockd_up"
      Cc: stable@vger.kernel.org
      Acked-by: NJeff Layton <jlayton@primarydata.com>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      7c17705e
    • J
      nfsd4: fix rd_dircount enforcement · aee37764
      J. Bruce Fields 提交于
      Commit 3b299709 "nfsd4: enforce rd_dircount" totally misunderstood
      rd_dircount; it refers to total non-attribute bytes returned, not number
      of directory entries returned.
      
      Bring the code into agreement with RFC 3530 section 14.2.24.
      
      Cc: stable@vger.kernel.org
      Fixes: 3b299709 "nfsd4: enforce rd_dircount"
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      aee37764
  6. 08 9月, 2014 5 次提交
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 35af2561
      Linus Torvalds 提交于
      Pull s390 fixes from Martin Schwidefsky:
       "A bug fix for the vdso code, the loadparm for booting from SCSI is
        added and the access permissions for the dasd module parameters are
        corrected"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/vdso: remove NULL pointer check from clock_gettime
        s390/ipl: Add missing SCSI loadparm attributes to /sys/firmware
        s390/dasd: Make module parameter visible in sysfs
      35af2561
    • L
      Merge branch 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · d030671f
      Linus Torvalds 提交于
      Pull cgroup fixes from Tejun Heo:
       "This pull request includes Alban's patch to disallow '\n' in cgroup
        names.
      
        Two other patches from Li to fix a possible oops when cgroup
        destruction races against other file operations and one from Vivek to
        fix a unified hierarchy devel behavior"
      
      * 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: check cgroup liveliness before unbreaking kernfs
        cgroup: delay the clearing of cgrp->kn->priv
        cgroup: Display legacy cgroup files on default hierarchy
        cgroup: reject cgroup names with '\n'
      d030671f
    • L
      Merge branch 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · 6a5c75ce
      Linus Torvalds 提交于
      Pull percpu fixes from Tejun Heo:
       "One patch to fix a failure path in the alloc path.  The bug is
        dangerous but probably not too likely to actually trigger in the wild
        given that there hasn't been any report yet.
      
        The other two are low impact fixes"
      
      * 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
        percpu: free percpu allocation info for uniprocessor system
        percpu: perform tlb flush after pcpu_map_pages() failure
        percpu: fix pcpu_alloc_pages() failure path
      6a5c75ce
    • L
      Merge branch 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · cfa7c641
      Linus Torvalds 提交于
      Pull libata fixes from Tejun Heo:
       "Two patches are to add PCI IDs for ICH9 and all others are device
        specific fixes.  Nothing too interesting"
      
      * 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        ahci_xgene: Fix the link down in first attempt for the APM X-Gene SoC AHCI SATA host controller driver.
        ahci_xgene: Skip the PHY and clock initialization if already configured by the firmware.
        ahci: add pcid for Marvel 0x9182 controller
        ata: Disabling the async PM for JMicron chip 363/361
        ata_piix: Add Device IDs for Intel 9 Series PCH
        ahci: Add Device IDs for Intel 9 Series PCH
        ata: ahci_tegra: Read calibration fuse
      cfa7c641
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · b531f5dd
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) Fix skb leak in mac802154, from Martin Townsend
      
       2) Use select not depends on NF_NAT for NFT_NAT, from Pablo Neira
          Ayuso
      
       3) Fix union initializer bogosity in vxlan, from Gerhard Stenzel
      
       4) Fix RX checksum configuration in stmmac driver, from Giuseppe
          CAVALLARO
      
       5) Fix TSO with non-accelerated VLANs in e1000, e1000e, bna, ehea,
          i40e, i40evf, mvneta, and qlge, from Vlad Yasevich
      
       6) Fix capability checks in phy_init_eee(), from Giuseppe CAVALLARO
      
       7) Try high order allocations more sanely for SKBs, specifically if a
          high order allocation fails, fall back directly to zero order pages
          rather than iterating down one order at a time.  From Eric Dumazet
      
       8) Fix a memory leak in openvswitch, from Li RongQing
      
       9) amd-xgbe initializes wrong spinlock, from Thomas Lendacky
      
      10) RTNL locking was busted in setsockopt for anycast and multicast, fix
          from Sabrina Dubroca
      
      11) Fix peer address refcount leak in ipv6, from Nicolas Dichtel
      
      12) DocBook typo fixes, from Masanari Iida
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (101 commits)
        ipv6: restore the behavior of ipv6_sock_ac_drop()
        amd-xgbe: Enable interrupts for all management counters
        amd-xgbe: Treat certain counter registers as 64 bit
        greth: moved TX ring cleaning to NAPI rx poll func
        cnic : Cleanup CONFIG_IPV6 & VLAN check
        net: treewide: Fix typo found in DocBook/networking.xml
        bnx2x: Fix link problems for 1G SFP RJ45 module
        3c59x: avoid panic in boomerang_start_xmit when finding page address:
        netfilter: add explicit Kconfig for NETFILTER_XT_NAT
        ipv6: use addrconf_get_prefix_route() to remove peer addr
        ipv6: fix a refcnt leak with peer addr
        net-timestamp: only report sw timestamp if reporting bit is set
        drivers/net/fddi/skfp/h/skfbi.h: Remove useless PCI_BASE_2ND macros
        l2tp: fix race while getting PMTU on PPP pseudo-wire
        ipv6: fix rtnl locking in setsockopt for anycast and multicast
        VMXNET3: Check for map error in vmxnet3_set_mc
        openvswitch: distinguish between the dropped and consumed skb
        amd-xgbe: Fix initialization of the wrong spin lock
        openvswitch: fix a memory leak
        netfilter: fix missing dependencies in NETFILTER_XT_TARGET_LOG
        ...
      b531f5dd