On 3/11/14, 4:39 PM, Richard W.M. Jones wrote: > > Here's a problem I can't work out: > > I have a filesystem (in a VM) that I know has at least 100MB of > deleted files on it. Was it mounted with -o discard at the time the files were deleted? If so, then the trim is already done during the unlink process, and there's no more work to do. So that's my first thought, but ... > Doing this in a script: > > mount -o discard /dev/sda1 /mnt > fstrim /mnt > > ... does nothing. Also the fstrim is almost instantaneous -- there's > no way it could be scanning the disk. blktrace would be a better tool to find out whether or not discards are actually getting issued to storage... And if you strace it what does the ioctl return? Enabling the trace_ext4_trim_all_free tracepoint might be interesting too. > However, if I start with the same filesystem, mounted with -o discard, > and create and rm large files, while observing the size of the > underlying virtual disk, then discard is obviously working fine. 'rm' > of large files makes the underlying disk shrink. > > Any ideas here? first of all, I should point out that "-o discard" is not necessary for fstrim / FITRIM ioctl to work. The former tries to trim as soon as files are unlinked; FITRIM goes looking for free blocks to trim. If you're mounting with -o discard, then fstrim should never find any workd to do. -Eric > Rich. > > kernel: 3.12.5-302.fc20.x86_64 > qemu: 1.7.0 > virtio-scsi with discard=unmap > -- 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