1. 09 Oct, 2014 1 commit
    • Martin Schwidefsky's avatar
      s390: add support for vector extension · 80703617
      Martin Schwidefsky authored
      The vector extension introduces 32 128-bit vector registers and a set of
      instruction to operate on the vector registers.
      
      The kernel can control the use of vector registers for the problem state
      program with a bit in control register 0. Once enabled for a process the
      kernel needs to retain the content of the vector registers on context
      switch. The signal frame is extended to include the vector registers.
      Two new register sets NT_S390_VXRS_LOW and NT_S390_VXRS_HIGH are added
      to the regset interface for the debugger and core dumps.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      80703617
  2. 09 Sep, 2014 1 commit
  3. 20 May, 2014 1 commit
  4. 03 Apr, 2014 1 commit
    • Martin Schwidefsky's avatar
      s390/mm,tlb: optimize TLB flushing for zEC12 · 1b948d6c
      Martin Schwidefsky authored
      The zEC12 machines introduced the local-clearing control for the IDTE
      and IPTE instruction. If the control is set only the TLB of the local
      CPU is cleared of entries, either all entries of a single address space
      for IDTE, or the entry for a single page-table entry for IPTE.
      Without the local-clearing control the TLB flush is broadcasted to all
      CPUs in the configuration, which is expensive.
      
      The reset of the bit mask of the CPUs that need flushing after a
      non-local IDTE is tricky. As TLB entries for an address space remain
      in the TLB even if the address space is detached a new bit field is
      required to keep track of attached CPUs vs. CPUs in the need of a
      flush. After a non-local flush with IDTE the bit-field of attached CPUs
      is copied to the bit-field of CPUs in need of a flush. The ordering
      of operations on cpu_attach_mask, attach_count and mm_cpumask(mm) is
      such that an underindication in mm_cpumask(mm) is prevented but an
      overindication in mm_cpumask(mm) is possible.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      1b948d6c
  5. 21 Feb, 2014 1 commit
  6. 15 Nov, 2013 1 commit
  7. 24 Oct, 2013 1 commit
  8. 03 May, 2013 1 commit
  9. 02 May, 2013 2 commits
  10. 14 Feb, 2013 2 commits
    • Hendrik Brueckner's avatar
      s390/cleanup: rename SPP to LPP · 23d18e8d
      Hendrik Brueckner authored
      The set-program-parameter (SPP) instruction has been renamed to
      load-program-parameter (LPP) (see SA23-2260).  Reflect this change
      and rename all macro/instruction references.
      
      Also remove the duplicate SPP/LPP entry in the kernel disassembler
      instruction list.
      Signed-off-by: default avatarHendrik Brueckner <brueckner@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      23d18e8d
    • Martin Schwidefsky's avatar
      s390/mm: implement software dirty bits · abf09bed
      Martin Schwidefsky authored
      The s390 architecture is unique in respect to dirty page detection,
      it uses the change bit in the per-page storage key to track page
      modifications. All other architectures track dirty bits by means
      of page table entries. This property of s390 has caused numerous
      problems in the past, e.g. see git commit ef5d437f
      "mm: fix XFS oops due to dirty pages without buffers on s390".
      
      To avoid future issues in regard to per-page dirty bits convert
      s390 to a fault based software dirty bit detection mechanism. All
      user page table entries which are marked as clean will be hardware
      read-only, even if the pte is supposed to be writable. A write by
      the user process will trigger a protection fault which will cause
      the user pte to be marked as dirty and the hardware read-only bit
      is removed.
      
      With this change the dirty bit in the storage key is irrelevant
      for Linux as a host, but the storage key is still required for
      KVM guests. The effect is that page_test_and_clear_dirty and the
      related code can be removed. The referenced bit in the storage
      key is still used by the page_test_and_clear_young primitive to
      provide page age information.
      
      For page cache pages of mappings with mapping_cap_account_dirty
      there will not be any change in behavior as the dirty bit tracking
      already uses read-only ptes to control the amount of dirty pages.
      Only for swap cache pages and pages of mappings without
      mapping_cap_account_dirty there can be additional protection faults.
      To avoid an excessive number of additional faults the mk_pte
      primitive checks for PageDirty if the pgprot value allows for writes
      and pre-dirties the pte. That avoids all additional faults for
      tmpfs and shmem pages until these pages are added to the swap cache.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      abf09bed
  11. 09 Oct, 2012 4 commits
  12. 26 Sep, 2012 2 commits
  13. 30 Jul, 2012 1 commit
  14. 20 Jul, 2012 1 commit
    • Heiko Carstens's avatar
      s390/comments: unify copyright messages and remove file names · a53c8fab
      Heiko Carstens authored
      Remove the file name from the comment at top of many files. In most
      cases the file name was wrong anyway, so it's rather pointless.
      
      Also unify the IBM copyright statement. We did have a lot of sightly
      different statements and wanted to change them one after another
      whenever a file gets touched. However that never happened. Instead
      people start to take the old/"wrong" statements to use as a template
      for new files.
      So unify all of them in one go.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      a53c8fab
  15. 24 May, 2012 1 commit
  16. 16 May, 2012 1 commit
  17. 28 Mar, 2012 1 commit
  18. 14 Nov, 2011 1 commit
  19. 30 Oct, 2011 1 commit
  20. 25 Oct, 2010 1 commit
  21. 17 May, 2010 1 commit
  22. 26 Feb, 2010 2 commits
  23. 07 Dec, 2009 1 commit
    • Martin Schwidefsky's avatar
      [S390] Improve address space mode selection. · b11b5334
      Martin Schwidefsky authored
      Introduce user_mode to replace the two variables switch_amode and
      s390_noexec. There are three valid combinations of the old values:
        1) switch_amode == 0 && s390_noexec == 0
        2) switch_amode == 1 && s390_noexec == 0
        3) switch_amode == 1 && s390_noexec == 1
      They get replaced by
        1) user_mode == HOME_SPACE_MODE
        2) user_mode == PRIMARY_SPACE_MODE
        3) user_mode == SECONDARY_SPACE_MODE
      The new kernel parameter user_mode=[primary,secondary,home] lets
      you choose the address space mode the user space processes should
      use. In addition the CONFIG_S390_SWITCH_AMODE config option
      is removed.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      b11b5334
  24. 11 Sep, 2009 1 commit
  25. 14 Apr, 2009 1 commit
  26. 19 Feb, 2009 1 commit
  27. 01 Aug, 2008 2 commits
  28. 17 Jul, 2008 1 commit
  29. 14 Jul, 2008 3 commits
  30. 30 Apr, 2008 1 commit