1. 13 12月, 2016 3 次提交
  2. 12 12月, 2016 4 次提交
  3. 07 12月, 2016 6 次提交
    • V
      s390/sysinfo: show partition extended name and UUID if available · e32eae10
      Viktor Mihajlovski 提交于
      Extract extended name and UUID from SYSIB 2.2.2 data.
      As the code to convert the raw extended name into printable format
      can be reused by stsi_2_2_2 we're moving the conversion code into a
      separate function convert_ext_name.
      Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
      Reviewed-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      e32eae10
    • H
      s390/numa: establish cpu to node mapping early · 8c910580
      Heiko Carstens 提交于
      Initialize the cpu topology and therefore also the cpu to node mapping
      much earlier. Fixes this warning and subsequent crashes when using the
      fake numa emulation mode on s390:
      
      WARNING: CPU: 0 PID: 1 at include/linux/cpumask.h:121 select_task_rq+0xe6/0x1a8
      CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.6.0-rc6-00001-ge9d867a6-dirty #28
      task: 00000001dd270008 ti: 00000001eccb4000 task.ti: 00000001eccb4000
      Krnl PSW : 0404c00180000000 0000000000176c56 (select_task_rq+0xe6/0x1a8)
                 R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:3 CC:0 PM:0 RI:0 EA:3
      Call Trace:
      ([<0000000000176c30>] select_task_rq+0xc0/0x1a8)
      ([<0000000000177d64>] try_to_wake_up+0x2e4/0x478)
      ([<000000000015d46c>] create_worker+0x174/0x1c0)
      ([<0000000000161a98>] alloc_unbound_pwq+0x360/0x438)
      ([<0000000000162550>] apply_wqattrs_prepare+0x200/0x2a0)
      ([<000000000016266a>] apply_workqueue_attrs_locked+0x7a/0xb0)
      ([<0000000000162af0>] apply_workqueue_attrs+0x50/0x78)
      ([<000000000016441c>] __alloc_workqueue_key+0x304/0x520)
      ([<0000000000ee3706>] default_bdi_init+0x3e/0x70)
      ([<0000000000100270>] do_one_initcall+0x140/0x1d8)
      ([<0000000000ec9da8>] kernel_init_freeable+0x220/0x2d8)
      ([<0000000000984a7a>] kernel_init+0x2a/0x150)
      ([<00000000009913fa>] kernel_thread_starter+0x6/0xc)
      ([<00000000009913f4>] kernel_thread_starter+0x0/0xc)
      Reviewed-by: NMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      8c910580
    • H
      s390/topology: use cpu_topology array instead of per cpu variable · 30fc4ca2
      Heiko Carstens 提交于
      CPU topology information like cpu to node mapping must be setup in
      setup_arch already. Topology information is currently made available
      with a per cpu variable; this however will not work when the
      initialization will be moved to setup_arch, since the generic percpu
      setup will be done much later.
      
      Therefore convert back to a cpu_topology array.
      Reviewed-by: NMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      30fc4ca2
    • H
      s390/smp: initialize cpu_present_mask in setup_arch · af51160e
      Heiko Carstens 提交于
      In order to be able to setup the cpu to node mappings early it is a
      prerequisite to know which cpus are present. Therefore cpus must be
      detected much earlier than before.
      
      For sclp based cpu detection this requires yet another early sclp
      call, since the system is not ready to use the regular interrupt and
      memory allocations.
      Reviewed-by: NMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      af51160e
    • H
      s390/numa: always use logical cpu and core ids · 307b3114
      Heiko Carstens 提交于
      The toptree algorithm uses the physical core ids to create a mapping
      between cores and nodes (to_node_id array within emu_cores structure).
      The core ids are used as an index into an array which size depends on
      CONFIG_NR_CPUS. If the physical core ids are larger, this will result
      in out-of-bounds write accesses.
      
      Generate logical core ids instead to avoid this.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      307b3114
    • M
      s390: Remove VLAIS in ptff() and clear_table() · 11a247e3
      Michael Holzheu 提交于
      The ptff() and clear_table() functions use the gcc extension "variable
      length arrays in structures" (VLAIS) to define in the inline assembler
      constraints the area of the clobbered memory. This extension will most
      likely never be supported by LLVM/Clang.
      
      Since currently BPF programs are compiled with LLVM, this leads to the
      following compile errors:
      
       $ cd samples/bpf
       $ make
      
       In file included from /root/linux-master/samples/bpf/tracex1_kern.c:8:
       In file included from ./include/linux/netdevice.h:44:
       ...
       In file included from ./arch/s390/include/asm/mmu_context.h:10:
        ./arch/s390/include/asm/pgalloc.h:30:24: error: fields must have a
        constant size: 'variable length array in structure' extension will never
        be supported
               typedef struct { char _[n]; } addrtype;
      
       In file included from /root/linux-master/samples/bpf/tracex1_kern.c:7:
       In file included from ./include/linux/skbuff.h:18:
       ...
       In file included from ./include/linux/jiffies.h:8:
       In file included from ./include/linux/timex.h:65:
        ./arch/s390/include/asm/timex.h:105:24: error: fields must have a
        constant size: 'variable length array in structure' extension will never
        be supported
              typedef struct { char _[len]; } addrtype;
      
      To fix this do the following:
      
       - Convert ptff() into a macro that then uses a fixed size array
         when expanded.
       - Convert the clear_table() function and use an inline assembly
         with fixed size array in a loop.
         The runtime performance of the new version is even better than
         the old version (tested with EC12/z13 and gcc 4.8.5/6.2.1 with
         "-march=z196 -O2").
      Reported-by: NZvonko Kosic <zvonko.kosic@de.ibm.com>
      Signed-off-by: NMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Acked-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      11a247e3
  4. 30 11月, 2016 1 次提交
    • F
      tcp: SOF_TIMESTAMPING_OPT_STATS option for SO_TIMESTAMPING · 1c885808
      Francis Yan 提交于
      This patch exports the sender chronograph stats via the socket
      SO_TIMESTAMPING channel. Currently we can instrument how long a
      particular application unit of data was queued in TCP by tracking
      SOF_TIMESTAMPING_TX_SOFTWARE and SOF_TIMESTAMPING_TX_SCHED. Having
      these sender chronograph stats exported simultaneously along with
      these timestamps allow further breaking down the various sender
      limitation.  For example, a video server can tell if a particular
      chunk of video on a connection takes a long time to deliver because
      TCP was experiencing small receive window. It is not possible to
      tell before this patch without packet traces.
      
      To prepare these stats, the user needs to set
      SOF_TIMESTAMPING_OPT_STATS and SOF_TIMESTAMPING_OPT_TSONLY flags
      while requesting other SOF_TIMESTAMPING TX timestamps. When the
      timestamps are available in the error queue, the stats are returned
      in a separate control message of type SCM_TIMESTAMPING_OPT_STATS,
      in a list of TLVs (struct nlattr) of types: TCP_NLA_BUSY_TIME,
      TCP_NLA_RWND_LIMITED, TCP_NLA_SNDBUF_LIMITED. Unit is microsecond.
      Signed-off-by: NFrancis Yan <francisyyan@gmail.com>
      Signed-off-by: NYuchung Cheng <ycheng@google.com>
      Signed-off-by: NSoheil Hassas Yeganeh <soheil@google.com>
      Acked-by: NNeal Cardwell <ncardwell@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1c885808
  5. 29 11月, 2016 3 次提交
  6. 23 11月, 2016 4 次提交
  7. 22 11月, 2016 1 次提交
  8. 17 11月, 2016 1 次提交
  9. 16 11月, 2016 3 次提交
  10. 15 11月, 2016 1 次提交
  11. 11 11月, 2016 6 次提交
  12. 07 11月, 2016 2 次提交
  13. 28 10月, 2016 2 次提交
  14. 25 10月, 2016 1 次提交
  15. 17 10月, 2016 2 次提交
    • H
      s390/dumpstack: get rid of return_address again · dcddba96
      Heiko Carstens 提交于
      With commit ef6000b4 ("Disable the __builtin_return_address()
      warning globally after all)" the kernel does not warn at all again if
      __builtin_return_address(n) is called with n > 0.
      
      Besides the fact that this was a false warning on s390 anyway, due to
      the always present backchain, we can now revert commit 56063306
      ("s390/dumpstack: implement and use return_address()") again, to
      simplify the code again.
      
      After all I shouldn't have had return_address() implememted at all to
      workaround this issue. So get rid of this again.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      dcddba96
    • H
      s390/dumpstack: restore reliable indicator for call traces · d0208639
      Heiko Carstens 提交于
      Before merging all different stack tracers the call traces printed had
      an indicator if an entry can be considered reliable or not.
      Unreliable entries were put in braces, reliable not. Currently all
      lines contain these extra braces.
      
      This patch restores the old behaviour by adding an extra "reliable"
      parameter to the callback functions. Only show_trace makes currently
      use of it.
      
      Before:
      [    0.804751] Call Trace:
      [    0.804753] ([<000000000017d0e0>] try_to_wake_up+0x318/0x5e0)
      [    0.804756] ([<0000000000161d64>] create_worker+0x174/0x1c0)
      
      After:
      [    0.804751] Call Trace:
      [    0.804753] ([<000000000017d0e0>] try_to_wake_up+0x318/0x5e0)
      [    0.804756]  [<0000000000161d64>] create_worker+0x174/0x1c0
      
      Fixes: 758d39eb ("s390/dumpstack: merge all four stack tracers")
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      d0208639