Messages in this thread | | | Date | Tue, 27 Mar 2012 08:43:11 +0200 | From | Paolo Bonzini <> | Subject | Re: [PATCH 0/2] block: align start sector of a discard request |
| |
Il 14/03/2012 18:12, Paolo Bonzini ha scritto: > When a disk has a large discard_granularity, discards are not split with > optimal alignment; the pessimization gets bigger as discard_granularity > and max_discard_sectors become closer. > > Take the limit case of discard_granularity == max_discard_sectors == 64. > Then, if a request is submitted for 256 sectors 2..257 it will be split > like this: 2..65, 66..129, 130..193, 194..257. None of these requests > is aligned, so in fact you might end up with no discarded logical blocks > at all. With this patch, the split will be 2..63, 64..127, 128..191, > 192..255, 256..257. The patches also take the discard_alignment into > consideration. > > Patch 1 adjusts the computation of the granularity-adjusted > max_discard_sectors so that it prepares for the new code in patch 2, > while patch 2 actually adjusts the split. > > Paolo Bonzini (2): > block: tweak rounding of max_discard_sectors > block: split discard into aligned requests > > block/blk-lib.c | 41 +++++++++++++++++++++++++++-------------- > 1 files changed, 27 insertions(+), 14 deletions(-) >
Christoph, since you talked about this on the qemu-devel mailing list, do you have a few free cycles to review this?
Paolo
| |