guest boot status

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

 



Andreas,
  Thanks for the update.  On your suggestion I merged kvmrun into 
emulate and got the emulation working with the shadow page tables.  I 
too got to a point where the guest runs until the first dabt exception, 
mine occurs at 0x88 on a load instruction though, but the storage it's 
trying to load is the same as what you were showing (different guest 
kernel's?).  I updated arm_insterrupts.S to save the fault address 
register in vcpu->arch.host_far so when it gets to kvmarm_handle_exit 
you have the address it was trying to access.  I also added code in 
kvmarm_handle_exit that attempts to fix the access then reexecute the 
instruction.  But when the instruction is reexecuted a dabt exception 
again occurs and we get in an infinite loop forever executing the 
instruction and causing a dabt exception.  I ran out of time to 
investigate why what I did wasn't sufficient (search 
"make_pages_present" in arm.c).  On the plus side it's the user program 
that is stuck in an infinite loop, the kernel is okay.

Regards,
Brian

Andreas Nilsson wrote:
> Brian,
>
> we debugged the boot process today and identified were we get the crash. 
> It's in a loop between offsets 0xa0 and 0xb8 in head.S. I've described 
> what happens in the wiki and also added pages about MMU emulation and 
> moved the boot info to a separate section. Everything should be 
> committed to the kvmrun branch.
>
> For the weekend I think there are two main tasks you can look at:
>
> 1. Before we crash we actually encounter some privileged instructions 
> which are currently handled as no-ops since we commented out the 
> translation/emulation code. It could make sense to try to get to the 
> same point where we are now but actually emulate the privileged 
> instructions on the way there. It won't solve our crash but it will be 
> good testing of the translation/emulation code for the future.
>
> There are actually a whole lot of branches taken which would test the 
> block identification and translation pretty well.
>
> 2. Copy the shadow page table code into the emulation branch and play 
> around with it to see if you can figure out how to resolve the crash.
>
> GL!
>
> /Andreas
> _______________________________________________
> Android-virt mailing list
> Android-virt at lists.cs.columbia.edu
> https://lists.cs.columbia.edu/cucslists/listinfo/android-virt
>
>   


[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux