|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-devel] Unknown interrupt on x86_64 Xen on ES7000 x86_64
Puthiyaparambil, Aravindh wrote:
>> I have the same problem "Unknown Interrupt" on a DP machine. Looks
>> like #PF is happening at => when xen is built with debug=y.
>>
>> static void map_alloc(unsigned long first_page, unsigned long
>> nr_pages) { ...
>> curr_idx = first_page / PAGES_PER_MAPWORD;
>> start_off = first_page & (PAGES_PER_MAPWORD-1);
>> end_idx = (first_page + nr_pages) / PAGES_PER_MAPWORD;
>> end_off = (first_page + nr_pages) & (PAGES_PER_MAPWORD-1);
>>
>> if ( curr_idx == end_idx )
>> {
>> alloc_bitmap[curr_idx] &= -(1UL<<end_off) |
>> ((1UL<<start_off)-1); }
>> else
>> {
>> alloc_bitmap[curr_idx] &= (1UL<<start_off)-1;
>> while ( ++curr_idx != end_idx ) alloc_bitmap[curr_idx] = 0;
>> => alloc_bitmap[curr_idx] &= -(1UL<<end_off); }
>> }
>>
>> If I change
>> while ( ++curr_idx != end_idx - 1 ) alloc_bitmap[curr_idx] =
>> 0; I can work around it.
>
> Yes, that fixed the "Unknown Interrupt" problem. I am now seeing the
> same issue that I am seeing on the Dell PowerEdge 470 x86_64 system.
>
> BTW, what is a DP machine?
>
> Aravindh
>
Try to use old version of arch/x86/time.c, for example, the one
attached. You also might want to comment out:
asmlinkage int do_page_fault(struct cpu_user_regs *regs)
{
...
xen_fault:
if ( likely((fixup = search_exception_table(regs->eip)) != 0) )
{
perfc_incrc(copy_user_faults);
if ( !shadow_mode_enabled(d) )
// DPRINTK("Page fault: %p -> %p\n", _p(regs->eip),
_p(fixup));
;
regs->eip = fixup;
return 0;
}
Jun
---
Intel Open Source Technology Center
Attachment:
time.c _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |