29 Jul, 2015

1 commit


25 Mar, 2015

1 commit

  • 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
     

22 Jan, 2015

1 commit


09 Sep, 2014

1 commit

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

    Heiko Carstens
     

31 Oct, 2013

1 commit

  • Add a new Kconfig choice group which allows to configure how gcc should
    tune the generated code (via -mtune option).
    By default the -mtune parameter will match the -march parameter.

    This is a rather large patch, but I wouldn't know how to make this shorter
    unfortunately.

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

    Heiko Carstens
     

24 Oct, 2013

1 commit

  • Currently we only set the -march compiler option if the kbuild
    system figured out that the compiler actually supports the selected
    architecture (cc-option test).

    In result this means that no -march compiler option is set when an
    unsupported cpu architecture of the current compiler is selected.
    The kernel compile will afterwards succeed but with the default
    architecture instead of the (unsupported) selected one.

    Change this behaviour, so compiles will fail if the compiler does
    not support the selected cpu architecture.

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

    Heiko Carstens
     

26 Apr, 2013

1 commit


13 Jan, 2013

1 commit

  • The xfs module uses a lot of tracepoint, with TRACEPOINTS=y and a
    few debugging options the GOT table of the xfs module will get
    bigger than 4K. To get a working xfs module it needs to be compiled
    with -fPIC instead of -fpic. To play safe use -fPIC for all modules.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     

23 Nov, 2012

1 commit

  • Allow to generate code that only runs on zEC12 machines.

    Also add a check which prevents the kernel to run on machines which
    do not have any of the following new facilities installed:

    - (48) decimal-floating-point zoned-conversion
    - (49) execution-hint
    - (49) load-and-trap
    - (49) miscellaneous-instruction-extensions
    - (49) processor-assist
    - (50) constrained transactional-execution
    - (73) transactional-execution

    48, 49, 50 and 73 are the bit numbers of the facility indications for
    each of the required facilities.

    Note that we assume that user-space gets compiled with the same
    compiler options, therefore we also test for a dfp facility even
    if the kernel doesn't make use of it.

    Signed-off-by: Heiko Carstens

    Heiko Carstens
     

05 May, 2012

1 commit

  • Same code. Use the generic version. The special Makefile treatment is
    pointless anyway as init_task.o contains only data which is handled by
    the linker script. So no point on being treated like head text.

    Signed-off-by: Thomas Gleixner
    Cc: Martin Schwidefsky
    Acked-by: Heiko Carstens
    Link: http://lkml.kernel.org/r/20120503085035.271439530@linutronix.de

    Thomas Gleixner
     

19 Jan, 2012

1 commit

  • The vmlinux file for s390 contains a currently unused entry point,
    which is specified in two different locations: the linker script
    and the makefile. As it happens both definitions are different and
    the linker file is broken (_start does not exist) and the makefile
    specifies an entry point which makes no sense (the SALIPL loader
    entry point).

    So lets get rid of one definition (the makefile) and use the entry
    point of all other ipl methods (0x10000 -> startup) to be consistent.

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

    Christian Borntraeger
     

27 Dec, 2011

1 commit


16 Mar, 2011

1 commit

  • Newer gcc versions offer an architecture-independent option to check
    the stack size and warn if it reaches a certain limit. This option
    already existed for s390 by using -mwarn-dynamicstack. Since one
    stack check option is enough remove the s390 specific stack check
    but keep the option that warns about dynamic stack usage because
    that is not covered by the generic option.

    Signed-off-by: Jan Glauber
    Signed-off-by: Martin Schwidefsky

    Jan Glauber
     

25 Oct, 2010

2 commits


04 Aug, 2010

1 commit


03 Aug, 2010

