Add ramdisk-flush.service to free /dev/ram0 45/242245/2 accepted/tizen_6.0_unified_hotfix tizen_6.0_hotfix accepted/tizen/6.0/unified/20201030.115530 accepted/tizen/6.0/unified/hotfix/20201103.003821 accepted/tizen/unified/20200828.121620 submit/tizen/20200826.073249 submit/tizen_6.0/20201029.205104 submit/tizen_6.0_hotfix/20201102.192504 submit/tizen_6.0_hotfix/20201103.114804 tizen_6.0.m2_release
authorINSUN PYO <insun.pyo@samsung.com>
Tue, 25 Aug 2020 07:10:40 +0000 (16:10 +0900)
committerINSUN PYO <insun.pyo@samsung.com>
Wed, 26 Aug 2020 22:36:37 +0000 (07:36 +0900)
After booting is complete, the memory of /dev/ram0 used by initrd is still wasted.
Run "/sbin/blockdev --flushbufs /dev/ram0" to free this memory.

Caution: You can't run this command before "chroot . /sbin/init" in the initrd.
Because init is still running on /dev/ram0.

Change-Id: Ia751db9b3eb660de980d6a223fe5dc7bef511f87

packaging/initrd.spec
packaging/ramdisk-flush.service [new file with mode: 0644]

index bc233f10c07ca83e7ca7feb2815734e6c636230c..6536b4f6e31f058fb98b987e1cf1a8b49c9cb348 100644 (file)
@@ -9,6 +9,7 @@ License:        Apache-2.0
 Group:          System/Utilities
 Source:         %{name}-%{version}.tar.gz
 Source1001:     %{name}.manifest
+Source1:        ramdisk-flush.service
 
 Requires(post): bash
 Requires(post): grep
@@ -59,6 +60,11 @@ cp -f scripts/mkinitrd.sh %{buildroot}%{_initrd_dir}
 
 mkdir -p %{buildroot}%{_mnt_initrd_dir}
 
+# ramdisk flush service
+mkdir -p %{buildroot}%{_unitdir}
+install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}
+%install_service delayed.target.wants ramdisk-flush.service
+
 # veritytool
 mkdir -p %{buildroot}%{_bindir}
 cp -f scripts/verityctl %{buildroot}%{_bindir}
@@ -83,6 +89,8 @@ rm -rf %{_initrd_dir}
 %endif
 %{_initrd_dir}/initrd-file-dmverity.list
 %{_initrd_dir}/init.sh
+%{_unitdir}/ramdisk-flush.service
+%{_unitdir}/delayed.target.wants/ramdisk-flush.service
 
 %files -n veritytool
 %manifest initrd.manifest
diff --git a/packaging/ramdisk-flush.service b/packaging/ramdisk-flush.service
new file mode 100644 (file)
index 0000000..2743d2e
--- /dev/null
@@ -0,0 +1,15 @@
+[Unit]
+Description=Flush ramdisk /dev/ram0
+ConditionKernelCommandLine=root=/dev/ram0
+ConditionPathIsMountPoint=!/mnt/initrd
+ConditionPathExists=!/dev/initramfs
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+User=system_fw
+Group=disk
+Capabilities=cap_sys_admin=i
+SecureBits=keep-caps
+ExecStart=/sbin/blockdev --flushbufs /dev/ram0
+SmackProcessLabel=System