Hello Jan,
thank you again for your thorough feedback. I have addressed your
comments. I just have one remaining issue. For the temporary MFNs array
I now use a static array, i.e., mfns[IOREQ_NR_PAGES_MAX], with a
IOREQ_NR_PAGES_MAX = DIV_ROUND_UP(HVM_MAX_VCPUS, PAGE_SIZE / sizeof(ioreq_t)).
Is this appropriate? Or should I leave the HVM_MAX_VCPUS out of this and
instead use a fixed constant value? Also for now I haven't taken the
path to permanently store the MFNs as you suggested. I'm not sure, but I
don't think it's really necessary. Since this array will rarely exceed
the size of 2 or 3.
Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Julian Vetter (3):
ioreq: switch ioreq page allocation to vmap
ioreq: Indent ioreq_server_alloc_mfn() body one level deeper
x86/ioreq: Extend ioreq server to support multiple ioreq pages
xen/arch/x86/hvm/ioreq.c | 63 ++++++++++++++++---
xen/common/ioreq.c | 127 ++++++++++++++++++++++++++-------------
xen/include/xen/ioreq.h | 13 +++-
3 files changed, 151 insertions(+), 52 deletions(-)
--
2.53.0
--
Julian Vetter | Vates Hypervisor & Kernel Developer
XCP-ng & Xen Orchestra - Vates solutions
web: https://vates.tech