1 commit

  • It is now possible to assign options to AS, CC and LD
    on the command line - which is only used when building modules.

    {A,C,LD}FLAGS_MODULE was all used both in the top-level Makefile
    in the arch makefiles, thus users had no way to specify
    additional options to AS, CC, LD when building modules
    without overriding the original value.

    Introduce a new set of variables KBUILD_{A,C,LD}FLAGS_MODULE
    that is used by arch specific files and free up
    {A,C,LD}FLAGS_MODULE so they can be assigned on
    the command line.

    All arch Makefiles that used the old variables has been updated.

    Note: Previously we had a MODFLAGS variable for both
    AS and CC. But in favour of consistency this was dropped.
    So in some cases arch Makefile has one assignmnet replaced by
    two assignmnets.

    Note2: MODFLAGS was not documented and is dropped
    without any notice. I do not expect much/any breakage
    from this.

    Signed-off-by: Sam Ravnborg
    Cc: Denys Vlasenko
    Cc: Haavard Skinnemoen
    Cc: Mike Frysinger
    Cc: Tony Luck
    Cc: Geert Uytterhoeven
    Cc: Ralf Baechle
    Cc: Benjamin Herrenschmidt
    Cc: Martin Schwidefsky
    Cc: Chen Liqin
    Acked-by: Mike Frysinger [blackfin]
    Acked-by: Haavard Skinnemoen [avr32]
    Signed-off-by: Michal Marek

    Sam Ravnborg
     

17 May, 2010

1 commit


27 Feb, 2010

1 commit


11 Sep, 2009

1 commit


16 Jun, 2009

1 commit


25 Dec, 2008

1 commit


27 Apr, 2008

1 commit

  • This patch contains the port of Qumranet's kvm kernel module to IBM zSeries
    (aka s390x, mainframe) architecture. It uses the mainframe's virtualization
    instruction SIE to run virtual machines with up to 64 virtual CPUs each.
    This port is only usable on 64bit host kernels, and can only run 64bit guest
    kernels. However, running 31bit applications in guest userspace is possible.

    The following source files are introduced by this patch
    arch/s390/kvm/kvm-s390.c similar to arch/x86/kvm/x86.c, this implements all
    arch callbacks for kvm. __vcpu_run calls back into
    sie64a to enter the guest machine context
    arch/s390/kvm/sie64a.S assembler function sie64a, which enters guest
    context via SIE, and switches world before and after that
    include/asm-s390/kvm_host.h contains all vital data structures needed to run
    virtual machines on the mainframe
    include/asm-s390/kvm.h defines kvm_regs and friends for user access to
    guest register content
    arch/s390/kvm/gaccess.h functions similar to uaccess to access guest memory
    arch/s390/kvm/kvm-s390.h header file for kvm-s390 internals, extended by
    later patches

    Acked-by: Martin Schwidefsky
    Signed-off-by: Christian Borntraeger
    Signed-off-by: Heiko Carstens
    Signed-off-by: Carsten Otte
    Signed-off-by: Avi Kivity

    Heiko Carstens
     

16 Oct, 2007

1 commit

  • The variable AFLAGS is a wellknown variable and the usage by
    kbuild may result in unexpected behaviour.
    On top of that several people over time has asked for a way to
    pass in additional flags to gcc.

    This patch replace use of AFLAGS with KBUILD_AFLAGS all over
    the tree.

    Patch was tested on following architectures:
    alpha, arm, i386, x86_64, mips, sparc, sparc64, ia64, m68k, s390

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     

15 Oct, 2007

1 commit

  • The variable CFLAGS is a wellknown variable and the usage by
    kbuild may result in unexpected behaviour.
    On top of that several people over time has asked for a way to
    pass in additional flags to gcc.

    This patch replace use of CFLAGS with KBUILD_CFLAGS all over the
    tree and enabling one to use:
    make CFLAGS=...
    to specify additional gcc commandline options.

    One usecase is when trying to find gcc bugs but other
    use cases has been requested too.

    Patch was tested on following architectures:
    alpha, arm, i386, x86_64, mips, sparc, sparc64, ia64, m68k

    Test was simple to do a defconfig build, apply the patch and check
    that nothing got rebuild.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     

16 Jul, 2007

1 commit


