So when they get a request for a 512-byte write, rather than doing the read-modify-write of a 16k block, they wait to see if the user wants to do any more I/O to that erase block.
The disadvantages of write coalescing are kind of obvious-- it's complex, requires temporary storage (for the un-coalesced 512-byte chunks). More buffering also means there's a longer window when power failures can result in data loss.
Overall, it's not something you want to do unless you absolutely have to. Performance and stability would be a lot better if the kernel knew about the real situation on the hardware.
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds