From ef41c637feebd279b017838b46dc5cfdb52c1ef6 Mon Sep 17 00:00:00 2001 Message-Id: In-Reply-To: References: From: Paolo Bonzini Date: Mon, 9 Dec 2013 14:09:00 +0100 Subject: [PATCH 12/50] block: add BlockLimits structure to BlockDriverState RH-Author: Paolo Bonzini Message-id: <1386598178-11845-15-git-send-email-pbonzini@redhat.com> Patchwork-id: 56049 O-Subject: [RHEL 7.0 qemu-kvm PATCH 14/52] block: add BlockLimits structure to BlockDriverState Bugzilla: 1007815 RH-Acked-by: Jeffrey Cody RH-Acked-by: Fam Zheng RH-Acked-by: Stefan Hajnoczi From: Peter Lieven this patch adds BlockLimits which introduces discard and write_zeroes limits and alignment information to the BlockDriverState. Signed-off-by: Peter Lieven Signed-off-by: Stefan Hajnoczi (cherry picked from commit fe81c2cca6dc69a5e423f6d8b235606b7f3ca7b7) --- include/block/block_int.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) Signed-off-by: Michal Novotny --- include/block/block_int.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/include/block/block_int.h b/include/block/block_int.h index 236c0c2..ab98c07 100644 --- a/include/block/block_int.h +++ b/include/block/block_int.h @@ -219,6 +219,20 @@ struct BlockDriver { QLIST_ENTRY(BlockDriver) list; }; +typedef struct BlockLimits { + /* maximum number of sectors that can be discarded at once */ + int max_discard; + + /* optimal alignment for discard requests in sectors */ + int64_t discard_alignment; + + /* maximum number of sectors that can zeroized at once */ + int max_write_zeroes; + + /* optimal alignment for write zeroes requests in sectors */ + int64_t write_zeroes_alignment; +} BlockLimits; + /* * Note: the function bdrv_append() copies and swaps contents of * BlockDriverStates, so if you add new fields to this struct, please @@ -273,6 +287,9 @@ struct BlockDriverState { uint64_t total_time_ns[BDRV_MAX_IOTYPE]; uint64_t wr_highest_sector; + /* I/O Limits */ + BlockLimits bl; + /* Whether the disk can expand beyond total_sectors */ int growable; -- 1.7.11.7