On Jan 13, 2021, at 12:44 AM, Avi Kivity wrote: > > On 1/12/21 11:36 PM, Andres Freund wrote: >> Hi, >> >> On 2021-01-12 13:14:45 -0800, Darrick J. Wong wrote: >>> ALLOCSP64 can only allocate pre-zeroed blocks as part of extending EOF, >>> whereas a new FZERO flag means that we can pre-zero an arbitrary range >>> of bytes in a file. I don't know if Avi or Andres' usecases demand that >>> kind of flexibilty but I know I'd rather go for the more powerful >>> interface. >> Postgres/I don't at the moment have a need to allocate "written" zeroed >> space anywhere but EOF. I can see some potential uses for more flexible >> pre-zeroing in the future though, but not very near term. >> > > I also agree that it's better not to have the kernel fall back internally on writing zeros, letting userspace do that. The assumption is that WRITE SAME will be O(1)-ish and so can bypass scheduling decisions, but if we need to write zeros, better let the application throttle the rate. Writing zeroes from userspace has a *lot* more overhead when there is a network filesystem involved. It would be better to generate the zeroes on the server, or directly in the disk than sending GB of zeroes over the network. Cheers, Andreas