27 Apr, 2007

2 commits

  • s390 machines provide hardware support for creating Linux dumps on SCSI
    disks. For creating a dump a special purpose dump Linux is used. The first
    32 MB of memory are saved by the hardware before the dump Linux is
    booted. Via an SCLP interface, the saved memory can be accessed from
    Linux. This patch exports memory and registers of the crashed Linux to
    userspace via a debugfs file. For more information refer to
    Documentation/s390/zfcpdump.txt, which is included in this patch.

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

    Michael Holzheu
     
  • Recent cvs versions of gcc have support for an improved stack overflow
    checking that calculates the size of the guard size for each function.
    If the compiler accepts -mstack-size without -mstack-guard then the
    new stack check is available. We always want to use the new stack
    checker.

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

    Martin Schwidefsky
     

21 Feb, 2007

1 commit


04 Dec, 2006

1 commit


28 Sep, 2006

1 commit


04 Jul, 2006

1 commit


23 Jun, 2006

1 commit

  • On zSeries machines there exists an interface which allows the operating
    system to retrieve LPAR hypervisor accounting data. For example, it is
    possible to get usage data for physical and virtual cpus. In order to
    provide this information to user space programs, I implemented a new
    virtual Linux file system named 's390_hypfs' using the Linux 2.6 libfs
    framework. The name 's390_hypfs' stands for 'S390 Hypervisor Filesystem'.
    All the accounting information is put into different virtual files which
    can be accessed from user space. All data is represented as ASCII strings.

    When the file system is mounted the accounting information is retrieved and
    a file system tree is created with the attribute files containing the cpu
    information. The content of the files remains unchanged until a new update
    is made. An update can be triggered from user space through writing
    'something' into a special purpose update file.

    We create the following directory structure:

    /
    update
    cpus/

    type
    mgmtime

    ...
    hyp/
    type
    systems/

    cpus/

    type
    mgmtime
    cputime
    onlinetime

    ...

    cpus/
    ...

    - update: File to trigger update
    - cpus/: Directory for all physical cpus
    - cpus//: Directory for one physical cpu.
    - cpus//type: Type name of physical zSeries cpu.
    - cpus//mgmtime: Physical-LPAR-management time in microseconds.
    - hyp/: Directory for hypervisor information
    - hyp/type: Typ of hypervisor (currently only 'LPAR Hypervisor')
    - systems/: Directory for all LPARs
    - systems//: Directory for one LPAR.
    - systems//cpus//: Directory for the virtual cpus
    - systems//cpus//type: Typ of cpu.
    - systems//cpus//mgmtime:
    Accumulated number of microseconds during which a physical
    CPU was assigned to the logical cpu and the cpu time was
    consumed by the hypervisor and was not provided to
    the LPAR (LPAR overhead).

    - systems//cpus//cputime:
    Accumulated number of microseconds during which a physical CPU
    was assigned to the logical cpu and the cpu time was consumed
    by the LPAR.

    - systems//cpus//onlinetime:
    Accumulated number of microseconds during which the logical CPU
    has been online.

    As mount point for the filesystem /sys/hypervisor/s390 is created.

    The update process is triggered when writing 'something' into the
    'update' file at the top level hypfs directory. You can do this e.g.
    with 'echo 1 > update'. During the update the whole directory structure
    is deleted and built up again.

    Cc: Pekka Enberg
    Cc: Ingo Oeser
    Cc: Joern Engel
    Acked-by: Martin Schwidefsky
    Signed-off-by: Michael Holzheu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Holzheu
     

11 Apr, 2006

1 commit


07 Jan, 2006

1 commit

  • Sanitize some s390 Kconfig options. We have ARCH_S390, ARCH_S390X,
    ARCH_S390_31, 64BIT, S390_SUPPORT and COMPAT. Replace these 6 options by
    S390, 64BIT and COMPAT.

    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Martin Schwidefsky
     

07 Nov, 2005

1 commit


10 Sep, 2005

3 commits