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

Re: [Xen-devel] ioperm problem



On Sun, Nov 13, 2011 at 10:19:06PM +0100, Pavel MatÄja wrote:
> Hi,
> I'm trying to port AMD VGA passthru patch to the latest XEN and vanila kernel 
> and I got SIGSEGV in
> 
> static void ati_hw_out(uint16_t hport, uint32_t data)
> {
>     ioperm(gfx_info.host_pio_base, gfx_info.pio_size, 1);    
>     asm volatile ("out %1, %0"::"Nd"(hport),"a"(data));
>     ioperm(gfx_info.host_pio_base, gfx_info.pio_size, 0);
> }

Does it work under baremetal?

What is the host_pio_base?

Is the host_pio_base part of the permitted IO ports? (you can
see that if you run 'xl debug-keys q' and it should show you something
like this:

(XEN) Rangesets belonging to domain 1:
(XEN)     I/O Ports  { b400-b41f, b800-b81f }
(XEN)     Interrupts { 18-19, 54-55 }
(XEN)     I/O Memory { fe940-fe9ff }
(XEN) Memory pages belonging to domain 1:

(you can get that from xm dmesg).

As you can see, the b400->b41f are allowed in the domain 1. Is your
host_pio_base in there?


> 
> I tried old 2.6.32 XEN kernel and there is no such problem.
> It looks related to arch/x86/kernel/ioport.c but I'm not sure.
> Is anyone here familiar with that code?

Yes, and I think I saw somebody ask me about that too.

Lets rope them in this converstation - they got it to work
but my memory is foggy at what was required.

Ben, Thomas,

I remember you guys had a tough time with vd86 which did something similar
and it ultimately was due to to /dev/mem not passing in VM_IO. But the
ioperm/outb sounds familiar too. Was there a missing hypercall when
forking/copying the ioperm bitmap?

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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