mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: barebox@lists.infradead.org
Subject: [PATCH 0/5] lib: zstd: allow use in PBL and shell
Date: Wed, 13 Jul 2022 12:09:17 +0200	[thread overview]
Message-ID: <20220713100922.1880282-1-a.fatoum@pengutronix.de> (raw)

So far, zstd use was only possible from squashfs and ubifs.
Give it an update and add the necessary hooks to have it usable
everywhere where LZO and friends can be used. zstd would've
been a good default for barebox proper compression, but unfortunately,
the decompressor going into the PBL would be quite big:

                        lz4    lzo    gzip   xz     zstd   uncompressed
thumb2 barebox proper   671K   614K   544K   456K   531K   1022K
thumb2 barebox PBL       10K    10K    18K    17K    41K   9K   
RIoTboard FDT            12K    11K     9K     7K     8K   39K
total thumb2 image      693K   635K   571K   480K   580K   974K

So, don't touch the defaults for now.

Series applies on top of
https://lore.barebox.org/barebox/20220713095730.1878941-1-a.fatoum@pengutronix.de/T/#t

Ahmad Fatoum (5):
  lib: zstd: adopt Linux directory structure
  lib: zstd: sync with Linux
  decompressor: define macros for non-PBL case as well
  ARM: cpu: uncompress: increase early malloc pool to 256K
  lib: uncompress: add general zstd support

 arch/arm/include/asm/barebox-arm.h            |    2 +-
 common/bootm.c                                |    8 +
 common/filetype.c                             |    4 +
 fs/squashfs/zstd_wrapper.c                    |    4 +-
 fs/ubifs/ubifs.c                              |    4 +-
 include/filetype.h                            |    2 +
 include/linux/decompress/mm.h                 |   11 +-
 include/linux/decompress/unzstd.h             |   11 +
 include/linux/limits.h                        |    1 +
 include/linux/zstd.h                          | 1252 ++------
 include/linux/zstd_errors.h                   |   77 +
 include/linux/zstd_lib.h                      | 2432 ++++++++++++++++
 lib/Makefile                                  |    1 +
 lib/decompress_unzstd.c                       |  351 +++
 lib/uncompress.c                              |    6 +
 lib/zstd/Makefile                             |   27 +-
 lib/zstd/bitstream.h                          |  374 ---
 lib/zstd/common/bitstream.h                   |  437 +++
 lib/zstd/common/compiler.h                    |  177 ++
 lib/zstd/common/cpu.h                         |  194 ++
 lib/zstd/common/debug.c                       |   24 +
 lib/zstd/common/debug.h                       |  101 +
 lib/zstd/common/entropy_common.c              |  357 +++
 lib/zstd/common/error_private.c               |   56 +
 lib/zstd/common/error_private.h               |   69 +
 lib/zstd/common/fse.h                         |  710 +++++
 lib/zstd/common/fse_decompress.c              |  390 +++
 lib/zstd/common/huf.h                         |  356 +++
 lib/zstd/common/mem.h                         |  259 ++
 lib/zstd/common/zstd_common.c                 |   83 +
 lib/zstd/common/zstd_deps.h                   |  125 +
 lib/zstd/common/zstd_internal.h               |  450 +++
 lib/zstd/decompress.c                         | 2528 -----------------
 lib/zstd/decompress/huf_decompress.c          | 1206 ++++++++
 lib/zstd/decompress/zstd_ddict.c              |  241 ++
 lib/zstd/decompress/zstd_ddict.h              |   44 +
 lib/zstd/decompress/zstd_decompress.c         | 2085 ++++++++++++++
 lib/zstd/decompress/zstd_decompress_block.c   | 1540 ++++++++++
 lib/zstd/decompress/zstd_decompress_block.h   |   62 +
 .../decompress/zstd_decompress_internal.h     |  202 ++
 lib/zstd/decompress_sources.h                 |   28 +
 lib/zstd/entropy_common.c                     |  243 --
 lib/zstd/error_private.h                      |   53 -
 lib/zstd/fse.h                                |  575 ----
 lib/zstd/fse_decompress.c                     |  332 ---
 lib/zstd/huf.h                                |  212 --
 lib/zstd/huf_decompress.c                     |  960 -------
 lib/zstd/mem.h                                |  151 -
 lib/zstd/zstd_common.c                        |   75 -
 lib/zstd/zstd_decompress_module.c             |  105 +
 lib/zstd/zstd_internal.h                      |  263 --
 lib/zstd/zstd_opt.h                           | 1014 -------
 pbl/Kconfig                                   |    4 +
 pbl/decomp.c                                  |    4 +
 scripts/Makefile.lib                          |   29 +
 55 files changed, 12538 insertions(+), 7773 deletions(-)
 create mode 100644 include/linux/decompress/unzstd.h
 create mode 100644 include/linux/zstd_errors.h
 create mode 100644 include/linux/zstd_lib.h
 create mode 100644 lib/decompress_unzstd.c
 delete mode 100644 lib/zstd/bitstream.h
 create mode 100644 lib/zstd/common/bitstream.h
 create mode 100644 lib/zstd/common/compiler.h
 create mode 100644 lib/zstd/common/cpu.h
 create mode 100644 lib/zstd/common/debug.c
 create mode 100644 lib/zstd/common/debug.h
 create mode 100644 lib/zstd/common/entropy_common.c
 create mode 100644 lib/zstd/common/error_private.c
 create mode 100644 lib/zstd/common/error_private.h
 create mode 100644 lib/zstd/common/fse.h
 create mode 100644 lib/zstd/common/fse_decompress.c
 create mode 100644 lib/zstd/common/huf.h
 create mode 100644 lib/zstd/common/mem.h
 create mode 100644 lib/zstd/common/zstd_common.c
 create mode 100644 lib/zstd/common/zstd_deps.h
 create mode 100644 lib/zstd/common/zstd_internal.h
 delete mode 100644 lib/zstd/decompress.c
 create mode 100644 lib/zstd/decompress/huf_decompress.c
 create mode 100644 lib/zstd/decompress/zstd_ddict.c
 create mode 100644 lib/zstd/decompress/zstd_ddict.h
 create mode 100644 lib/zstd/decompress/zstd_decompress.c
 create mode 100644 lib/zstd/decompress/zstd_decompress_block.c
 create mode 100644 lib/zstd/decompress/zstd_decompress_block.h
 create mode 100644 lib/zstd/decompress/zstd_decompress_internal.h
 create mode 100644 lib/zstd/decompress_sources.h
 delete mode 100644 lib/zstd/entropy_common.c
 delete mode 100644 lib/zstd/error_private.h
 delete mode 100644 lib/zstd/fse.h
 delete mode 100644 lib/zstd/fse_decompress.c
 delete mode 100644 lib/zstd/huf.h
 delete mode 100644 lib/zstd/huf_decompress.c
 delete mode 100644 lib/zstd/mem.h
 delete mode 100644 lib/zstd/zstd_common.c
 create mode 100644 lib/zstd/zstd_decompress_module.c
 delete mode 100644 lib/zstd/zstd_internal.h
 delete mode 100644 lib/zstd/zstd_opt.h

-- 
2.30.2




             reply	other threads:[~2022-07-13 10:10 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-13 10:09 Ahmad Fatoum [this message]
2022-07-13 10:09 ` [PATCH 1/5] lib: zstd: adopt Linux directory structure Ahmad Fatoum
2022-07-13 10:09 ` [PATCH 2/5] lib: zstd: sync with Linux Ahmad Fatoum
2022-07-13 10:09 ` [PATCH 3/5] decompressor: define macros for non-PBL case as well Ahmad Fatoum
2022-07-13 10:09 ` [PATCH 4/5] ARM: cpu: uncompress: increase early malloc pool to 256K Ahmad Fatoum
2022-07-13 10:09 ` [PATCH 5/5] lib: uncompress: add general zstd support Ahmad Fatoum
2022-07-14  8:45   ` Sascha Hauer
2022-07-14  8:54     ` Ahmad Fatoum
2022-07-14  9:20       ` Sascha Hauer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220713100922.1880282-1-a.fatoum@pengutronix.de \
    --to=a.fatoum@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox