Hi Yamahata-san,
  Thank you for your comment.
You (yamahata) said:
> On Tue, Mar 06, 2007 at 09:56:14PM +0900, DOI Tsunehisa wrote:
>>     - we have to modify guest_physmap_add_page() to support it.
>>       (this is straight reason of hypervisor crash)
> 
> The patch breaks the the p2m/m2p table convension.
> get_page() shouldn't fail because xen heap page must be owned
> by the domain when guest_physmap_add_page() is called.
> share_xen_page_with_guest() does it.
  I've thought that this patch is tricky, but I didn't find the
correct way to modify to avoid hypervisor crash issue.
> What kind of page was passed when you observed the panic?
> Who allocated and passed it?
  Currently, without this patch, hypervisor crashes in PV-on-HVM
initialization phase..
  * at share_info page remapping: success
    - called from HYPERVISOR_memory_op in init_xen_info()..
      (unmodified_drivers/linux-2.6/platform-pci/platform-pci.c)
  * at grant table page remapping: crash
    - called from gnttab_init() in init_xen_info()
    - call tree in driver code is 
      gnttab_init() -> gnttab_resume() -> gnttab_map()
         -> HYPERVISOR_memory_op
      (linux-2.6-xen-sparse/drivers/xen/core/gnttab.c)
    - at guest_physmap_add_page() in hypervisor code,
  1706  void
  1707  guest_physmap_add_page(struct domain *d, unsigned long gpfn,
  1708                         unsigned long mfn)
  1709  {
  1710      int ret;
  1711
  1712      BUG_ON(!mfn_valid(mfn));
  1713      ret = get_page(mfn_to_page(mfn), d);
  1714      BUG_ON(ret == 0);           <<==== it crashes at this point.
  1715      set_gpfn_from_mfn(mfn, gpfn);
  1716      smp_mb();
  So, at grant table page remapping, the hypervisor crashes,
I think.
Thanks,
- Tsunehisa Doi
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
 |