On 03/04/2016 03:26 AM, Kirill A. Shutemov wrote: > On Thu, Mar 03, 2016 at 07:51:50PM +0300, Kirill A. Shutemov wrote: >> Truncate and punch hole that only cover part of THP range is implemented >> by zero out this part of THP. >> >> This have visible effect on fallocate(FALLOC_FL_PUNCH_HOLE) behaviour. >> As we don't really create hole in this case, lseek(SEEK_HOLE) may have >> inconsistent results depending what pages happened to be allocated. >> Not sure if it should be considered ABI break or not. > > Looks like this shouldn't be a problem. man 2 fallocate: > > Within the specified range, partial filesystem blocks are zeroed, > and whole filesystem blocks are removed from the file. After a > successful call, subsequent reads from this range will return > zeroes. > > It means we effectively have 2M filesystem block size.
The question is still whether this will case problems for apps. Isn't 2MB a quote unusual block size? Wouldn't some files on a tmpfs filesystem act like they have a 2M blocksize and others like they have 4k? Would that confuse apps?