Not logged in
Log in now
Create an account
Subscribe to LWN
An unexpected perf feature
LWN.net Weekly Edition for May 16, 2013
A look at the PyPy 2.0 release
PostgreSQL 9.3 beta: Federated databases and more
LWN.net Weekly Edition for May 9, 2013
Allocating uninitialized file blocks
Posted Apr 20, 2012 19:31 UTC (Fri) by drag (subscriber, #31333)
Anyways, I believe TRIM just tells them that the blocks are no longer being used. It's not a order to zero out the blocks. Without trim the SSD doesn't know if the file system still expects them to be used or not.
Posted Apr 20, 2012 20:17 UTC (Fri) by dlang (✭ supporter ✭, #313)
If you were to take apart the drive and bypass the controller to read the flash chips directly, you would have a chance at recovering the data.
Posted Apr 20, 2012 21:33 UTC (Fri) by Cyberax (✭ supporter ✭, #52523)
Its presence is indicated by the 'Deterministic read data after TRIM' capability (you can check it using "hdparm -I"). So it's not like you need to blindly trust your SDD.
>Anyways, I believe TRIM just tells them that the blocks are no longer being used. It's not a order to zero out the blocks.
With deterministic zeros one can also use it as a way to quickly erase blocks.
Besides, overwriting something on SDD in most cases would NOT actually overwrite it in the real hardware flash due to load balancing and remapping.
Posted Apr 20, 2012 21:39 UTC (Fri) by dlang (✭ supporter ✭, #313)
Posted Apr 20, 2012 21:45 UTC (Fri) by Cyberax (✭ supporter ✭, #52523)
However, TRIM command can't be queued. So it probably makes no sense to use it for large allocations and/or to keep a pool of recently-trimmed pages for immediate small allocations.
Posted Apr 20, 2012 21:51 UTC (Fri) by dlang (✭ supporter ✭, #313)
The SSD does keep a pool of unused pages for new allocations. What trim does is it lets the SSD know that you no longer care about the data on that block, and so it can add the block back to that pool.
If the SSD runs out of this pool, writing slows drastically as it must first erase a block before it can write anything. If you are expecting to do a LOT of writing to a SSD, you may want to make sure that you partition it to something less than the advertised size so that that extra space will remain in the pool (this works as long as that extra space has never been written to, or is explicitly relased via a TRIM command)
Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds