[openwrt/openwrt] base-files: flush kernel memory cache during sysupgrade

LEDE Commits lede-commits at lists.infradead.org
Tue Dec 22 13:13:16 EST 2020


ynezz pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/3d12b47985fc1983849925d2dc23430f55210c80

commit 3d12b47985fc1983849925d2dc23430f55210c80
Author: Hannu Nyman <hannu.nyman at iki.fi>
AuthorDate: Tue Nov 24 08:39:48 2020 +0200

    base-files: flush kernel memory cache during sysupgrade
    
    Flush kernel memory caches during sysupgrade in order
    to mitigate the impact from memory consumption spikes
    in low-RAM devices.
    
    This may help to prevent sysupgrade causing a reboot
    before the actual flashing starts.
    
    Signed-off-by: Hannu Nyman <hannu.nyman at iki.fi>
---
 package/base-files/files/lib/upgrade/common.sh | 1 +
 package/base-files/files/lib/upgrade/stage2    | 1 +
 2 files changed, 2 insertions(+)

diff --git a/package/base-files/files/lib/upgrade/common.sh b/package/base-files/files/lib/upgrade/common.sh
index a5c27dc2fb..b44a5998f4 100644
--- a/package/base-files/files/lib/upgrade/common.sh
+++ b/package/base-files/files/lib/upgrade/common.sh
@@ -297,6 +297,7 @@ indicate_upgrade() {
 # $(2): (optional) pipe command to extract firmware, e.g. dd bs=n skip=m
 default_do_upgrade() {
 	sync
+	echo 3 > /proc/sys/vm/drop_caches
 	if [ -n "$UPGRADE_BACKUP" ]; then
 		get_image "$1" "$2" | mtd $MTD_ARGS $MTD_CONFIG_ARGS -j "$UPGRADE_BACKUP" write - "${PART_NAME:-image}"
 	else
diff --git a/package/base-files/files/lib/upgrade/stage2 b/package/base-files/files/lib/upgrade/stage2
index c7629c383f..23d356a447 100755
--- a/package/base-files/files/lib/upgrade/stage2
+++ b/package/base-files/files/lib/upgrade/stage2
@@ -123,6 +123,7 @@ kill_remaining KILL 1
 
 sleep 1
 
+echo 3 > /proc/sys/vm/drop_caches
 
 if [ -n "$IMAGE" ] && type 'platform_pre_upgrade' >/dev/null 2>/dev/null; then
 	platform_pre_upgrade "$IMAGE"



More information about the lede-commits mailing list