30 Dec, 2015

1 commit


18 Dec, 2015

1 commit

  • head.S on s390 contains some sanity checks if the kernel will run on a
    machine or if the machine is too old, e.g. if the kernel contains
    instructions not available on the machine. If so, it will emit an error
    message to the console before it stops execution.

    Therefore head.S contains only instructions which are availanble with the
    earliest machine generation (z900). In order to make sure we don't
    accidently add instructions which are not available on z900, always compile
    with -march=z900. This makes sure compilation will fail if wrong
    instructions are used.

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

    Heiko Carstens
     

14 Oct, 2015

1 commit


29 Jul, 2015

1 commit


25 Mar, 2015

3 commits

  • Rename two more files which I forgot. Also remove the "asm" from the
    swsusp_asm64.S file, since the ".S" suffix already makes it obvious
    that this file contains assembler code.

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

    Heiko Carstens
     
  • Rename a couple of files to get rid of the "64" suffix.
    "git blame" will still work.

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

    Heiko Carstens
     
  • Remove the 31 bit support in order to reduce maintenance cost and
    effectively remove dead code. Since a couple of years there is no
    distribution left that comes with a 31 bit kernel.

    The 31 bit kernel also has been broken since more than a year before
    anybody noticed. In addition I added a removal warning to the kernel
    shown at ipl for 5 minutes: a960062e5826 ("s390: add 31 bit warning
    message") which let everybody know about the plan to remove 31 bit
    code. We didn't get any response.

    Given that the last 31 bit only machine was introduced in 1999 let's
    remove the code.
    Anybody with 31 bit user space code can still use the compat mode.

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

    Heiko Carstens
     

29 Jan, 2015

1 commit

  • Make use of gcc's hotpatch support to generate better code for ftrace
    function tracing.
    The generated code now contains only a six byte nop in each function
    prologue instead of a 24 byte code block which will be runtime patched to
    support function tracing.
    With the new code generation the runtime overhead for supporting function
    tracing is close to zero, while the original code did show a significant
    performance impact.

    Acked-by: Steven Rostedt
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     

09 Oct, 2014

2 commits


25 Sep, 2014

1 commit


09 Sep, 2014

1 commit

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

    Heiko Carstens
     

07 Mar, 2014

1 commit

  • The whole compat exec domain code doesn't make any difference.

    From the registered s390_exec_domain:

    - exec domain name is only displayed in /proc/execdomains
    - handler is unused
    - pers_low and pers_high are only used internally to find this specific
    exec domain otherwise the default exec domain will be used
    - all other fields match the default exec domain

    So let's get rid of this.

    Reported-by: Thomas Gleixner
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     

16 Dec, 2013

2 commits

  • Introduce a perf PMU, "cpum_sf", to support the CPU-Measurement
    Sampling Facility. You can control the sampling facility through
    this perf PMU interfaces. Perf sampling events are created for
    hardware samples.

    For details about the CPU-Measurement Sampling Facility, see
    "The Load-Program-Parameter and the CPU-Measurement Facilities" (SA23-2260).

    Signed-off-by: Hendrik Brueckner
    Signed-off-by: Martin Schwidefsky

    Hendrik Brueckner
     
  • Provide PMU event attributes for supported counters and export their symbolic
    names to the sysfs "events" directory.

    See the /sys/devices/cpum_cf/events/ directory for a list of available counters.
    Note that you might require counter set authorizations for the LPAR to use them.

    Signed-off-by: Hendrik Brueckner
    Signed-off-by: Martin Schwidefsky

    Hendrik Brueckner
     

24 Oct, 2013

1 commit

  • Just like all other architectures we should use out-of-line find bit
    operations, since the inline variant bloat the size of the kernel image.
    And also like all other architecures we should only supply optimized
    variants of the __ffs, ffs, etc. primitives.

    Therefore this patch removes the inlined s390 find bit functions and uses
    the generic out-of-line variants instead.

    The optimization of the primitives follows with the next patch.

    With this patch also the functions find_first_bit_left() and
    find_next_bit_left() have been reimplemented, since logically, they are
    nothing else but a find_first_bit()/find_next_bit() implementation that
    use an inverted __fls() instead of __ffs().
    Also the restriction that these functions only work on machines which
    support the "flogr" instruction is gone now.

    This reduces the size of the kernel image (defconfig, -march=z9-109)
    by 144,482 bytes.
    Alone the size of the function build_sched_domains() gets reduced from
    7 KB to 3,5 KB.

    We also git rid of unused functions like find_first_bit_le()...

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

    Heiko Carstens