[RFC PATCH 0/3] target: try satisfying memory requests with higher-order allocations

Paolo Bonzini
2012-09-05T15:13:58Z

Hi all,

while testing PSCSI I noticed that even requests for a smallish amount
of data (approximately 700 KB) failed due to an excessive number of
segments in the request. In fact, using alloc_page resulted in a
completely fragmented request, with no merging of consecutive pages
at all.

This patch series fixes this problem by using higher-order allocations
to build the data scatterlist. The problem is that iscsi assumes that the
scatterlist consists of single pages, which is not true anymore. So
patch 2 has to introduce some relatively complicated changes to
iscsi_map_iovec and iscsi_unmap_iovec.

While doing this, I noticed something strange in iscsit_do_crypto_hash_sg.
Patch 1 adds a warning about it.

The approach may be completely wrong and it needs more testing anyway.
Please review!

Paolo

Paolo Bonzini (3):
tcm_iscsi: warn on incorrect precondition for iscsit_do_crypto_hash_sg
tcm_iscsi: support multiple sizes in the scatterlist
target: try satisfying memory requests with contiguous blocks

drivers/target/iscsi/iscsi_target.c | 106 +++++++++++++++++++++++++-----
drivers/target/iscsi/iscsi_target_core.h | 2 +-
drivers/target/target_core_transport.c | 58 ++++++++++++++---
3 files changed, 138 insertions(+), 28 deletions(-)