On Fri, Feb 22, 2013 at 02:43:36PM +0200, [email protected] wrote:
>From: Malek Degachi <[email protected]>
>
>fstrim applet is a port from util-linux.
>
>"Trimming" your NAND/eMMC storage will restore the write performance back to 
>normal
>after having slow down issues on sequential write and random write due to 
>usage over time.
>
>Good reading on subject: 
>http://forum.xda-developers.com/showthread.php?t=1971852
>
>Signed-off-by: Eugene San (eugenesan) <[email protected]>
>---
> include/applets.src.h |   1 +
> util-linux/Config.src |   7 ++++
> util-linux/Kbuild.src |   1 +
> util-linux/fstrim.c   | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 123 insertions(+)
> create mode 100644 util-linux/fstrim.c
>
>diff --git a/include/applets.src.h b/include/applets.src.h
>index 29ab167..c9244fb 100644
>--- a/include/applets.src.h
>+++ b/include/applets.src.h
>@@ -161,6 +161,7 @@ IF_FSCK(APPLET(fsck, BB_DIR_SBIN, BB_SUID_DROP))
> //IF_E2FSCK(APPLET_ODDNAME(fsck.ext2, e2fsck, BB_DIR_SBIN, BB_SUID_DROP, 
> fsck_ext2))
> //IF_E2FSCK(APPLET_ODDNAME(fsck.ext3, e2fsck, BB_DIR_SBIN, BB_SUID_DROP, 
> fsck_ext3))
> IF_FSCK_MINIX(APPLET_ODDNAME(fsck.minix, fsck_minix, BB_DIR_SBIN, 
> BB_SUID_DROP, fsck_minix))
>+IF_FSTRIM(APPLET(fstrim, BB_DIR_SBIN, BB_SUID_DROP))
> IF_FSYNC(APPLET_NOFORK(fsync, fsync, BB_DIR_BIN, BB_SUID_DROP, fsync))
> IF_FTPD(APPLET(ftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
> IF_FTPGET(APPLET_ODDNAME(ftpget, ftpgetput, BB_DIR_USR_BIN, BB_SUID_DROP, 
> ftpget))
>diff --git a/util-linux/Config.src b/util-linux/Config.src
>index 6c1b928..a82817c 100644
>--- a/util-linux/Config.src
>+++ b/util-linux/Config.src
>@@ -246,6 +246,13 @@ config FSCK_MINIX
>         check for and attempt to repair any corruption that occurs to a minix
>         filesystem.
> 
>+config FSTRIM
>+      bool "fstrim"
>+      default y
>+      select PLATFORM_LINUX

Doesn't that work on android, too?

>diff --git a/util-linux/fstrim.c b/util-linux/fstrim.c
>new file mode 100644
>index 0000000..915de06
>--- /dev/null
>+++ b/util-linux/fstrim.c

>+static const struct suffix_mult fstrim_sfx[] = {
>+      { "KiB", 1024 },
>+      { "kiB", 1024 },
>+      { "K", 1024 },
>+      { "k", 1024 },
>+      { "MiB", 1048576 },
>+      { "miB", 1048576 },
>+      { "M", 1048576 },
>+      { "m", 1048576 },
>+      { "GiB", 1073741824 },
>+      { "giB", 1073741824 },
>+      { "G", 1073741824 },
>+      { "g", 1073741824 },
>+      { "KB", 1000 },
>+      { "MB", 1000000 },
>+      { "GB", 1000000000 },
>+      { "", 0 }
>+};

>+              if (opts & OPT_v)
>+                      printf("%s: %llu bytes was trimmed\n", argv[optind], 
>range.len);

Please use make_human_readable_str()
See
$ scripts/bloat-o-meter bb_un.master busybox_unstripped
$ scripts/bloat-o-meter bb_un.old busybox_unstripped
before and after using make_human_readable_str() against pristine master
and your manual version above.

TIA,
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to