All of lore.kernel.org
 help / color / mirror / Atom feed
* 'virtio DMA to IO ram' error
@ 2008-12-30 12:49 Passera, Pablo R
  2008-12-30 12:54 ` Passera, Pablo R
  2009-01-01 16:45 ` Avi Kivity
  0 siblings, 2 replies; 3+ messages in thread
From: Passera, Pablo R @ 2008-12-30 12:49 UTC (permalink / raw)
  To: kvm@vger.kernel.org

Hi everybody,

        I am trying to implement a new virtio device. I have implemented the new device in Qemu and I also have the correspondent virtio driver in the guest. But when I get data in the device and I try to put that into the virtqueue using virtqueue_pop, the qemu instance crash showing the error 'virtio DMA to IO ram'. This is in the virtio_map_gpa function in virtio.c. Does anyone knows what this means?

        Here is the code from virtio_map_gpa
.
.
static void *virtio_map_gpa(target_phys_addr_t addr, size_t size)
{
    ram_addr_t off;
    target_phys_addr_t addr1;

    off = cpu_get_physical_page_desc(addr);
    if ((off & ~TARGET_PAGE_MASK) != IO_MEM_RAM) {
        fprintf(stderr, "virtio DMA to IO ram 1\n");
        exit(1);
    }
.
.
.

Thanks a lot,

Pablo

^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: 'virtio DMA to IO ram' error
  2008-12-30 12:49 'virtio DMA to IO ram' error Passera, Pablo R
@ 2008-12-30 12:54 ` Passera, Pablo R
  2009-01-01 16:45 ` Avi Kivity
  1 sibling, 0 replies; 3+ messages in thread
From: Passera, Pablo R @ 2008-12-30 12:54 UTC (permalink / raw)
  To: kvm@vger.kernel.org

[-- Attachment #1: Type: text/plain, Size: 1494 bytes --]

Actually, I am not trying to put data into the queue using pop. I get an
element from the queue using virtqueue_pop, fill the element and then push
the element into the queue using virtqueue_push. When I try to do the pop is
when it crash.

Pablo

>-----Original Message-----
>From: kvm-owner@vger.kernel.org [mailto:kvm-owner@vger.kernel.org] On
>Behalf Of Passera, Pablo R
>Sent: Tuesday, December 30, 2008 10:50 AM
>To: kvm@vger.kernel.org
>Subject: 'virtio DMA to IO ram' error
>
>Hi everybody,
>
>        I am trying to implement a new virtio device. I have implemented
>the new device in Qemu and I also have the correspondent virtio driver
>in the guest. But when I get data in the device and I try to put that
>into the virtqueue using virtqueue_pop, the qemu instance crash showing
>the error 'virtio DMA to IO ram'. This is in the virtio_map_gpa function
>in virtio.c. Does anyone knows what this means?
>
>        Here is the code from virtio_map_gpa
>.
>.
>static void *virtio_map_gpa(target_phys_addr_t addr, size_t size)
>{
>    ram_addr_t off;
>    target_phys_addr_t addr1;
>
>    off = cpu_get_physical_page_desc(addr);
>    if ((off & ~TARGET_PAGE_MASK) != IO_MEM_RAM) {
>        fprintf(stderr, "virtio DMA to IO ram 1\n");
>        exit(1);
>    }
>.
>.
>.
>
>Thanks a lot,
>
>Pablo
>--
>To unsubscribe from this list: send the line "unsubscribe kvm" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html

[-- Attachment #2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 2142 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: 'virtio DMA to IO ram' error
  2008-12-30 12:49 'virtio DMA to IO ram' error Passera, Pablo R
  2008-12-30 12:54 ` Passera, Pablo R
@ 2009-01-01 16:45 ` Avi Kivity
  1 sibling, 0 replies; 3+ messages in thread
From: Avi Kivity @ 2009-01-01 16:45 UTC (permalink / raw)
  To: Passera, Pablo R; +Cc: kvm@vger.kernel.org

Passera, Pablo R wrote:
> Hi everybody,
>
>         I am trying to implement a new virtio device. I have implemented the new device in Qemu and I also have the correspondent virtio driver in the guest. But when I get data in the device and I try to put that into the virtqueue using virtqueue_pop, the qemu instance crash showing the error 'virtio DMA to IO ram'. This is in the virtio_map_gpa function in virtio.c. Does anyone knows what this means?
>
>         Here is the code from virtio_map_gpa
> .
> .
> static void *virtio_map_gpa(target_phys_addr_t addr, size_t size)
> {
>     ram_addr_t off;
>     target_phys_addr_t addr1;
>
>     off = cpu_get_physical_page_desc(addr);
>     if ((off & ~TARGET_PAGE_MASK) != IO_MEM_RAM) {
>         fprintf(stderr, "virtio DMA to IO ram 1\n");
>         exit(1);
>     }
>   

In means the virtio buffers point to memory that is not RAM, but is some 
memory-mapped I/O range or pehaps unmapped.  I suggest printing the 
physical addresses both in the guest and in qemu; something is likely 
garbled.



-- 
error compiling committee.c: too many arguments to function


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-01-01 16:45 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-30 12:49 'virtio DMA to IO ram' error Passera, Pablo R
2008-12-30 12:54 ` Passera, Pablo R
2009-01-01 16:45 ` Avi Kivity

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.