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

Re: [Xen-devel] Dom0 linux 4.0 + devel/for-linus-4.1 branch: p2m.c:884:d0v0 gfn_to_mfn failed! gfn=ffffffff001ed type:4



Wednesday, April 15, 2015, 10:58:50 PM, you wrote:

>> Hi Konrad,
>> 
>> xen version is at last changeset 3a28f760508fb35c430edac17a9efde5aff6d1d5 
>> (previous unstable master before the force push which includes 
>> 1aeb1156fa43fe2cd2b5003995b20466cd19a622 which causes the trouble reported 
>> here:
>> http://lists.xen.org/archives/html/xen-devel/2015-04/msg01336.html )
>> 
>> qemu-xen is at last changeset 727b998448e852a5e8eb570ac3a259ef62fbdacb 
>> plus the revert of 7665d6ba98e20fb05c420de947c1750fd47e5c07 
>> (due to other problem reported here: 
>> http://lists.xen.org/archives/html/xen-devel/2015-04/msg01121.html )

> You sure? I thought Andrew had an three line patch to fix that:

Yeah that one helped, but Andrew clearly stated that it's RFC:
  "I am not certain that it is the correct way to fix the issue, nor that
  the ioreq server code is the only way to trigger it.  There are several
  ways to shoot a gfn mapping from the guests physmap.

  At least we now understand why it happens.  I will defer to others CC'd
  on this thread for their opinions in the matter."

So my thought was to try to keep this issue as separated as possible
from the other two while testing.


> diff --git a/xen/drivers/passthrough/x86/iommu.c 
> b/xen/drivers/passthrough/x86/iommu.c
> index 9eb8d33..f4ab044 100644
> --- a/xen/drivers/passthrough/x86/iommu.c
> +++ b/xen/drivers/passthrough/x86/iommu.c
> @@ -56,8 +56,9 @@ int arch_iommu_populate_page_table(struct domain *d)
>  
>      while ( !rc && (page = page_list_remove_head(&d->page_list)) )
>      {
> -        if ( has_hvm_container_domain(d) ||
-            (page->>u.inuse.type_info & PGT_type_mask) == PGT_writable_page )
> +        if ( (mfn_to_gmfn(d, page_to_mfn(page)) != INVALID_MFN) &&
> +            (has_hvm_container_domain(d) ||
> +             ((page->u.inuse.type_info & PGT_type_mask) == 
> PGT_writable_page)) )
>          {
>              BUG_ON(SHARED_M2P(mfn_to_gmfn(d, page_to_mfn(page))));
>              rc = hd->platform_ops->map_page(

> ?



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.