Il 14/06/2013 10:31, Kevin Wolf ha scritto: >> It looks like QCOW2_OPT_DISCARD_OTHER is a rare case, so I don't mind >> leaving it as default to false. It won't waste more than a few clusters. > > Yes, it's generally relatively rare, like growing L1 or refcount table. > There is one case where it should trigger a lot, though: Overwriting > clusters of a compressed image. > > Hm, though actually it doesn't make a lot of sense there. The freed > cluster will immediately be used by the next write. Maybe COW should > actually be QCOW2_OPT_DISCARD_NEVER...
Sounds reasonable. >> In the end discard_snapshot and discard_other should rarely be needed in >> practice, so I don't think having discard=... is a mistake. Too many >> knobs won't really be needed. >> >> In fact, perhaps we do not need discard_snapshot and discard_request, >> only discard_other. discard_snapshot can be replaced by >> file.discard=ignore, discard_request by discard=unmap. > > This is only true if you rule out some combination as useless. For > example you would say that if you want to process guest requests, you > always want to have snapshots discarded as well. You also assume that > nobody wants the current behaviour (free clusters in qcow2 metadata, but > don't send discards to raw-posix). > > Isn't this assuming a bit too much? > > To be clear, I don't expect these knobs to be used much either, but I > have some feeling that some people (including us while debugging or > asking questions) may be glad later to have such low-level options that > control each layer separately. Yeah, you're right. They're definitely useful to have, even if it is "just in case". Paolo