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

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



Hello.

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)
(ref: 
http://xenbits.xen.org/gitweb/?p=qemu-xen.git;a=blob;f=exec.c;h=46fe70ed49f85d0638061aa5b09f1f9d521b0bd3;hb=18f2ce4bfe67f9b38143d9d96207e49c92b6881c#l2007
  )
Xen does not check overlap errors between ioreq_servers
(ref: 
http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/arch/x86/hvm/hvm.c;h=186e01e3b05a0264e8f4538b226da2feed50d11a;hb=d77bac5c064ffb9dbb5b89b55b89853f1b784ebf#l1252
 )
Xen choose "first match"
(ref: 
http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/arch/x86/hvm/hvm.c;h=186e01e3b05a0264e8f4538b226da2feed50d11a;hb=d77bac5c064ffb9dbb5b89b55b89853f1b784ebf#l2594
 )

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 
(attached).

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

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

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

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