|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] pvops DomU kernels [was Re: "Hotplug Scripts not working
On 10/23/09 13:48, Keir Fraser wrote:
> On 23/10/2009 21:37, "Jeremy Fitzhardinge" <jeremy@xxxxxxxx> wrote:
>
>
>> Its not at all clear to me what Xen is objecting to here. There are a
>> few paths where it can end up at could_not_pin in get_page_from_l1e(),
>> but I don't know which one is happening here. I think it's the "if (
>> unlikely(real_pg_owner != pg_owner) )" conditional, but I don't know
>> what real_pg_owner means here.
>>
>> Keir?
>>
> If you fail that test it means that the page does not belong to the domain
> that the caller expected. In most cases, that means it was expected to
> belong to the domain making the hypercall, but actually it does not belong
> to it.
The domain is calling update_va_mapping() on itself, and everything
seems to be owned by the domain:
(XEN) mm.c:840:d33 Error getting mfn 18c3 (pfn 21603) from L1 entry
80000000018c3061 for l1e_owner=33, pg_owner=33
The three paths that lead to could_not_pin are:
if ( real_pg_owner == NULL )
goto could_not_pin;
...
if ( unlikely(real_pg_owner != pg_owner) )
{
if ( (pg_owner == l1e_owner) || !IS_PRIV_FOR(pg_owner, real_pg_owner) )
goto could_not_pin;
pg_owner = real_pg_owner;
}
and
if ( (l1f & _PAGE_RW) &&
((l1e_owner == pg_owner) || !paging_mode_external(pg_owner)) &&
!get_page_type(page, PGT_writable_page) )
goto could_not_pin;
The pte doesn't have RW set, so it must be one of the first two.
Could it be read_pg_owner == NULL?
J
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|