On Mon, 2 Apr 2012, Arnd Bergmann wrote:
Another option would be batched discard as we do it for file systems: occasionally stop writing to swap space and scanning for areas that have become available since the last discard, then send discard commands for those.
I'm not sure whether you've missed "swapon --discard", which switches on discard_swap_cluster() just before we allocate from a new cluster; or whether you're musing that it's no use to you because you want to repurpose the swap cluster to match erase block: I'm mentioning it in case you missed that it's already there (but few use it, since even done at that scale it's often more trouble than it's worth).
Hugh