All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dietmar Hahn <dietmar.hahn@ts.fujitsu.com>
To: xen-devel@lists.xen.org
Cc: Konrad Rzeszutek Wilk <konrad@kernel.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Jan Beulich <JBeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: dom0 / hypervisor hang  on dom0 boot
Date: Tue, 21 May 2013 09:39:14 +0200	[thread overview]
Message-ID: <1486614.T9i4H26zXq@amur.mch.fsc.net> (raw)
In-Reply-To: <20130517222814.GA3255@localhost.localdomain>


[-- Attachment #1.1: Type: text/plain, Size: 2793 bytes --]

Am Freitag 17 Mai 2013, 18:28:16 schrieb Konrad Rzeszutek Wilk:
> On Thu, May 16, 2013 at 01:07:05PM +0200, Dietmar Hahn wrote:
> > Am Mittwoch 15 Mai 2013, 10:42:17 schrieb Jan Beulich:
> > > >>> On 15.05.13 at 11:12, Dietmar Hahn <dietmar.hahn@ts.fujitsu.com> wrote:
> > > > Am Mittwoch 15 Mai 2013, 09:35:46 schrieb Jan Beulich:
> > > >> >>> On 15.05.13 at 08:53, Dietmar Hahn <dietmar.hahn@ts.fujitsu.com> wrote:
> > > >> > I tried iommu=debug and I can't see any faulting messages but Iam not
> > > >> > familiar with this code.
> > > >> > I attached the logging, maybe anyone can have a look on this.
> > > 
> > > Perhaps only (if at all) by instrumenting the hypervisor. The
> > > question of course is how easily/quickly you can narrow down the
> > > code region that it might be dying in. And whether it's a hypervisor
> > > action at all that causes the hang (as opposed to something the
> > > DRM code in Dom0 does).
> > 
> > I added some debug code to the linux kernel and could track down the
> > point of the hang. I used openSuSE kernel 3.7.10-1.4 but I looked at newer
> > kernels and found that the code is similar.
> > 
> > i915_gem_init_global_gtt(...)
> >  ...
> >  intel_gtt_clear_range(start / PAGE_SIZE, (end-start) / PAGE_SIZE);
> >  ...
> > 
> > void intel_gtt_clear_range(unsigned int first_entry, unsigned int num_entries)
> > {
> >         unsigned int i;
> > 
> >     ---> A printk(...) here is seen on serial line!
> > 
> >         for (i = first_entry; i < (first_entry + num_entries); i++) {
> >                 intel_private.driver->write_entry(intel_private.base.scratch_page_dma,
> >                                                   i, 0);
> >         }
> > 
> >     ---> A printk(...) here is never seen!
> > 
> >         readl(intel_private.gtt+i-1);
> > }
> > 
> > The function behind the pointer intel_private.driver->write_entry is
> > i965_write_entry(). And the interesting instruction seems to be:
> >   writel(addr | pte_flags, intel_private.gtt + entry);
> > 
> > I added another printk() on start of the function i965_write_entry().
> > And surprisingly  after printing a lot of messages the kernel came up!!!
> > But now I had other problems like losing the audio device (maybe timeouts).
> > So maybe the hang is a timing problem?
> > 
> > What I wanted to check is, what the hypervisor is doing while the system hangs.
> > Has anybody an idea maybe a timer and after 30s printing a dump of the stack of
> > all cpus?
> 
> Yes. Can you try the two attached patches please.

I tried both but none helped. I think it couldn't be expected as the first
patch handles an error case and the line with the second patch,
the call of pci_dma_sync_single_for_device(), gets not reached.

Dietmar.

-- 
Company details: http://ts.fujitsu.com/imprint.html

[-- Attachment #1.2: Type: text/html, Size: 12612 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

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

  reply	other threads:[~2013-05-21  7:39 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-14 12:35 dom0 / hypervisor hang on dom0 boot Dietmar Hahn
2013-05-14 12:42 ` Andrew Cooper
2013-05-14 12:50   ` Dietmar Hahn
2013-05-14 12:51     ` Andrew Cooper
2013-05-14 13:25       ` Dietmar Hahn
2013-05-14 13:27 ` Jan Beulich
2013-05-15  6:53   ` Dietmar Hahn
2013-05-15  8:35     ` Jan Beulich
2013-05-15  9:12       ` Dietmar Hahn
2013-05-15  9:42         ` Jan Beulich
2013-05-16 11:07           ` Dietmar Hahn
2013-05-16 12:10             ` Jan Beulich
2013-05-16 13:16               ` Dietmar Hahn
2013-05-16 13:45                 ` Jan Beulich
2013-05-17  7:10                   ` Dietmar Hahn
2013-05-16 14:50               ` Dugger, Donald D
2013-05-20 14:30               ` Dugger, Donald D
2013-05-21  8:03                 ` Jan Beulich
2013-05-21  8:28                   ` Tian, Kevin
2013-05-21  8:47                     ` Jan Beulich
2013-05-17 22:28             ` Konrad Rzeszutek Wilk
2013-05-21  7:39               ` Dietmar Hahn [this message]
2013-05-21 14:10                 ` Konrad Rzeszutek Wilk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1486614.T9i4H26zXq@amur.mch.fsc.net \
    --to=dietmar.hahn@ts.fujitsu.com \
    --cc=JBeulich@suse.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=konrad.wilk@oracle.com \
    --cc=konrad@kernel.org \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.