On Thu, 2013-09-12 at 10:18 -0500, Eric Sandeen wrote: > On 9/12/13 9:54 AM, Calvin Walton wrote: > > On Thu, 2013-09-12 at 16:18 +0200, Julian Andres Klode wrote: > >> Hi, > >> > >> I installed my new laptop on Saturday and setup an ext4 filesystem > >> on my / and /home partitions. Without me doing much file transfers, > >> I noticed today: > >> > >> jak@jak-x230:~$ cat /sys/fs/ext4/sdb3/lifetime_write_kbytes > >> 342614039 > >> > >> This is on a 100GB partition. I used fstrim multiple times. I analysed > >> the increase over some time today and issued an fstrim in between: > > <snip> > >> So it seems that ext4 counts the trims as writes? I don't know how I could > >> get 300GB of writes on a 100GB partition -- of which only 8 GB are occupied > >> -- otherwise. > > > > The way fstrim works is that it allocates a temporary file that fills > > almost the entire free space on the partition. > > No, that's not correct. > Nope. ;) strace it and see, it does nothing like this - it calls a special > ioctl to ask the fs to find and issue discards on unused blocks. > > # strace -e open,write,fallocate,unlink,ioctl fstrim mnt/ > open("/etc/ld.so.cache", O_RDONLY) = 3 > open("/lib64/libc.so.6", O_RDONLY) = 3 > open("/usr/lib/locale/locale-archive", O_RDONLY) = 3 > open("mnt/", O_RDONLY) = 3 > ioctl(3, 0xc0185879, 0x7fff6ac47d40) = 0 <=== FITRIM ioctl > > (old hdparm discard might have done what you say, but that was a hack). Alright, you got me there :) To be honest, I got the name 'fstrim' confused with the old 'wiper.sh' script that used to be the only way to do this, and did in fact function as I said. Having this all integrated into the filesystem itself is quite a nice change for the better - the old way was definitely a hack! I suppose this was added sometime in the 2011 timeframe? -- Calvin Walton <calvin.walton@xxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html