forked from nerves-project/nerves_system_rpi4
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #53 from bcdevices/upstream_upstream_v1.18.4
Merge nerves upstream v1.18.4
- Loading branch information
Showing
14 changed files
with
286 additions
and
56 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
elixir 1.12.2-otp-24 | ||
erlang 24.1.2 | ||
erlang 24.3.2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
0.16.9 | ||
0.16.10 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
0.18.16 | ||
0.19.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
121 changes: 121 additions & 0 deletions
121
linux/0001-squashfs-provide-backing_dev_info-in-order-to-disabl.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
From 9eec1d897139e5de287af5d559a02b811b844d82 Mon Sep 17 00:00:00 2001 | ||
From: Zheng Liang <[email protected]> | ||
Date: Fri, 14 Jan 2022 14:03:31 -0800 | ||
Subject: [PATCH] squashfs: provide backing_dev_info in order to disable | ||
read-ahead | ||
|
||
Commit c1f6925e1091 ("mm: put readahead pages in cache earlier") causes | ||
the read performance of squashfs to deteriorate.Through testing, we find | ||
that the performance will be back by closing the readahead of squashfs. | ||
|
||
So we want to learn the way of ubifs, provides backing_dev_info and | ||
disable read-ahead | ||
|
||
We tested the following data by fio. | ||
squashfs image blocksize=128K | ||
test command: | ||
|
||
fio --name basic --bs=? --filename="/mnt/test_file" --rw=? --iodepth=1 --ioengine=psync --runtime=200 --time_based | ||
|
||
turn on squashfs readahead in 5.10 kernel | ||
bs(k) read/randread MB/s | ||
4 randread 271 | ||
128 randread 231 | ||
1024 randread 246 | ||
4 read 310 | ||
128 read 245 | ||
1024 read 247 | ||
|
||
turn off squashfs readahead in 5.10 kernel | ||
bs(k) read/randread MB/s | ||
4 randread 293 | ||
128 randread 330 | ||
1024 randread 363 | ||
4 read 338 | ||
128 read 360 | ||
1024 read 365 | ||
|
||
turn on squashfs readahead and revert the | ||
commit c1f6925e1091("mm: put readahead | ||
pages in cache earlier") in 5.10 kernel | ||
bs(k) read/randread MB/s | ||
4 randread 289 | ||
128 randread 306 | ||
1024 randread 335 | ||
4 read 337 | ||
128 read 336 | ||
1024 read 338 | ||
|
||
Link: https://lkml.kernel.org/r/[email protected] | ||
Signed-off-by: Zheng Liang <[email protected]> | ||
Reviewed-by: Phillip Lougher <[email protected]> | ||
Cc: Zhang Yi <[email protected]> | ||
Cc: Hou Tao <[email protected]> | ||
Cc: Miao Xie <[email protected]> | ||
Signed-off-by: Andrew Morton <[email protected]> | ||
Signed-off-by: Linus Torvalds <[email protected]> | ||
--- | ||
fs/squashfs/super.c | 33 +++++++++++++++++++++++++++++++++ | ||
1 file changed, 33 insertions(+) | ||
|
||
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c | ||
index bb44ff4c5cc6..b1b556dbce12 100644 | ||
--- a/fs/squashfs/super.c | ||
+++ b/fs/squashfs/super.c | ||
@@ -29,6 +29,7 @@ | ||
#include <linux/module.h> | ||
#include <linux/magic.h> | ||
#include <linux/xattr.h> | ||
+#include <linux/backing-dev.h> | ||
|
||
#include "squashfs_fs.h" | ||
#include "squashfs_fs_sb.h" | ||
@@ -112,6 +113,24 @@ static const struct squashfs_decompressor *supported_squashfs_filesystem( | ||
return decompressor; | ||
} | ||
|
||
+static int squashfs_bdi_init(struct super_block *sb) | ||
+{ | ||
+ int err; | ||
+ unsigned int major = MAJOR(sb->s_dev); | ||
+ unsigned int minor = MINOR(sb->s_dev); | ||
+ | ||
+ bdi_put(sb->s_bdi); | ||
+ sb->s_bdi = &noop_backing_dev_info; | ||
+ | ||
+ err = super_setup_bdi_name(sb, "squashfs_%u_%u", major, minor); | ||
+ if (err) | ||
+ return err; | ||
+ | ||
+ sb->s_bdi->ra_pages = 0; | ||
+ sb->s_bdi->io_pages = 0; | ||
+ | ||
+ return 0; | ||
+} | ||
|
||
static int squashfs_fill_super(struct super_block *sb, struct fs_context *fc) | ||
{ | ||
@@ -127,6 +146,20 @@ static int squashfs_fill_super(struct super_block *sb, struct fs_context *fc) | ||
|
||
TRACE("Entered squashfs_fill_superblock\n"); | ||
|
||
+ /* | ||
+ * squashfs provides 'backing_dev_info' in order to disable read-ahead. For | ||
+ * squashfs, I/O is not deferred, it is done immediately in readpage, | ||
+ * which means the user would always have to wait their own I/O. So the effect | ||
+ * of readahead is very weak for squashfs. squashfs_bdi_init will set | ||
+ * sb->s_bdi->ra_pages and sb->s_bdi->io_pages to 0 and close readahead for | ||
+ * squashfs. | ||
+ */ | ||
+ err = squashfs_bdi_init(sb); | ||
+ if (err) { | ||
+ errorf(fc, "squashfs init bdi failed"); | ||
+ return err; | ||
+ } | ||
+ | ||
sb->s_fs_info = kzalloc(sizeof(*msblk), GFP_KERNEL); | ||
if (sb->s_fs_info == NULL) { | ||
ERROR("Failed to allocate squashfs_sb_info\n"); | ||
-- | ||
2.25.1 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,15 @@ | ||
%{ | ||
"earmark_parser": {:hex, :earmark_parser, "1.4.16", "607709303e1d4e3e02f1444df0c821529af1c03b8578dfc81bb9cf64553d02b9", [:mix], [], "hexpm", "69fcf696168f5a274dd012e3e305027010658b2d1630cef68421d6baaeaccead"}, | ||
"elixir_make": {:hex, :elixir_make, "0.6.2", "7dffacd77dec4c37b39af867cedaabb0b59f6a871f89722c25b28fcd4bd70530", [:mix], [], "hexpm", "03e49eadda22526a7e5279d53321d1cced6552f344ba4e03e619063de75348d9"}, | ||
"ex_doc": {:hex, :ex_doc, "0.25.3", "3edf6a0d70a39d2eafde030b8895501b1c93692effcbd21347296c18e47618ce", [:mix], [{:earmark_parser, "~> 1.4.0", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "9ebebc2169ec732a38e9e779fd0418c9189b3ca93f4a676c961be6c1527913f5"}, | ||
"makeup": {:hex, :makeup, "1.0.5", "d5a830bc42c9800ce07dd97fa94669dfb93d3bf5fcf6ea7a0c67b2e0e4a7f26c", [:mix], [{:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cfa158c02d3f5c0c665d0af11512fed3fba0144cf1aadee0f2ce17747fba2ca9"}, | ||
"makeup_elixir": {:hex, :makeup_elixir, "0.15.1", "b5888c880d17d1cc3e598f05cdb5b5a91b7b17ac4eaf5f297cb697663a1094dd", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.1", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "db68c173234b07ab2a07f645a5acdc117b9f99d69ebf521821d89690ae6c6ec8"}, | ||
"castore": {:hex, :castore, "0.1.15", "dbb300827d5a3ec48f396ca0b77ad47058578927e9ebe792abd99fcbc3324326", [:mix], [], "hexpm", "c69379b907673c7e6eb229f09a0a09b60bb27cfb9625bcb82ea4c04ba82a8442"}, | ||
"earmark_parser": {:hex, :earmark_parser, "1.4.23", "1d5f22a2802160fd454404fbf5e8f5d14cd8eb727c63701397b72d8c35267e69", [:mix], [], "hexpm", "2ec13bf14b2f4bbb4a15480970e295eede8bb01087fad6ceca27b724ab8e9d18"}, | ||
"elixir_make": {:hex, :elixir_make, "0.6.3", "bc07d53221216838d79e03a8019d0839786703129599e9619f4ab74c8c096eac", [:mix], [], "hexpm", "f5cbd651c5678bcaabdbb7857658ee106b12509cd976c2c2fca99688e1daf716"}, | ||
"ex_doc": {:hex, :ex_doc, "0.28.2", "e031c7d1a9fc40959da7bf89e2dc269ddc5de631f9bd0e326cbddf7d8085a9da", [:mix], [{:earmark_parser, "~> 1.4.19", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "51ee866993ffbd0e41c084a7677c570d0fc50cb85c6b5e76f8d936d9587fa719"}, | ||
"makeup": {:hex, :makeup, "1.1.0", "6b67c8bc2882a6b6a445859952a602afc1a41c2e08379ca057c0f525366fc3ca", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "0a45ed501f4a8897f580eabf99a2e5234ea3e75a4373c8a52824f6e873be57a6"}, | ||
"makeup_elixir": {:hex, :makeup_elixir, "0.16.0", "f8c570a0d33f8039513fbccaf7108c5d750f47d8defd44088371191b76492b0b", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "28b2cbdc13960a46ae9a8858c4bebdec3c9a6d7b4b9e7f4ed1502f8159f338e7"}, | ||
"makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"}, | ||
"nerves": {:hex, :nerves, "1.7.11", "67820b7055b541ce20f7bce40672a06268673ba8c47576a76e703d537a136a74", [:make, :mix], [{:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "79535d00928c81a93ea5311497b00f0ca7bc0a8aa405134d16597a02b2616e89"}, | ||
"nerves_system_br": {:hex, :nerves_system_br, "1.17.1", "323f2852a5902134879da95701673569e6bab043cde73dc4071b96d756a007ab", [:mix], [], "hexpm", "0386fad22dbe8dd710f9d92e6cddd3f585fbb84e1dcba0aab820e35671c5e639"}, | ||
"nerves": {:hex, :nerves, "1.7.16", "a98004a89c1cf47a9ad022c9c1a46b272ca690030914c19c1709679d671a520c", [:make, :mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "ebad8305a3d24ea22a20d9ce779f56a5006d222d74ce9cafe4a6dccaed88ec2d"}, | ||
"nerves_system_br": {:hex, :nerves_system_br, "1.18.6", "13ea691ba70e6410c9b0b15e12ac972ca054486e38c437214f6a375cecf82ee2", [:mix], [], "hexpm", "0bfca936c08e92709801f9a1b7d236cc29c93ad34f014389f0ae2e3fa9d60d21"}, | ||
"nerves_system_linter": {:hex, :nerves_system_linter, "0.4.0", "81e9a6f5018fe5fb67d7b43a04dca36156f62b55b5554eb2fa3964d3889d09cd", [:mix], [], "hexpm", "b5bd8480ce7a6317f4601ff41fd2f594bdf76aff0bdf6dcfac571c3fa1ec5f82"}, | ||
"nerves_toolchain_aarch64_nerves_linux_gnu": {:hex, :nerves_toolchain_aarch64_nerves_linux_gnu, "1.4.3", "6aa784fd3779251a4438e9874ed646492c3a4289f10581d01c4d61acda7d0b2d", [:mix], [{:nerves, "~> 1.4", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_toolchain_ctng, "~> 1.8.4", [hex: :nerves_toolchain_ctng, repo: "hexpm", optional: false]}], "hexpm", "75ab06af12118b423b4bba870a4f10d81f83678fd7fc57278927ce9d52516c5e"}, | ||
"nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.8.4", "2f6b4153e3904502d117f9d957c12eaafd490e1d2bdf20a85328ada46a1350da", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "6194be9b1364fdc1db6b2a0e98fa8dcb94fe1af373dcf8149298d62ce9b1b369"}, | ||
"nimble_parsec": {:hex, :nimble_parsec, "1.1.0", "3a6fca1550363552e54c216debb6a9e95bd8d32348938e13de5eda962c0d7f89", [:mix], [], "hexpm", "08eb32d66b706e913ff748f11694b17981c0b04a33ef470e33e11b3d3ac8f54b"}, | ||
"nerves_toolchain_aarch64_nerves_linux_gnu": {:hex, :nerves_toolchain_aarch64_nerves_linux_gnu, "1.5.0", "9f8a736c061178ef0b47925092b2aef5a61826168c65f30d43400e5357e2ac8c", [:mix], [{:nerves, "~> 1.4", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_toolchain_ctng, "~> 1.8.5", [hex: :nerves_toolchain_ctng, repo: "hexpm", optional: false]}], "hexpm", "0d411d56a4429e12273d664a02128dc5ce80dd80b3201f79aa671b0a5548382d"}, | ||
"nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.8.5", "f2dfd6e3b5f85889561b9f00c71510eea87c3d05760d20780285deb3c29ca212", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "2f65b1866f034054f3d61ee672b6d02f4de1d0b40bef74f49527b98ab46a39fc"}, | ||
"nimble_parsec": {:hex, :nimble_parsec, "1.2.3", "244836e6e3f1200c7f30cb56733fd808744eca61fd182f731eac4af635cc6d0b", [:mix], [], "hexpm", "c8d789e39b9131acf7b99291e93dae60ab48ef14a7ee9d58c6964f59efb570b0"}, | ||
} |
Oops, something went wrong.