An error occurred fetching the project authors.
  1. 18 Apr, 2020 1 commit
  2. 21 Feb, 2020 1 commit
    • Dan Williams's avatar
      mm/memremap_pages: Introduce memremap_compat_align() · 9ffc1d19
      Dan Williams authored
      The "sub-section memory hotplug" facility allows memremap_pages() users
      like libnvdimm to compensate for hardware platforms like x86 that have a
      section size larger than their hardware memory mapping granularity.  The
      compensation that sub-section support affords is being tolerant of
      physical memory resources shifting by units smaller (64MiB on x86) than
      the memory-hotplug section size (128 MiB). Where the platform
      physical-memory mapping granularity is limited by the number and
      capability of address-decode-registers in the memory controller.
      
      While the sub-section support allows memremap_pages() to operate on
      sub-section (2MiB) granularity, the Power architecture may still
      require 16MiB alignment on "!radix_enabled()" platforms.
      
      In order for libnvdimm to be able to detect and manage this per-arch
      limitation, introduce memremap_compat_align() as a common minimum
      alignment across all driver-facing memory-mapping interfaces, and let
      Power override it to 16MiB in the "!radix_enabled()" case.
      
      The assumption / requirement for 16MiB to be a viable
      memremap_compat_align() value is that Power does not have platforms
      where its equivalent of address-decode-registers never hardware remaps a
      persistent memory resource on smaller than 16MiB boundaries. Note that I
      tried my best to not add a new Kconfig symbol, but header include
      entanglements defeated the #ifndef memremap_compat_align design pattern
      and the need to export it defeats the __weak design pattern for arch
      overrides.
      
      Based on an initial patch by Aneesh.
      
      Link: http://lore.kernel.org/r/CAPcyv4gBGNP95APYaBcsocEa50tQj9b5h__83vgngjq3ouGX_Q@mail.gmail.comReported-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
      Reported-by: default avatarJeff Moyer <jmoyer@redhat.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Reviewed-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
      Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      9ffc1d19
  3. 10 Feb, 2020 1 commit
  4. 31 Jan, 2020 1 commit
    • Mikhail Zaslonko's avatar
      lib/zlib: add s390 hardware support for kernel zlib_deflate · aa5b395b
      Mikhail Zaslonko authored
      Patch series "S390 hardware support for kernel zlib", v3.
      
      With IBM z15 mainframe the new DFLTCC instruction is available.  It
      implements deflate algorithm in hardware (Nest Acceleration Unit - NXU)
      with estimated compression and decompression performance orders of
      magnitude faster than the current zlib.
      
      This patchset adds s390 hardware compression support to kernel zlib.
      The code is based on the userspace zlib implementation:
      
      	https://github.com/madler/zlib/pull/410
      
      The coding style is also preserved for future maintainability.  There is
      only limited set of userspace zlib functions represented in kernel.
      Apart from that, all the memory allocation should be performed in
      advance.  Thus, the workarea structures are extended with the parameter
      lists required for the DEFLATE CONVENTION CALL instruction.
      
      Since kernel zlib itself does not support gzip headers, only Adler-32
      checksum is processed (also can be produced by DFLTCC facility).  Like
      it was implemented for userspace, kernel zlib will compress in hardware
      on level 1, and in software on all other levels.  Decompression will
      always happen in hardware (when enabled).
      
      Two DFLTCC compression calls produce the same results only when they
      both are made on machines of the same generation, and when the
      respective buffers have the same offset relative to the start of the
      page.  Therefore care should be taken when using hardware compression
      when reproducible results are desired.  However it does always produce
      the standard conform output which can be inflated anyway.
      
      The new kernel command line parameter 'dfltcc' is introduced to
      configure s390 zlib hardware support:
      
          Format: { on | off | def_only | inf_only | always }
           on:       s390 zlib hardware support for compression on
                     level 1 and decompression (default)
           off:      No s390 zlib hardware support
           def_only: s390 zlib hardware support for deflate
                     only (compression on level 1)
           inf_only: s390 zlib hardware support for inflate
                     only (decompression)
           always:   Same as 'on' but ignores the selected compression
                     level always using hardware support (used for debugging)
      
      The main purpose of the integration of the NXU support into the kernel
      zlib is the use of hardware deflate in btrfs filesystem with on-the-fly
      compression enabled.  Apart from that, hardware support can also be used
      during boot for decompressing the kernel or the ramdisk image
      
      With the patch for btrfs expanding zlib buffer from 1 to 4 pages (patch
      6) the following performance results have been achieved using the
      ramdisk with btrfs.  These are relative numbers based on throughput rate
      and compression ratio for zlib level 1:
      
        Input data              Deflate rate   Inflate rate   Compression ratio
                                NXU/Software   NXU/Software   NXU/Software
        stream of zeroes        1.46           1.02           1.00
        random ASCII data       10.44          3.00           0.96
        ASCII text (dickens)    6,21           3.33           0.94
        binary data (vmlinux)   8,37           3.90           1.02
      
      This means that s390 hardware deflate can provide up to 10 times faster
      compression (on level 1) and up to 4 times faster decompression (refers
      to all compression levels) for btrfs zlib.
      
      Disclaimer: Performance results are based on IBM internal tests using DD
      command-line utility on btrfs on a Fedora 30 based internal driver in
      native LPAR on a z15 system.  Results may vary based on individual
      workload, configuration and software levels.
      
      This patch (of 9):
      
      Create zlib_dfltcc library with the s390 DEFLATE CONVERSION CALL
      implementation and related compression functions.  Update zlib_deflate
      functions with the hooks for s390 hardware support and adjust workspace
      structures with extra parameter lists required for hardware deflate.
      
      Link: http://lkml.kernel.org/r/20200103223334.20669-2-zaslonko@linux.ibm.comSigned-off-by: default avatarIlya Leoshkevich <iii@linux.ibm.com>
      Signed-off-by: default avatarMikhail Zaslonko <zaslonko@linux.ibm.com>
      Co-developed-by: default avatarIlya Leoshkevich <iii@linux.ibm.com>
      Cc: Chris Mason <clm@fb.com>
      Cc: Christian Borntraeger <borntraeger@de.ibm.com>
      Cc: David Sterba <dsterba@suse.com>
      Cc: Eduard Shishkin <edward6@linux.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Josef Bacik <josef@toxicpanda.com>
      Cc: Richard Purdie <rpurdie@rpsys.net>
      Cc: Vasily Gorbik <gor@linux.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      aa5b395b
  5. 13 Jan, 2020 1 commit
  6. 07 Dec, 2019 1 commit
  7. 11 Nov, 2019 1 commit
  8. 10 Nov, 2019 1 commit
  9. 07 Nov, 2019 1 commit
  10. 27 Sep, 2019 2 commits
  11. 11 Sep, 2019 1 commit
  12. 25 Jun, 2019 1 commit
  13. 22 Jun, 2019 1 commit
    • Vincenzo Frascino's avatar
      lib/vdso: Provide generic VDSO implementation · 00b26474
      Vincenzo Frascino authored
      In the last few years the kernel gained quite some architecture specific
      vdso implementations which contain very similar code.
      
      Introduce a generic VDSO implementation of gettimeofday() which will be
      shareable between architectures once they are converted over.
      
      The implementation is based on the current x86 VDSO code.
      
      [ tglx: Massaged changelog and made the kernel doc tabular ]
      Signed-off-by: default avatarVincenzo Frascino <vincenzo.frascino@arm.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Tested-by: default avatarShijith Thotton <sthotton@marvell.com>
      Tested-by: default avatarAndre Przywara <andre.przywara@arm.com>
      Cc: linux-arch@vger.kernel.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-mips@vger.kernel.org
      Cc: linux-kselftest@vger.kernel.org
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Paul Burton <paul.burton@mips.com>
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Cc: Mark Salyzyn <salyzyn@android.com>
      Cc: Peter Collingbourne <pcc@google.com>
      Cc: Shuah Khan <shuah@kernel.org>
      Cc: Dmitry Safonov <0x7f454c46@gmail.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Huw Davies <huw@codeweavers.com>
      Link: https://lkml.kernel.org/r/20190621095252.32307-3-vincenzo.frascino@arm.com
      00b26474
  14. 17 Jun, 2019 1 commit
  15. 21 May, 2019 1 commit
  16. 15 May, 2019 1 commit
  17. 03 May, 2019 1 commit
  18. 29 Apr, 2019 1 commit
    • Thomas Gleixner's avatar
      stacktrace: Provide common infrastructure · 214d8ca6
      Thomas Gleixner authored
      All architectures which support stacktrace carry duplicated code and
      do the stack storage and filtering at the architecture side.
      
      Provide a consolidated interface with a callback function for consuming the
      stack entries provided by the architecture specific stack walker. This
      removes lots of duplicated code and allows to implement better filtering
      than 'skip number of entries' in the future without touching any
      architecture specific code.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Reviewed-by: default avatarJosh Poimboeuf <jpoimboe@redhat.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: linux-arch@vger.kernel.org
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: linux-mm@kvack.org
      Cc: David Rientjes <rientjes@google.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
      Cc: kasan-dev@googlegroups.com
      Cc: Mike Rapoport <rppt@linux.vnet.ibm.com>
      Cc: Akinobu Mita <akinobu.mita@gmail.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: iommu@lists.linux-foundation.org
      Cc: Robin Murphy <robin.murphy@arm.com>
      Cc: Marek Szyprowski <m.szyprowski@samsung.com>
      Cc: Johannes Thumshirn <jthumshirn@suse.de>
      Cc: David Sterba <dsterba@suse.com>
      Cc: Chris Mason <clm@fb.com>
      Cc: Josef Bacik <josef@toxicpanda.com>
      Cc: linux-btrfs@vger.kernel.org
      Cc: dm-devel@redhat.com
      Cc: Mike Snitzer <snitzer@redhat.com>
      Cc: Alasdair Kergon <agk@redhat.com>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: intel-gfx@lists.freedesktop.org
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: dri-devel@lists.freedesktop.org
      Cc: David Airlie <airlied@linux.ie>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Cc: Tom Zanussi <tom.zanussi@linux.intel.com>
      Cc: Miroslav Benes <mbenes@suse.cz>
      Link: https://lkml.kernel.org/r/20190425094803.713568606@linutronix.de
      214d8ca6
  19. 23 Apr, 2019 1 commit
  20. 20 Dec, 2018 1 commit
    • Daniel Verkamp's avatar
      lib/raid6: add option to skip algo benchmarking · be85f93a
      Daniel Verkamp authored
      This is helpful for systems where fast startup time is important.
      It is especially nice to avoid benchmarking RAID functions that are
      never used (for example, BTRFS selects RAID6_PQ even if the parity RAID
      mode is not in use).
      
      This saves 250+ milliseconds of boot time on modern x86 and ARM systems
      with a dozen or more available implementations.
      
      The new option is defaulted to 'y' to match the previous behavior of
      always benchmarking on init.
      Signed-off-by: default avatarDaniel Verkamp <dverkamp@chromium.org>
      Signed-off-by: default avatarShaohua Li <shli@fb.com>
      be85f93a
  21. 06 Dec, 2018 1 commit
  22. 15 Nov, 2018 1 commit
  23. 31 Oct, 2018 1 commit
  24. 23 Oct, 2018 1 commit
    • Zong Li's avatar
      lib: Add umoddi3 and udivmoddi4 of GCC library routines · 6315730e
      Zong Li authored
      Add umoddi3 and udivmoddi4 support for 32-bit.
      
      The RV32 need the umoddi3 to do modulo when the operands are long long
      type, like other libraries implementation such as ucmpdi2, lshrdi3 and
      so on.
      
      I encounter the undefined reference 'umoddi3' when I use the in
      house dma driver, although it is in house driver, but I think that
      umoddi3 is a common function for RV32.
      
      The udivmoddi4 and umoddi3 are copies from libgcc in gcc. There are other
      functions use the udivmoddi4 in libgcc, so I separate the umoddi3 and
      udivmoddi4 for flexible extension in the future.
      Signed-off-by: default avatarZong Li <zong@andestech.com>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      6315730e
  25. 21 Oct, 2018 1 commit
  26. 30 Sep, 2018 1 commit
  27. 22 Aug, 2018 2 commits
  28. 15 Jun, 2018 1 commit
  29. 14 Jun, 2018 1 commit
    • Christoph Hellwig's avatar
      dma-mapping: move all DMA mapping code to kernel/dma · cf65a0f6
      Christoph Hellwig authored
      Currently the code is split over various files with dma- prefixes in the
      lib/ and drives/base directories, and the number of files keeps growing.
      Move them into a single directory to keep the code together and remove
      the file name prefixes.  To match the irq infrastructure this directory
      is placed under the kernel/ directory.
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      cf65a0f6
  30. 23 May, 2018 1 commit
  31. 19 May, 2018 2 commits
  32. 09 May, 2018 5 commits
  33. 23 Apr, 2018 1 commit