On 12/15/2014 08:30 PM, Edward Shishkin wrote:
On 12/14/2014 09:03 AM, Ivan Shapovalov wrote:
On Saturday 13 December 2014 at 23:38:02, Edward Shishkin wrote:
On 12/12/2014 10:10 PM, Ivan Shapovalov wrote:
So, this patchset uses your algorithm of padding/gluing extents to
be discarded.
I've added exact allocation primitives (is it what you've been
talking about?
So, we found out that the old bitmap primitives don't allow us to
implement
precise discard, and I asked for new ones. Also we wanted to
implement the
general case, when precise discard works for any pair (offset, unit).
Currently
it works only for ones determined by the function
convert_lattice_params().
For some reasons (that I don't remember) I was sure, that the
general case
should be obtained from this partial case by a small transformation
of the
function discard_sorted_merged_extents().
Well, I'll try to dive into details and generalize things on the
holidays.
If generalization is impossible,
Hopefully this is possible,
I'll try to send the patch in short.
Edward.
then we'll switch to non-precise
discard every
time when convert_lattice_params() fails.
I don't quite understand you here... Do you mean that some non-insane
combinations
of discard unit, discard offset and blocksize are not handled (but worth
handling)?
Yes. As you can see, if (discard_offset % block_size != 0), then we
don't issue discard requests. Neither precise, nor non-precise.
It is hard to implement the precise discard support in the generic
case straight away.
TBH, convert_lattice_params() looks magic-ish to me...
OK, I'll try to provide some background (geometric minimum).
Edward.
--
To unsubscribe from this list: send the line "unsubscribe reiserfs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html