[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Overlaped PIO with multiple ioreq_server (Xen4.6.1)


I have problem with multiple ioreq_servers
server 1 (emulates VGA) and server 2 (qemu).

Emulation VGA server maps VGA PIO registers (3c0-3cf, 3b4-3b5 ...)
Qemu maps "all" PIO space (0-ffff)
Xen does not check overlap errors between ioreq_servers
Xen choose "first match"

In my case all requests to VGA PIO are sent to qemu (qemu VGA is disabled with parameter "-display none"/"-vga none") and dropped.
Emulation VGA server receives only memory updates (eg. a0000-bffff).

Is this problem resolved in updates (actual code looks the same (ioreq.c)) ?
Is there any prioritization between ioreq_servers (but it is probably bad idea) 
Should the IO mapping check overlap between ioreq_servers (but it is probably 
bad idea) ?
Should the qemu IO map only emulated areas (why it needs all ?) ?
Any other solution ?

Thanks for answers, Martin Cerveny

PS: I programmed workaround to select sever with smaller mapped range 

CC: Paolo Bonzini <pbonzini@xxxxxxxxxx> - Maintainer qemu - exec.c
CC: Paul Durrant <paul.durrant@xxxxxxxxxx> - Maintainer X86 I/O EMULATION - 

Attachment: ioreq_server-smaller-wins.patch
Description: Text document

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.