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

[Xen-devel] shadow_clean_dirty_bitmap's another solution


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "zhujun" <zhujun@xxxxxxxxxxxxxx>
  • Date: Wed, 24 Jun 2009 17:08:38 +0800
  • Delivery-date: Wed, 24 Jun 2009 02:09:09 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: Acn0q1x91Kd7nRC2RXW1QBgsymfyNg==

Hi,

         When doing live migration, the shadow code is translated to log dirty mode. However, in the shadow_clean_dirty_bitmap function, all the in-use shadow page tables are blew down. I think it is too crude, just as the comment of the function says. I am trying to find a better solution, but it does not succeeds. Would you please help me check my source code and give me some suggestions? My current solution is walking all the in-use L1 shadow page tables and clearing each L1 entry’s R/W bit if it has set.

         I don’t know whether it is enough to remove these R/W bits for live migration. If not, how to make all the pages of a PV domain read-only again? Thanks very much!

         My source code is here.

 

                    sl1mfn = shadow_l2e_get_mfn(*sl2e);

                if ( mfn_valid(sl1mfn) )

                {

                   SHADOW_FOREACH_L1E(sl1mfn, sl1e, 0, 0, {

                        flags = shadow_l1e_get_flags(*sl1e);

                        target_mfn = shadow_l1e_get_mfn(*sl1e);

                        if(mfn_valid(target_mfn))

                        {

                                pg = mfn_to_page(target_mfn);

                                if ((pg != NULL) || ((pg->u.inuse.type_info & PGT_type_mask) == PGT_writable_page))

                                {

                                        if ((flags & _PAGE_PRESENT) && (flags & _PAGE_RW))

                                        {

                                                shadow_l1e_t ro_sl1e = shadow_l1e_remove_flags(*sl1e, _PAGE_RW);

                                                (void) shadow_set_l1e(v, sl1e, ro_sl1e, sl1mfn);

                                        }

                                }

                        }

                   });

                }

        

 

zhujun

 

_______________________________________________
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®.