[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] Re: [Xen-ia64-devel] Re: console output in xen.gz
On 2/6/07, Alex Williamson <alex.williamson@xxxxxx> wrote: On Tue, 2007-02-06 at 06:27 +0100, Tristan Gingold wrote: > > >(XEN) lookup_domain_mpa: d 0xf000000007af4080 id 1 current > > >0xf000000007ac8000 i0 > > >(XEN) lookup_domain_mpa: bad mpa 0xffffc09e279 (=> 0x1fff4000) > > >(XEN) Warning: UC to WB for mpaddr=ffffc09e279 > > >(XEN) lookup_domain_mpa: d 0xf000000007af4080 id 1 current > > >0xf000000007ac8000 i0 > DomU was trying to access lpt2. Perhaps we should be less verbose about I/O port space accesses. Unfortunately it's pretty normal for an OS to do some poking in port space. Something like the patch below would help reduce the noise. Thanks, Don't get me wrong, I like verboseness especially when an OS is trying to do something that xen doesn't support yet, this helped quite a bit in debugging what was going on. Even though I'm a bit confused as to why this would cause a domU to hang forever. I built the domU with some custom filesystems that aren't in the default kernel, those filesystems happen to grab lots of memory from the kernel. Why might something like this cause the domU to hang? (when I say hang I mean stop, no console output no oopse or bugs nothing from xen from the console, can't ping, everything just stopped). Alex Signed-off-by: Alex Williamson <alex.williamson@xxxxxx> --- diff -r b3ae332e6dbd xen/arch/ia64/xen/mm.c --- a/xen/arch/ia64/xen/mm.c Tue Feb 06 09:28:07 2007 -0700 +++ b/xen/arch/ia64/xen/mm.c Tue Feb 06 11:26:16 2007 -0700 @@ -525,7 +525,9 @@ u64 translate_domain_pte(u64 pteval, u64 This can happen when domU tries to touch i/o port space. Also prevents possible address aliasing issues. */ - printk("Warning: UC to WB for mpaddr=%lx\n", mpaddr); + if (!(mpaddr - IO_PORTS_PADDR < IO_PORTS_SIZE)) + gdprintk(XENLOG_WARNING, "Warning: UC to WB " + "for mpaddr=%lx\n", mpaddr); pteval = (pteval & ~_PAGE_MA_MASK) | _PAGE_MA_WB; } break; @@ -690,7 +692,6 @@ unsigned long lookup_domain_mpa(struct d if (pte != NULL) { pte_t tmp_pte = *pte;// pte is volatile. copy the value. if (pte_present(tmp_pte)) { -//printk("lookup_domain_page: found mapping for %lx, pte=%lx\n",mpaddr,pte_val(*pte)); if (entry != NULL) p2m_entry_set(entry, pte, tmp_pte); return pte_val(tmp_pte); @@ -698,14 +699,24 @@ unsigned long lookup_domain_mpa(struct d return GPFN_INV_MASK; } - printk("%s: d 0x%p id %d current 0x%p id %d\n", - __func__, d, d->domain_id, current, current->vcpu_id); - if (mpaddr < d->arch.convmem_end) - printk("%s: non-allocated mpa 0x%lx (< 0x%lx)\n", __func__, - mpaddr, d->arch.convmem_end); - else - printk("%s: bad mpa 0x%lx (=> 0x%lx)\n", __func__, - mpaddr, d->arch.convmem_end); + if (mpaddr < d->arch.convmem_end) { + gdprintk(XENLOG_WARNING, "d 0x%p id %d current 0x%p id %d\n", + d, d->domain_id, current, current->vcpu_id); + gdprintk(XENLOG_WARNING, "non-allocated mpa 0x%lx (< 0x%lx)\n", + mpaddr, d->arch.convmem_end); + } else if (mpaddr - IO_PORTS_PADDR < IO_PORTS_SIZE) { + /* Log I/O port probing, but complain less loudly about it */ + gdprintk(XENLOG_INFO, "d 0x%p id %d current 0x%p id %d\n", + d, d->domain_id, current, current->vcpu_id); + gdprintk(XENLOG_INFO, "bad mpa 0x%lx (=> 0x%lx)\n", + mpaddr, d->arch.convmem_end); + } else { + gdprintk(XENLOG_WARNING, "d 0x%p id %d current 0x%p id %d\n", + d, d->domain_id, current, current->vcpu_id); + gdprintk(XENLOG_WARNING, "bad mpa 0x%lx (=> 0x%lx)\n", + mpaddr, d->arch.convmem_end); + } + if (entry != NULL) p2m_entry_set(entry, NULL, __pte(0)); _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |