Il 03/07/2013 23:23, Peter Lieven ha scritto: > BDC is not used. I had an implementation that sent multiple descriptors out, > but > at least for my storage the maximum unmap counts not for each descriptors, > but for all > together. So in this case we do not need the field at all. I forgot to remove > it. > > discard and write_zeroes will both only send one request up to max_unmap in > size. > > apropos write_zeroes: do you know if UNMAP is guaranteed to unmap data if > lbprz == 1?
Yes. On the other hand note that WRITE_SAME should be guaranteed _not_ to unmap if lbprz == 0 and you do WRITE_SAME with UNMAP and a zero payload, but I suspect there may be buggy targets here. > I have read in the specs something that the target might unmap the blocks or > not touch them at all. > Maybe you have more information. That's even true of UNMAP itself, actually. :) The storage can always "upgrade" a block from unmapped to anchored and from anchored to allocated, so UNMAP can be a no-op and still comply with the standard. Paolo