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

Re: [Xen-devel] [xen-unstable test] 16788: regressions - FAIL



>>> On 04.03.13 at 12:12, Tim Deegan <tim@xxxxxxx> wrote:
> At 10:57 +0000 on 04 Mar (1362394626), Jan Beulich wrote:
>> >>> On 02.03.13 at 13:34, xen.org <ian.jackson@xxxxxxxxxxxxx> wrote:
>> > flight 16788 xen-unstable real [real]
>> > http://www.chiark.greenend.org.uk/~xensrcts/logs/16788/ 
>> > 
>> > Regressions :-(
>> > 
>> > Tests which did not succeed and are blocking,
>> > including tests which could not be run:
>> >  test-amd64-i386-xend-qemut-winxpsp3  7 windows-install    fail REGR. vs. 
>> > 16772
>> >  test-amd64-i386-win           7 windows-install           fail REGR. vs. 
>> > 16772
>> 
>> So this (and presumably other Windows failures too) is apparently
>> a regression from 703ac3abcfc5f649c038070867ee12c67f730548
>> ("x86: introduce create_perdomain_mapping()"), running into
>> emulate_map_dest()'s
>> 
>>         /* Hack: we map the pages into the vcpu's LDT space, since we
>>          * know that we're not going to need the LDT for HVM guests, 
>>          * and only HVM guests are allowed unaligned writes. */
>>         ASSERT(is_hvm_vcpu(v));
>>         map = (void *)LDT_VIRT_START(v);
>>         offset = l1_linear_offset((unsigned long) map);
>>         l1e_write(&__linear_l1_table[offset],
>>                   l1e_from_pfn(mfn_x(sh_ctxt->mfn1), __PAGE_HYPERVISOR));
>>         l1e_write(&__linear_l1_table[offset + 1],
>>                   l1e_from_pfn(mfn_x(sh_ctxt->mfn2), __PAGE_HYPERVISOR));
>>         flush_tlb_local();
>>         map += (vaddr & ~PAGE_MASK);
>> 
>> Question - is there really no better way than this to deal with
>> cross page emulated writes?
> 
> There probably is -- all that's wanted here is two mappings that are
> guaranteed to be contiguous in virtual address.  The LDT slots were
> available; it would have been better to document this use where
> LDT_VIRT_START is defined, though.
> 
> AFAICT, we'll need to:
>  - cause some equivalent pair of PTEs to be available (either per-cpu or
>    per-vcpu); or
>  - add a map_two_domain_pages() function to use the mapcache for this; or

Would vmap() do? Or do we expect this code path to be performance
sensitive?

Jan

>  - rework the emulated accesses not to need contiguous mappings (but I
>    don't fancy doing a page-crossing cmpxchg in that case).
> 
> Cheers,
> 
> Tim.




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