Description : Adding a service for fstrim for opt mount. 09/78309/1 accepted/tizen/common/20160705.170608 accepted/tizen/ivi/20160705.101905 accepted/tizen/mobile/20160705.101957 accepted/tizen/tv/20160705.101909 accepted/tizen/wearable/20160705.101926 submit/tizen/20160705.082718
authorwchang kim <wchang.kim@samsung.com>
Tue, 5 Jul 2016 05:43:02 +0000 (14:43 +0900)
committerwchang kim <wchang.kim@samsung.com>
Tue, 5 Jul 2016 05:43:02 +0000 (14:43 +0900)
Adding a service for fstrim for opt mount.

Requested by profiling part.

Change-Id: I4da82cf6e5979cc57f56e0db69723b177de1a050
Signed-off-by: Woochang Kim <wchang.kim@samsung.com>
packaging/system-plugin.spec
scripts/tizen-fstrim-on-charge.sh [new file with mode: 0644]
units/tizen-fstrim-user.service [new file with mode: 0644]
units/tizen-fstrim-user.timer [new file with mode: 0644]

index ab656fcb7ee5f94723a5bd0ac84083d08199172f..a25d5444270bec4b63f85e6400e63892945a8fc9 100644 (file)
@@ -95,6 +95,14 @@ install -m 644 etc/fstab %{buildroot}%{_sysconfdir}
 # ugly temporary patch for initrd wearable
 install -m 644 etc/fstab_initrd %{buildroot}%{_sysconfdir}
 
+# fstrim
+mkdir -p %{buildroot}%{_unitdir}/graphical.target.wants
+install -m 644 units/tizen-fstrim-user.timer %{buildroot}%{_unitdir}
+ln -s ../tizen-fstrim-user.timer %{buildroot}%{_unitdir}/graphical.target.wants/tizen-fstrim-user.timer
+install -m 644 units/tizen-fstrim-user.service %{buildroot}%{_unitdir}
+mkdir -p %{buildroot}%{_bindir}
+install -m 755 scripts/tizen-fstrim-on-charge.sh %{buildroot}%{_bindir}
+
 %post
 systemctl daemon-reload
 
@@ -118,6 +126,10 @@ systemctl daemon-reload
 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-user.service
 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-rootfs.service
 %{_sysconfdir}/fstab
+%{_unitdir}/graphical.target.wants/tizen-fstrim-user.timer
+%{_unitdir}/tizen-fstrim-user.timer
+%{_unitdir}/tizen-fstrim-user.service
+%{_bindir}/tizen-fstrim-on-charge.sh
 
 %files exynos
 %manifest %{name}.manifest
@@ -157,3 +169,7 @@ mv %{_sysconfdir}/fstab_initrd %{_sysconfdir}/fstab
 %{_unitdir}/local-fs.target.wants/csa.mount
 %{_unitdir}/umount-opt.service
 %{_unitdir}/local-fs-pre.target.wants/umount-opt.service
+%{_unitdir}/graphical.target.wants/tizen-fstrim-user.timer
+%{_unitdir}/tizen-fstrim-user.timer
+%{_unitdir}/tizen-fstrim-user.service
+%{_bindir}/tizen-fstrim-on-charge.sh
diff --git a/scripts/tizen-fstrim-on-charge.sh b/scripts/tizen-fstrim-on-charge.sh
new file mode 100644 (file)
index 0000000..c08cd74
--- /dev/null
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+if [ "$#" -ne 1 ];then
+       echo "Argument was missed."
+       exit 1
+fi
+
+CHARGE_NOW_FILE=`/usr/bin/find /sys/devices -path */power_supply/battery/charge_now`
+if [ "x$CHARGE_NOW_FILE" == "x" ]; then
+       echo "Can not find 'charge_now'."
+       CHARGE_NOW_VALUE=0
+else
+       CHARGE_NOW_VALUE=`/bin/cat $CHARGE_NOW_FILE`
+fi
+
+BATTERY_STATUS_FILE=`/usr/bin/find /sys/devices -path */power_supply/battery/status`
+if [ "x$BATTERY_STATUS_FILE" == "x" ]; then
+       echo "Can not find 'status'."
+       exit 1
+else
+    STATUS_VALUE=`/bin/cat $BATTERY_STATUS_FILE`
+fi
+
+BATTERY_CAPACITY_FILE=`/usr/bin/find /sys/devices -path */power_supply/battery/capacity`
+if [ "x$BATTERY_CAPACITY_FILE" == "x" ]; then
+       echo "Can not find 'capacity'."
+       exit 1
+else
+    CAPACITY_VALUE=`/bin/cat $BATTERY_CAPACITY_FILE`
+fi
+
+echo $STATUS_VALUE
+echo $CAPACITY_VALUE
+
+if [ "$CHARGE_NOW_VALUE" -gt 0 ];then
+       echo "Do fstrim(C1)."
+       /sbin/fstrim -v $*
+else
+    if [ \( $STATUS_VALUE == "Charging" -o $STATUS_VALUE == "Full" \) -a \( $CAPACITY_VALUE -gt 30 \) ]; then
+       echo "Do fstrim(C2)."
+       /sbin/fstrim -v $*
+    else
+       echo "Not on charging."
+    fi
+fi
diff --git a/units/tizen-fstrim-user.service b/units/tizen-fstrim-user.service
new file mode 100644 (file)
index 0000000..524086d
--- /dev/null
@@ -0,0 +1,9 @@
+[Unit]
+Description=Discard unused blocks on user partition
+Requires=opt.mount
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/tizen-fstrim-on-charge.sh /opt
+StandardOutput=journal
+StandardError=inherit
diff --git a/units/tizen-fstrim-user.timer b/units/tizen-fstrim-user.timer
new file mode 100644 (file)
index 0000000..049539e
--- /dev/null
@@ -0,0 +1,5 @@
+[Unit]
+Description=Timer for tizen-fstrim
+
+[Timer]
+OnCalendar=*-*-* 06:00:00