All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Sander Eikelenboom <linux@eikelenboom.it>,
	Ian <Ian.Campbell@eu.citrix.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>,
	"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
	Keir Fraser <keir.fraser@eu.citrix.com>
Subject: Re: xen dependant on pcpu 0 ?
Date: Tue, 12 Oct 2010 12:44:33 -0400	[thread overview]
Message-ID: <20101012164433.GB21567@dumpdata.com> (raw)
In-Reply-To: <1452957126.20101012182813@eikelenboom.it>

On Tue, Oct 12, 2010 at 06:28:13PM +0200, Sander Eikelenboom wrote:
> Hi Keir,
> 
> Does xen and/or the xen console depend on physical cpu 0 ?

Usually the console for Dom0, and I think all other domains go
through CPU0. Let me CC Ian here, who has been mucking in this
area and found some bugs (and produced fixes).

Ian, that bug you found with not clearing the eventchannel - that
wouldn't have an impact here, right?

> 
> I'm still trying to solve the mystery of my machine freezing when doing:
> 
>  - videograbbing in a domU with a usb3 pci-express controller passed through (seems to cause quite a few interrupts)
>  - compiling a linux kernel with "make -j 6"
> 
> It's a 6 core AMD phenom x6.
> 
> Without cpu pinning:
> I can freeze the machine easily within a minute after starting the compile, at first xen serial console also slows down under the load (slow updates).
> When the machine freezes i can't do anything with xen serial console.
> 
> With cpu pinning:
> By not using the pcpu 0 at all for any domain, and pinning the domain with the videograbber to it's own pcpu (pcpu 5)  it seems the machine keeps running after 20 "make -j6" iterations of kernel compilation.
> Xen serial console stays responsive and doesn't slow down during the kernel compilation. The videograbber shows no problem grabbing video.
> 

AHA! So finally closer to the mystery.

Can you provide the /proc/interrupts of the Dom0?

I wonder if this is related to the isseu I had some time ago, and never got
to look at. The problem was that during heavy compilation (this is a 2 Nehelem
socket box, just running Dom0 - no guests), the keyboard and USB driver would
stop getting interrupts.  So the drivers would start polling which is quite slow,
albeit servicable, and then at some point it would pick up again.

The weirdness was that the /proc/interrupts showed absolutly _no_ interrupts on CPU0
during that time - as if Xen just forgot to update them. Jeremy suggested I try to
disable Xen IRQ balance (noirqbalance on Xen command line) in case that is it, and to my
emberrasement I haven't tried that yet.

Did you try that? I think somebody suggested that but I can't recall whether it
was for this issue?
> 
> Name                                ID  VCPU   CPU State   Time(s) CPU Affinity
> Domain-0                             0     0     3   r--    2169.7 1-4
> Domain-0                             0     1     1   -b-    2339.3 1-4
> Domain-0                             0     2     2   -b-    2358.9 1-4
> Domain-0                             0     3     3   -b-    2298.2 1-4
> Domain-0                             0     4     1   -b-    2221.9 1-4
> Domain-0                             0     5     4   -b-    2287.7 1-4
> backup                               9     0     4   -b-      10.6 1-4
> database                             1     0     4   -b-      45.3 1-4
> davical                              5     0     3   -b-       8.7 1-4
> git                                  8     0     2   -b-       7.9 1-4
> mail                                 2     0     4   -b-       8.0 1-4
> samba                                3     0     3   -b-      11.1 1-4
> security                             7     0     5   r--    1433.2 5
> www                                  4     0     1   -b-      10.2 1-4
> zabbix                               6     0     3   -b-      21.2 1-4
> 
> 
> Is there a way a deadlock could occur between hypervisor <-> dom0 <-> domU especially related to passthrough/interrupts in the context of pcpu 0 ?

I don't know, but I do know that the IRQ handling in Xen 4.0 changed significantly compared
to 3.4. I don't remember if you ever ran this setup under 3.4?
> 
> --
> Sander

  reply	other threads:[~2010-10-12 16:44 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-12 16:28 xen dependant on pcpu 0 ? Sander Eikelenboom
2010-10-12 16:44 ` Konrad Rzeszutek Wilk [this message]
2010-10-12 17:13   ` Ian Campbell
2010-10-12 18:50   ` Sander Eikelenboom
2010-10-12 19:37   ` Sander Eikelenboom
2010-10-13 13:36   ` Sander Eikelenboom
2010-10-13 14:26     ` Sander Eikelenboom
2010-10-13 14:41       ` Jan Beulich
     [not found]         ` <31342487.20101013170345@eikelenboom.it>
     [not found]           ` <4CB5EBC3020000780001CEC6@vpn.id2.novell.com>
2010-10-13 15:41             ` Sander Eikelenboom
2010-10-13 16:08               ` Jan Beulich
2010-10-13 14:26     ` Jan Beulich
2010-10-13 15:00       ` Jiang, Yunhong
2010-10-13 15:31         ` Jan Beulich

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=20101012164433.GB21567@dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=Ian.Campbell@eu.citrix.com \
    --cc=jeremy@goop.org \
    --cc=keir.fraser@eu.citrix.com \
    --cc=linux@eikelenboom.it \
    --cc=xen-devel@lists.xensource.com \
    /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.