To be technically accurate, trim is a hint to a storage device that has a "block translation layer" that can take advantage of knowing that a block contains no meaningful data. Flash needs trim only if flash has an FTL (Flash Translation Layer) that is re-mapping blocks in such a manner as free blocks are helpful in making this process more efficient. Older SSDs did not support trim and had no real need for it. If you look at the FTL used with simple Flash (think CF cards, SD cards, and USB sticks) trim does not help them. Trim and wear leveling are un-related and don't really impact each other. On the linux side trim is "discard". This is actually a much better abstraction as it does not imply SSDs. Any type of block device that does dynamic block remapping will likely be helped (at least somewhat) by discard. The only examples of this I can think of off-hand are 1) my Flash SuperCharger code, and 2) block-level de-dupe engines. I am sure other examples will be created over time. Hopefully, discard can be driven down the stack. I would personally prefer the linux community declare that discard and zero writes are identical. If an SSD supports trim and linux wants to translate a discard into a trim at the device driver layer, and the SSD is non-deterministic, then that SSD is broken. Then again, my attitude about this is very arrogant and I think the trim spec was broken from the beginning. -- Doug Dumitru EasyCo LLC -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html