1. 24 8月, 2014 1 次提交
  2. 13 8月, 2014 2 次提交
    • S
      perf/x86: Fix data source encoding issues for load latency/precise store · 770eee1f
      Stephane Eranian 提交于
      This patch fixes issues introuduce by Andi's previous patch 'Revamp PEBS'
      series.
      
      This patch fixes the following:
      
       - precise_store_data_hsw() encode the mem op type whenever we can
       - precise_store_data_hsw set the default data source correctly
      
       - 0 is not a valid init value for data source. Define PERF_MEM_NA as the
         default value
      
      This bug was actually introduced by
      
          commit 722e76e6
          Author: Stephane Eranian <eranian@google.com>
          Date:   Thu May 15 17:56:44 2014 +0200
      
              fix Haswell precise store data source encoding
      Signed-off-by: NStephane Eranian <eranian@google.com>
      Signed-off-by: NPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1407785233-32193-4-git-send-email-eranian@google.com
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: ak@linux.intel.com
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      770eee1f
    • J
      perf: Add queued work to remove orphaned child events · fadfe7be
      Jiri Olsa 提交于
      In cases when the  owner task exits before the workload and the
      workload made some forks, all the events stay in until the last
      workload process exits. Thats' because each child event holds
      parent reference.
      
      We want to release all children events once the parent is gone,
      because at that time there's no process to read them anyway, so
      they're just eating resources.
      
      This removal  races with process exit, which removes all events
      and fork, which clone events.  To be clear of those two, adding
      work queue to remove orphaned child for context in case such
      event is detected.
      
      Using delayed work queue (with delay == 1), because we queue this
      work under perf scheduler callbacks. Normal work queue tries to wake
      up the queue process, which deadlocks on rq->lock in this place.
      
      Also preventing clones from abandoned parent event.
      Signed-off-by: NJiri Olsa <jolsa@kernel.org>
      Signed-off-by: NPeter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: http://lkml.kernel.org/r/1406896382-18404-4-git-send-email-jolsa@kernel.orgSigned-off-by: NIngo Molnar <mingo@kernel.org>
      fadfe7be
  3. 01 8月, 2014 1 次提交
  4. 31 7月, 2014 4 次提交
  5. 30 7月, 2014 5 次提交
  6. 29 7月, 2014 3 次提交
    • A
      clk: Add CLPS711X clk driver · 631c5347
      Alexander Shiyan 提交于
      This adds the clock driver for Cirrus Logic CLPS711X series SoCs
      using common clock infrastructure.
      Designed primarily for migration CLPS711X subarch for multiplatform & DT,
      for this as the "OF" and "non-OF" calls implemented.
      Signed-off-by: NAlexander Shiyan <shc_work@mail.ru>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      631c5347
    • E
      ip: make IP identifiers less predictable · 04ca6973
      Eric Dumazet 提交于
      In "Counting Packets Sent Between Arbitrary Internet Hosts", Jeffrey and
      Jedidiah describe ways exploiting linux IP identifier generation to
      infer whether two machines are exchanging packets.
      
      With commit 73f156a6 ("inetpeer: get rid of ip_id_count"), we
      changed IP id generation, but this does not really prevent this
      side-channel technique.
      
      This patch adds a random amount of perturbation so that IP identifiers
      for a given destination [1] are no longer monotonically increasing after
      an idle period.
      
      Note that prandom_u32_max(1) returns 0, so if generator is used at most
      once per jiffy, this patch inserts no hole in the ID suite and do not
      increase collision probability.
      
      This is jiffies based, so in the worst case (HZ=1000), the id can
      rollover after ~65 seconds of idle time, which should be fine.
      
      We also change the hash used in __ip_select_ident() to not only hash
      on daddr, but also saddr and protocol, so that ICMP probes can not be
      used to infer information for other protocols.
      
      For IPv6, adds saddr into the hash as well, but not nexthdr.
      
      If I ping the patched target, we can see ID are now hard to predict.
      
      21:57:11.008086 IP (...)
          A > target: ICMP echo request, seq 1, length 64
      21:57:11.010752 IP (... id 2081 ...)
          target > A: ICMP echo reply, seq 1, length 64
      
      21:57:12.013133 IP (...)
          A > target: ICMP echo request, seq 2, length 64
      21:57:12.015737 IP (... id 3039 ...)
          target > A: ICMP echo reply, seq 2, length 64
      
      21:57:13.016580 IP (...)
          A > target: ICMP echo request, seq 3, length 64
      21:57:13.019251 IP (... id 3437 ...)
          target > A: ICMP echo reply, seq 3, length 64
      
      [1] TCP sessions uses a per flow ID generator not changed by this patch.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Reported-by: NJeffrey Knockel <jeffk@cs.unm.edu>
      Reported-by: NJedidiah R. Crandall <crandall@cs.unm.edu>
      Cc: Willy Tarreau <w@1wt.eu>
      Cc: Hannes Frederic Sowa <hannes@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      04ca6973
    • L
      kthread_work: remove the unused wait_queue_head · 95847e1b
      Lai Jiangshan 提交于
      The wait_queue_head_t kthread_work->done is unused since
      flush_kthread_work() has been re-implemented.  Let's remove it
      including the initialization code.  This makes
      DEFINE_KTHREAD_WORK_ONSTACK() unnecessary, removed.
      
      tj: Updated description.  Removed DEFINE_KTHREAD_WORK_ONSTACK().
      Signed-off-by: NLai Jiangshan <laijs@cn.fujitsu.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      95847e1b
  7. 26 7月, 2014 3 次提交
  8. 25 7月, 2014 1 次提交
  9. 24 7月, 2014 2 次提交
  10. 23 7月, 2014 5 次提交
    • T
      libata: introduce ata_host->n_tags to avoid oops on SAS controllers · 1a112d10
      Tejun Heo 提交于
      1871ee13 ("libata: support the ata host which implements a queue
      depth less than 32") directly used ata_port->scsi_host->can_queue from
      ata_qc_new() to determine the number of tags supported by the host;
      unfortunately, SAS controllers doing SATA don't initialize ->scsi_host
      leading to the following oops.
      
       BUG: unable to handle kernel NULL pointer dereference at 0000000000000058
       IP: [<ffffffff814e0618>] ata_qc_new_init+0x188/0x1b0
       PGD 0
       Oops: 0002 [#1] SMP
       Modules linked in: isci libsas scsi_transport_sas mgag200 drm_kms_helper ttm
       CPU: 1 PID: 518 Comm: udevd Not tainted 3.16.0-rc6+ #62
       Hardware name: Intel Corporation S2600CO/S2600CO, BIOS SE5C600.86B.02.02.0002.122320131210 12/23/2013
       task: ffff880c1a00b280 ti: ffff88061a000000 task.ti: ffff88061a000000
       RIP: 0010:[<ffffffff814e0618>]  [<ffffffff814e0618>] ata_qc_new_init+0x188/0x1b0
       RSP: 0018:ffff88061a003ae8  EFLAGS: 00010012
       RAX: 0000000000000001 RBX: ffff88000241ca80 RCX: 00000000000000fa
       RDX: 0000000000000020 RSI: 0000000000000020 RDI: ffff8806194aa298
       RBP: ffff88061a003ae8 R08: ffff8806194a8000 R09: 0000000000000000
       R10: 0000000000000000 R11: ffff88000241ca80 R12: ffff88061ad58200
       R13: ffff8806194aa298 R14: ffffffff814e67a0 R15: ffff8806194a8000
       FS:  00007f3ad7fe3840(0000) GS:ffff880627620000(0000) knlGS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
       CR2: 0000000000000058 CR3: 000000061a118000 CR4: 00000000001407e0
       Stack:
        ffff88061a003b20 ffffffff814e96e1 ffff88000241ca80 ffff88061ad58200
        ffff8800b6bf6000 ffff880c1c988000 ffff880619903850 ffff88061a003b68
        ffffffffa0056ce1 ffff88061a003b48 0000000013d6e6f8 ffff88000241ca80
       Call Trace:
        [<ffffffff814e96e1>] ata_sas_queuecmd+0xa1/0x430
        [<ffffffffa0056ce1>] sas_queuecommand+0x191/0x220 [libsas]
        [<ffffffff8149afee>] scsi_dispatch_cmd+0x10e/0x300
        [<ffffffff814a3bc5>] scsi_request_fn+0x2f5/0x550
        [<ffffffff81317613>] __blk_run_queue+0x33/0x40
        [<ffffffff8131781a>] queue_unplugged+0x2a/0x90
        [<ffffffff8131ceb4>] blk_flush_plug_list+0x1b4/0x210
        [<ffffffff8131d274>] blk_finish_plug+0x14/0x50
        [<ffffffff8117eaa8>] __do_page_cache_readahead+0x198/0x1f0
        [<ffffffff8117ee21>] force_page_cache_readahead+0x31/0x50
        [<ffffffff8117ee7e>] page_cache_sync_readahead+0x3e/0x50
        [<ffffffff81172ac6>] generic_file_read_iter+0x496/0x5a0
        [<ffffffff81219897>] blkdev_read_iter+0x37/0x40
        [<ffffffff811e307e>] new_sync_read+0x7e/0xb0
        [<ffffffff811e3734>] vfs_read+0x94/0x170
        [<ffffffff811e43c6>] SyS_read+0x46/0xb0
        [<ffffffff811e33d1>] ? SyS_lseek+0x91/0xb0
        [<ffffffff8171ee29>] system_call_fastpath+0x16/0x1b
       Code: 00 00 00 88 50 29 83 7f 08 01 19 d2 83 e2 f0 83 ea 50 88 50 34 c6 81 1d 02 00 00 40 c6 81 17 02 00 00 00 5d c3 66 0f 1f 44 00 00 <89> 14 25 58 00 00 00
      
      Fix it by introducing ata_host->n_tags which is initialized to
      ATA_MAX_QUEUE - 1 in ata_host_init() for SAS controllers and set to
      scsi_host_template->can_queue in ata_host_register() for !SAS ones.
      As SAS hosts are never registered, this will give them the same
      ATA_MAX_QUEUE - 1 as before.  Note that we can't use
      scsi_host->can_queue directly for SAS hosts anyway as they can go
      higher than the libata maximum.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Reported-by: NMike Qiu <qiudayu@linux.vnet.ibm.com>
      Reported-by: NJesse Brandeburg <jesse.brandeburg@gmail.com>
      Reported-by: NPeter Hurley <peter@hurleysoftware.com>
      Reported-by: NPeter Zijlstra <peterz@infradead.org>
      Tested-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Fixes: 1871ee13 ("libata: support the ata host which implements a queue depth less than 32")
      Cc: Kevin Hao <haokexin@gmail.com>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Cc: stable@vger.kernel.org
      1a112d10
    • N
      pinctrl: dra: dt-bindings: Fix pull enable/disable · 23d9cec0
      Nishanth Menon 提交于
      The DRA74/72 control module pins have a weak pull up and pull down.
      This is configured by bit offset 17. if BIT(17) is 1, a pull up is
      selected, else a pull down is selected.
      
      However, this pull resisstor is applied based on BIT(16) -
      PULLUDENABLE - if BIT(18) is *0*, then pull as defined in BIT(17) is
      applied, else no weak pulls are applied. We defined this in reverse.
      
      Reference: Table 18-5 (Description of the pad configuration register
      bits) in Technical Reference Manual Revision (DRA74x revision Q:
      SPRUHI2Q Revised June 2014 and DRA72x revision F: SPRUHP2F - Revised
      June 2014)
      
      Fixes: 6e58b8f1 ("ARM: dts: DRA7: Add the dts files for dra7 SoC and dra7-evm board")
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Tested-by: NFelipe Balbi <balbi@ti.com>
      Acked-by: NFelipe Balbi <balbi@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      23d9cec0
    • T
      acpi, apei, ghes: Factor out ioremap virtual memory for IRQ and NMI context. · 594c7255
      Tomasz Nowicki 提交于
      GHES currently maps two pages with atomic_ioremap.  From now
      on, NMI is architectural depended so there is no need to allocate
      an NMI page for platforms without NMI support.
      
      To make it possible to not use a second page, swap the existing
      page order so that the IRQ context page is first, and the optional
      NMI context page is second.  Then, use HAVE_ACPI_APEI_NMI to decide
      how many pages are to be allocated.
      Signed-off-by: NTomasz Nowicki <tomasz.nowicki@linaro.org>
      Acked-by: NBorislav Petkov <bp@suse.de>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      594c7255
    • T
      acpi, apei, ghes: Make NMI error notification to be GHES architecture extension. · 44a69f61
      Tomasz Nowicki 提交于
      Currently APEI depends on x86 architecture. It is because of NMI hardware
      error notification of GHES which is currently supported by x86 only.
      However, many other APEI features can be still used perfectly by other
      architectures.
      
      This commit adds two symbols:
      1. HAVE_ACPI_APEI for those archs which support APEI.
      2. HAVE_ACPI_APEI_NMI which is used for NMI code isolation in ghes.c
         file. NMI related data and functions are grouped so they can be wrapped
         inside one #ifdef section. Appropriate function stubs are provided for
         !NMI case.
      
      Note there is no functional changes for x86 due to hard selected
      HAVE_ACPI_APEI and HAVE_ACPI_APEI_NMI symbols.
      Signed-off-by: NTomasz Nowicki <tomasz.nowicki@linaro.org>
      Acked-by: NBorislav Petkov <bp@suse.de>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      44a69f61
    • T
      apei, mce: Factor out APEI architecture specific MCE calls. · 9dae3d0d
      Tomasz Nowicki 提交于
      This commit abstracts MCE calls and provides weak corresponding default
      implementation for those architectures which do not need arch specific
      actions. Each platform willing to do additional architectural actions
      should provides desired function definition. It allows us to avoid wrap
      code into #ifdef in generic code and prevent new platform from introducing
      dummy stub function too.
      
      Initially, there are two APEI arch-specific calls:
      - arch_apei_enable_cmcff()
      - arch_apei_report_mem_error()
      Both interact with MCE driver for X86 architecture.
      Signed-off-by: NTomasz Nowicki <tomasz.nowicki@linaro.org>
      Acked-by: NBorislav Petkov <bp@suse.de>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      9dae3d0d
  11. 22 7月, 2014 1 次提交
    • A
      fuse: add FUSE_NO_OPEN_SUPPORT flag to INIT · d7afaec0
      Andrew Gallagher 提交于
      Here some additional changes to set a capability flag so that clients can
      detect when it's appropriate to return -ENOSYS from open.
      
      This amends the following commit introduced in 3.14:
      
        7678ac50  fuse: support clients that don't implement 'open'
      
      However we can only add the flag to 3.15 and later since there was no
      protocol version update in 3.14.
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      Cc: <stable@vger.kernel.org> # v3.15+
      d7afaec0
  12. 19 7月, 2014 12 次提交