On Thursday 05 April 2012, 정효진 wrote: > I'm not sure that how Linux manage swap area. > If there are difference of information for invalid data between host and > eMMC device, discard to eMMC is good for performance of IO. It is as same > as general case of discard of user partition which is formatted with > filesystem. > As your e-mail mentioned, overwriting the logical address is the another > way to send info of invalid data address just for the overwrite area, > however it is not a best way for eMMC to manage physical NAND array. In > this case, eMMC have to trim physical NAND array, and do write operation at > the same time. It needs more latency. > If host send discard with invalid data address info in advance, eMMC can > find beat way to manage physical NAND page before host usage(write > operation). > I'm not sure it is the right comments of your concern. > If you need more info, please let me know One specific property of the linux swap code is that we write relatively large clusters (1 MB today) sequentially and only reuse them once all of the data in them has become invalid. Part of my suggestion was to increase that size to the erase block size of the underlying storage, e.g. 8MB for typical eMMC. Right now, we send a discard command just before reusing a swap cluster, for the entire cluster. In my interpretation, this already means a typical device will never to a garbage collection of that erase block because we never overwrite the erase block partially. Luca suggested that we could send the discard command as soon as an individual 4kb page is freed, which would let the device reuse the physical erase block as soon as all the pages in that erase block have been freed over time, but my interpretation is that while this can help for global wear levelling, it does not help avoid any garbage collection. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html