qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] commit 08521e2 breaks SLOF usb boot


From: Alexey Kardashevskiy
Subject: Re: [Qemu-devel] commit 08521e2 breaks SLOF usb boot
Date: Fri, 19 Jul 2013 23:23:16 +1000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130514 Thunderbird/17.0.6

On 07/19/2013 11:05 PM, Alexey Kardashevskiy wrote:
> On 07/19/2013 11:03 PM, Paolo Bonzini wrote:
>> Il 19/07/2013 14:58, Alexey Kardashevskiy ha scritto:
>>> On 07/19/2013 10:50 PM, Paolo Bonzini wrote:
>>>> Il 14/06/2013 12:32, Nikunj A Dadhania ha scritto:
>>>>> Nikunj A Dadhania <address@hidden> writes:
>>>>>> commit 08521e28c7e6e8cc1f53424a0f845f58d2ed9546
>>>>>> Author: Paolo Bonzini <address@hidden>
>>>>>> Date:   Fri May 24 12:54:01 2013 +0200
>>>>>>
>>>>>>     memory: add big endian support to access_with_adjusted_size
>>>>>>     
>>>>>>     This will be used to split 8-byte access down to two four-byte 
>>>>>> accesses.
>>>>>>     
>>>>>>     Reviewed-by: Richard Henderson <address@hidden>
>>>>>>     Signed-off-by: Paolo Bonzini <address@hidden>
>>>>>>
>>>>>>
>>>>>> If I hack the above funniness in my USB EHCI driver, somewhere down the
>>>>>> qemu crashes at code introduced by this patch:
>>>>>>
>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>> 0x0000000000000000 in ?? ()
>>>>>> (gdb) bt
>>>>>> #0 0x0000000000000000 in ?? ()
>>>>>> #1 0x00005555557a0ea4 in access_with_adjusted_size (address@hidden, 
>>>>>> address@hidden, address@hidden, access_size_min=<optimized out>, 
>>>>>> access_size_max=<optimized out>,
>>>>>> access=0x5555557a1f80 <memory_region_oldmmio_write_accessor>, 
>>>>>> opaque=0x5555567f8ab8) at /home/nikunj/work/power/code/qemu/memory.c:396
>>>>>> #2 0x00005555557a5ebb in memory_region_dispatch_write (size=1, data=0, 
>>>>>> addr=12, mr=0x5555567f8ab8) at 
>>>>>> /home/nikunj/work/power/code/qemu/memory.c:998
>>>>>>
>>>>>> Reverting this, I can safely boot using a usb-storage device put on ehci 
>>>>>> controller.
>>>>>
>>>>> Just reverting this patch does not help though, i will need to figure
>>>>> which all commits are bad.
>>>>
>>>> Hi Nikunj,
>>>>
>>>> can you try the attached patch?
>>>>
>>>> Alexey, with some luck it may even fix virtio-blk too.
>>>
>>>
>>> Heh. Bad luck. The behaviour has changed slightly but it still does not 
>>> work.
>>
>> How changed?
> 
> 
> See below. I am trying to debug :)


Fails here. io_mem_unassigned. Are you on any IRC?


(gdb) bt
#0  memory_region_access_valid (mr=0x10aee190 <io_mem_unassigned>,
addr=0xd0fb0000802, size=0x2,
    is_write=0x0) at /home/alexey/pcipassthru/qemu-impreza/memory.c:931
#1  0x00000000103838c0 in memory_region_dispatch_read (mr=0x10aee190
<io_mem_unassigned>,
    addr=0xd0fb0000802, pval=0x3fffffffdd30, size=0x2) at
/home/alexey/pcipassthru/qemu-impreza/memory.c:962
#2  0x0000000010387038 in io_mem_read (mr=0x10aee190 <io_mem_unassigned>,
addr=0xd0fb0000802,
    pval=0x3fffffffdd30, size=0x2) at
/home/alexey/pcipassthru/qemu-impreza/memory.c:1740
#3  0x00000000102ebde0 in lduw_phys_internal (addr=0xd0fb0000802,
endian=DEVICE_NATIVE_ENDIAN)
    at /home/alexey/pcipassthru/qemu-impreza/exec.c:2390
#4  0x00000000102ebed8 in lduw_phys (addr=0xd0fb0000802)
    at /home/alexey/pcipassthru/qemu-impreza/exec.c:2422
#5  0x000000001037387c in vring_avail_idx (vq=0x10c16e30)
    at /home/alexey/pcipassthru/qemu-impreza/hw/virtio/virtio.c:138
#6  0x000000001037429c in virtqueue_num_heads (vq=0x10c16e30, idx=0x0)
    at /home/alexey/pcipassthru/qemu-impreza/hw/virtio/virtio.c:285
#7  0x0000000010374a74 in virtqueue_pop (vq=0x10c16e30, elem=0x10c34c08)
    at /home/alexey/pcipassthru/qemu-impreza/hw/virtio/virtio.c:441
#8  0x000000001030c1bc in virtio_blk_get_request (s=0x10c1c2f8)
    at /home/alexey/pcipassthru/qemu-impreza/hw/block/virtio-blk.c:118
#9  0x000000001030cfb8 in virtio_blk_handle_output (vdev=0x10c1c2f8,
vq=0x10c16e30)
    at /home/alexey/pcipassthru/qemu-impreza/hw/block/virtio-blk.c:411
#10 0x0000000010375c48 in virtio_queue_notify_vq (vq=0x10c16e30)
    at /home/alexey/pcipassthru/qemu-impreza/hw/virtio/virtio.c:687
#11 0x000000001037776c in virtio_queue_host_notifier_read (n=0x10c16e80)
    at /home/alexey/pcipassthru/qemu-impreza/hw/virtio/virtio.c:1071
#12 0x000000001020fe74 in qemu_iohandler_poll (pollfds=0x10bb1a00, ret=0x2)
    at /home/alexey/pcipassthru/qemu-impreza/iohandler.c:143
#13 0x0000000010210c4c in main_loop_wait (nonblocking=0x0)
    at /home/alexey/pcipassthru/qemu-impreza/main-loop.c:466
#14 0x00000000102c97d4 in main_loop () at
/home/alexey/pcipassthru/qemu-impreza/vl.c:2090
#15 0x00000000102d2c80 in main (argc=0x16, argv=0x3ffffffff1b8,
envp=0x3ffffffff270)
    at /home/alexey/pcipassthru/qemu-impreza/vl.c:4432



> 
> SLOF **********************************************************************
> QEMU Starting
>  Build Date = Apr 30 2013 14:04:00
>  FW Version = git-8cfdfc43f4c4c8c8
>  Press "s" to enter Open Firmware.
> 
> Populating /vdevice methods
> Populating /vdevice/address@hidden
> 
> NVRAM: size=65536, fetch=200E, store=200F
> Populating /vdevice/address@hidden
> Populating /address@hidden
>  Adapters on 0800000020000000
>                      00 0000 (D) : 1af4 1001    virtio [ block ]
> No NVRAM common partition, re-initializing...
> claim failed!
> Using default console: /vdevice/address@hidden
> 
>   Welcome to Open Firmware
> 
>   Copyright (c) 2004, 2011 IBM Corporation All rights reserved.
>   This program and the accompanying materials are made available
>   under the terms of the BSD License available at
>   http://www.opensource.org/licenses/bsd-license.php
> 
> 
> Trying to load:  from: disk ... qemu-system-ppc64: Guest moved used index
> from 0 to 65535
> 
> 
> 


-- 
Alexey



reply via email to

[Prev in Thread] Current Thread [Next in Thread]