Load increase after memory upgrade (part2)

classic Classic list List threaded Threaded
58 messages Options
123
Reply | Threaded
Open this post in threaded view
|

Load increase after memory upgrade (part2)

Carsten Schiers
Load increase after memory upgrade (part2)

Hello again, I would like to come back to that thing...sorry that I did not have the time up to now.

 

We (now) speak about

 

  • Xen 4.1.2
  • Dom0 is Jeremy's 2.6.32.46 64 bit
  • DomU in question is now 3.1.2 64 bit
  • Same thing if DomU is also 2.6.32.46
  • DomU owns two PCI cards (DVB-C) that o DMA
  • Machine has 8GB, Dom0 pinned at 512MB

 

As compared to 2.6.34 Kernel with backported patches, the load on the DomU is at least twice as high. It

will be "close to normal" if I reduce the memory used to 4GB.

 

As you can see from the attachment, you once had an idea. So should we try to find something...?

 

Carsten.
 

-----Ursprüngliche Nachricht-----
An: konrad.wilk <[hidden email]>;
CC: linux <[hidden email]>; xen-devel <[hidden email]>;
Von: Carsten Schiers <[hidden email]>
Gesendet: Mi 29.06.2011 23:17
Betreff: AW: Re: Re: Re: AW: Re: [Xen-devel] AW: Load increase after memory upgrade?
> Lets first do the c) experiment as that will likely explain your load average increase.
...

> >c). If you want to see if the fault here lies in the bounce buffer
> being used more
> >often in the DomU b/c you have 8GB of memory now and you end up using
> more pages
> >past 4GB (in DomU), I can cook up a patch to figure this out. But an
> easier way is
> >to just do (on the Xen hypervisor line): mem=4G and that will make
> think you only have
> >4GB of physical RAM.  If the load comes back to the normal "amount"
> then the likely
> >culprit is that and we can think on how to fix this.

You are on the right track. Load was going down to "normal" 10% when reducing
Xen to 4GB by the parameter. Load seems to be still a little, little bit lower
with Xenified Kernel (8-9%), but this is drastically lower than the 20% we had
before.

_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Konrad Rzeszutek Wilk-2
On Thu, Nov 24, 2011 at 01:28:44PM +0100, Carsten Schiers wrote:

> Hello again, I would like to come back to that thing...sorry that I did not have the time up to now.
>
> ??
> We (now) speak about
>
> ??
> * Xen 4.1.2
> * Dom0 is Jeremy's 2.6.32.46 64 bit
> * DomU in question is now 3.1.2 64 bit
> * Same thing if DomU is also 2.6.32.46
> * DomU owns two PCI cards (DVB-C) that o DMA
> * Machine has 8GB, Dom0 pinned at 512MB
>
> ??
> As compared to 2.6.34 Kernel with backported patches, the load on the DomU is at least twice as high. It
>
> will be "close to normal" if I reduce the memory used to 4GB.

That is in the dom0 or just in general on the machine?
>
> ??
> As you can see from the attachment, you once had an idea. So should we try to find something...?

I think that was to instrument swiotlb to give an idea of how
often it is called and basically have a matrix of its load. And
from there figure out if the issue is that:

 1). The drivers allocoate/bounce/deallocate buffers on every interrupt
    (bad, driver should be using some form of dma pool and most of the
    ivtv do that)

 2). The buffers allocated to the drivers are above the 4GB and we end
    up bouncing it needlessly. That can happen if the dom0 has most of
    the precious memory under 4GB. However, that is usually not the case
    as the domain isusually allocated from the top of the memory. The
    fix for that was to set dom0_mem=max:XX. .. but with Dom0 kernels
    before 3.1, the parameter would be ignored, so you had to use
    'mem=XX' on the Linux command line as well.

 3). Where did you get the load values? Was it dom0? or domU?



>
> ??
> Carsten.
> ??
> -----Urspr??ngliche Nachricht-----
> An:konrad.wilk <[hidden email]>;
> CC:linux <[hidden email]>; xen-devel <[hidden email]>;
> Von:Carsten Schiers <[hidden email]>
> Gesendet:Mi 29.06.2011 23:17
> Betreff:AW: Re: Re: Re: AW: Re: [Xen-devel] AW: Load increase after memory upgrade?
> > Lets first do the c) experiment as that will likely explain your load average increase.
> ...
> > >c). If you want to see if the fault here lies in the bounce buffer
> > being used more
> > >often in the DomU b/c you have 8GB of memory now and you end up using
> > more pages
> > >past 4GB (in DomU), I can cook up a patch to figure this out. But an
> > easier way is
> > >to just do (on the Xen hypervisor line): mem=4G and that will make
> > think you only have
> > >4GB of physical RAM. ??If the load comes back to the normal "amount"
> > then the likely
> > >culprit is that and we can think on how to fix this.
>
> You are on the right track. Load was going down to "normal" 10% when reducing
> Xen to 4GB by the parameter. Load seems to be still a little, little bit lower
> with Xenified Kernel (8-9%), but this is drastically lower than the 20% we had
> before.

> _______________________________________________
> Xen-devel mailing list
> [hidden email]
> http://lists.xensource.com/xen-devel


_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Carsten Schiers
I got the values in DomU. I will have

  - aprox. 5% load in DomU with 2.6.34 Xenified Kernel
  - aprox. 15% load in DomU with 2.6.32.46 Jeremy or 3.1.2 Kernel with one card attached
  - aprox. 30% load in DomU with 2.6.32.46 Jeremy or 3.1.2 Kernel with two cards attached

I looked through my old mails from you and you explained already the necessity of double
bounce buffering (PCI->below 4GB->above 4GB). What I don't understand is: why does the
Xenified kernel not have this kind of issue?

The driver in question is nearly identical between the two kernel versions. It is in
Drivers/media/dvb/ttpci by the way and when I understood the code right, the allo in
question is:

        /* allocate and init buffers */
        av7110->debi_virt = pci_alloc_consistent(pdev, 8192, &av7110->debi_bus);
        if (!av7110->debi_virt)
                goto err_saa71466_vfree_4;

isn't it? I think the cards are constantly transferring the stream received through DMA.

I have set dom0_mem=512M by the way, shall I change that in some way?

I can try out some things, if you want me to. But I have no idea what to do and where to
start, so I rely on your help...

Carsten.

-----Ursprüngliche Nachricht-----
Von: [hidden email] [mailto:[hidden email]] Im Auftrag von Konrad Rzeszutek Wilk
Gesendet: Freitag, 25. November 2011 19:43
An: Carsten Schiers
Cc: xen-devel; konrad.wilk
Betreff: Re: [Xen-devel] Load increase after memory upgrade (part2)

On Thu, Nov 24, 2011 at 01:28:44PM +0100, Carsten Schiers wrote:

> Hello again, I would like to come back to that thing...sorry that I did not have the time up to now.
>
> ??
> We (now) speak about
>
> ??
> * Xen 4.1.2
> * Dom0 is Jeremy's 2.6.32.46 64 bit
> * DomU in question is now 3.1.2 64 bit
> * Same thing if DomU is also 2.6.32.46
> * DomU owns two PCI cards (DVB-C) that o DMA
> * Machine has 8GB, Dom0 pinned at 512MB
>
> ??
> As compared to 2.6.34 Kernel with backported patches, the load on the DomU is at least twice as high. It
>
> will be "close to normal" if I reduce the memory used to 4GB.

That is in the dom0 or just in general on the machine?
>
> ??
> As you can see from the attachment, you once had an idea. So should we try to find something...?

I think that was to instrument swiotlb to give an idea of how
often it is called and basically have a matrix of its load. And
from there figure out if the issue is that:

 1). The drivers allocoate/bounce/deallocate buffers on every interrupt
    (bad, driver should be using some form of dma pool and most of the
    ivtv do that)

 2). The buffers allocated to the drivers are above the 4GB and we end
    up bouncing it needlessly. That can happen if the dom0 has most of
    the precious memory under 4GB. However, that is usually not the case
    as the domain isusually allocated from the top of the memory. The
    fix for that was to set dom0_mem=max:XX. .. but with Dom0 kernels
    before 3.1, the parameter would be ignored, so you had to use
    'mem=XX' on the Linux command line as well.

 3). Where did you get the load values? Was it dom0? or domU?



>
> ??
> Carsten.
> ??
> -----Urspr??ngliche Nachricht-----
> An:konrad.wilk <[hidden email]>;
> CC:linux <[hidden email]>; xen-devel <[hidden email]>;
> Von:Carsten Schiers <[hidden email]>
> Gesendet:Mi 29.06.2011 23:17
> Betreff:AW: Re: Re: Re: AW: Re: [Xen-devel] AW: Load increase after memory upgrade?
> > Lets first do the c) experiment as that will likely explain your load average increase.
> ...
> > >c). If you want to see if the fault here lies in the bounce buffer
> > being used more
> > >often in the DomU b/c you have 8GB of memory now and you end up using
> > more pages
> > >past 4GB (in DomU), I can cook up a patch to figure this out. But an
> > easier way is
> > >to just do (on the Xen hypervisor line): mem=4G and that will make
> > think you only have
> > >4GB of physical RAM. ??If the load comes back to the normal "amount"
> > then the likely
> > >culprit is that and we can think on how to fix this.
>
> You are on the right track. Load was going down to "normal" 10% when reducing
> Xen to 4GB by the parameter. Load seems to be still a little, little bit lower
> with Xenified Kernel (8-9%), but this is drastically lower than the 20% we had
> before.

> _______________________________________________
> Xen-devel mailing list
> [hidden email]
> http://lists.xensource.com/xen-devel


_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel


_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Carsten Schiers
In reply to this post by Konrad Rzeszutek Wilk-2
To add (read from some munin statistics I made over the time):

  - with load I mean the %CPU of xentop
  - there is no change in CPU usage of the DomU or Dom0
  - xenpm shows the core dedicated to that DomU is doing more work

Also I need to say that reduction to 4GB was performed by Xen parameter.

Carsten.


-----Ursprüngliche Nachricht-----
Von: Konrad Rzeszutek Wilk [mailto:[hidden email]]
Gesendet: Freitag, 25. November 2011 19:43
An: Carsten Schiers
Cc: konrad.wilk; xen-devel
Betreff: Re: [Xen-devel] Load increase after memory upgrade (part2)

On Thu, Nov 24, 2011 at 01:28:44PM +0100, Carsten Schiers wrote:

> Hello again, I would like to come back to that thing...sorry that I did not have the time up to now.
>
> ??
> We (now) speak about
>
> ??
> * Xen 4.1.2
> * Dom0 is Jeremy's 2.6.32.46 64 bit
> * DomU in question is now 3.1.2 64 bit
> * Same thing if DomU is also 2.6.32.46
> * DomU owns two PCI cards (DVB-C) that o DMA
> * Machine has 8GB, Dom0 pinned at 512MB
>
> ??
> As compared to 2.6.34 Kernel with backported patches, the load on the DomU is at least twice as high. It
>
> will be "close to normal" if I reduce the memory used to 4GB.

That is in the dom0 or just in general on the machine?
>
> ??
> As you can see from the attachment, you once had an idea. So should we try to find something...?

I think that was to instrument swiotlb to give an idea of how
often it is called and basically have a matrix of its load. And
from there figure out if the issue is that:

 1). The drivers allocoate/bounce/deallocate buffers on every interrupt
    (bad, driver should be using some form of dma pool and most of the
    ivtv do that)

 2). The buffers allocated to the drivers are above the 4GB and we end
    up bouncing it needlessly. That can happen if the dom0 has most of
    the precious memory under 4GB. However, that is usually not the case
    as the domain isusually allocated from the top of the memory. The
    fix for that was to set dom0_mem=max:XX. .. but with Dom0 kernels
    before 3.1, the parameter would be ignored, so you had to use
    'mem=XX' on the Linux command line as well.

 3). Where did you get the load values? Was it dom0? or domU?



>
> ??
> Carsten.
> ??
> -----Urspr??ngliche Nachricht-----
> An:konrad.wilk <[hidden email]>;
> CC:linux <[hidden email]>; xen-devel <[hidden email]>;
> Von:Carsten Schiers <[hidden email]>
> Gesendet:Mi 29.06.2011 23:17
> Betreff:AW: Re: Re: Re: AW: Re: [Xen-devel] AW: Load increase after memory upgrade?
> > Lets first do the c) experiment as that will likely explain your load average increase.
> ...
> > >c). If you want to see if the fault here lies in the bounce buffer
> > being used more
> > >often in the DomU b/c you have 8GB of memory now and you end up using
> > more pages
> > >past 4GB (in DomU), I can cook up a patch to figure this out. But an
> > easier way is
> > >to just do (on the Xen hypervisor line): mem=4G and that will make
> > think you only have
> > >4GB of physical RAM. ??If the load comes back to the normal "amount"
> > then the likely
> > >culprit is that and we can think on how to fix this.
>
> You are on the right track. Load was going down to "normal" 10% when reducing
> Xen to 4GB by the parameter. Load seems to be still a little, little bit lower
> with Xenified Kernel (8-9%), but this is drastically lower than the 20% we had
> before.

> _______________________________________________
> Xen-devel mailing list
> [hidden email]
> http://lists.xensource.com/xen-devel



_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Konrad Rzeszutek Wilk-2
In reply to this post by Carsten Schiers
On Fri, Nov 25, 2011 at 11:11:55PM +0100, Carsten Schiers wrote:
> I got the values in DomU. I will have
>
>   - aprox. 5% load in DomU with 2.6.34 Xenified Kernel
>   - aprox. 15% load in DomU with 2.6.32.46 Jeremy or 3.1.2 Kernel with one card attached
>   - aprox. 30% load in DomU with 2.6.32.46 Jeremy or 3.1.2 Kernel with two cards attached

HA!

I just wonder if the issue is that the reporting of CPU spent is wrong.
Laszlo Ersek and Zhenzhong Duan have both reported a bug in the pvops
code when it came to account of CPU time.

>
> I looked through my old mails from you and you explained already the necessity of double
> bounce buffering (PCI->below 4GB->above 4GB). What I don't understand is: why does the
> Xenified kernel not have this kind of issue?

That is a puzzle. It should not. The code is very much the same - both
use the generic SWIOTLB which has not changed for years.
>
> The driver in question is nearly identical between the two kernel versions. It is in
> Drivers/media/dvb/ttpci by the way and when I understood the code right, the allo in
> question is:
>
>         /* allocate and init buffers */
>         av7110->debi_virt = pci_alloc_consistent(pdev, 8192, &av7110->debi_bus);

Good. So it allocates it during init and uses it.
>         if (!av7110->debi_virt)
>                 goto err_saa71466_vfree_4;
>
> isn't it? I think the cards are constantly transferring the stream received through DMA.

Yeah, and that memory is set aside for the life of the driver. So there
should be no bounce buffering happening (as it allocated the memory
below the 4GB mark).
>
> I have set dom0_mem=512M by the way, shall I change that in some way?

Does the reporting (CPU usage of DomU) change in any way with that?

>
> I can try out some things, if you want me to. But I have no idea what to do and where to
> start, so I rely on your help...
>
> Carsten.
>
> -----Urspr?ngliche Nachricht-----
> Von: [hidden email] [mailto:[hidden email]] Im Auftrag von Konrad Rzeszutek Wilk
> Gesendet: Freitag, 25. November 2011 19:43
> An: Carsten Schiers
> Cc: xen-devel; konrad.wilk
> Betreff: Re: [Xen-devel] Load increase after memory upgrade (part2)
>
> On Thu, Nov 24, 2011 at 01:28:44PM +0100, Carsten Schiers wrote:
> > Hello again, I would like to come back to that thing...sorry that I did not have the time up to now.
> >
> > ??
> > We (now) speak about
> >
> > ??
> > * Xen 4.1.2
> > * Dom0 is Jeremy's 2.6.32.46 64 bit
> > * DomU in question is now 3.1.2 64 bit
> > * Same thing if DomU is also 2.6.32.46
> > * DomU owns two PCI cards (DVB-C) that o DMA
> > * Machine has 8GB, Dom0 pinned at 512MB
> >
> > ??
> > As compared to 2.6.34 Kernel with backported patches, the load on the DomU is at least twice as high. It
> >
> > will be "close to normal" if I reduce the memory used to 4GB.
>
> That is in the dom0 or just in general on the machine?
> >
> > ??
> > As you can see from the attachment, you once had an idea. So should we try to find something...?
>
> I think that was to instrument swiotlb to give an idea of how
> often it is called and basically have a matrix of its load. And
> from there figure out if the issue is that:
>
>  1). The drivers allocoate/bounce/deallocate buffers on every interrupt
>     (bad, driver should be using some form of dma pool and most of the
>     ivtv do that)
>
>  2). The buffers allocated to the drivers are above the 4GB and we end
>     up bouncing it needlessly. That can happen if the dom0 has most of
>     the precious memory under 4GB. However, that is usually not the case
>     as the domain isusually allocated from the top of the memory. The
>     fix for that was to set dom0_mem=max:XX. .. but with Dom0 kernels
>     before 3.1, the parameter would be ignored, so you had to use
>     'mem=XX' on the Linux command line as well.
>
>  3). Where did you get the load values? Was it dom0? or domU?
>
>
>
> >
> > ??
> > Carsten.
> > ??
> > -----Urspr??ngliche Nachricht-----
> > An:konrad.wilk <[hidden email]>;
> > CC:linux <[hidden email]>; xen-devel <[hidden email]>;
> > Von:Carsten Schiers <[hidden email]>
> > Gesendet:Mi 29.06.2011 23:17
> > Betreff:AW: Re: Re: Re: AW: Re: [Xen-devel] AW: Load increase after memory upgrade?
> > > Lets first do the c) experiment as that will likely explain your load average increase.
> > ...
> > > >c). If you want to see if the fault here lies in the bounce buffer
> > > being used more
> > > >often in the DomU b/c you have 8GB of memory now and you end up using
> > > more pages
> > > >past 4GB (in DomU), I can cook up a patch to figure this out. But an
> > > easier way is
> > > >to just do (on the Xen hypervisor line): mem=4G and that will make
> > > think you only have
> > > >4GB of physical RAM. ??If the load comes back to the normal "amount"
> > > then the likely
> > > >culprit is that and we can think on how to fix this.
> >
> > You are on the right track. Load was going down to "normal" 10% when reducing
> > Xen to 4GB by the parameter. Load seems to be still a little, little bit lower
> > with Xenified Kernel (8-9%), but this is drastically lower than the 20% we had
> > before.
>
> > _______________________________________________
> > Xen-devel mailing list
> > [hidden email]
> > http://lists.xensource.com/xen-devel
>
>
> _______________________________________________
> Xen-devel mailing list
> [hidden email]
> http://lists.xensource.com/xen-devel
>

_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Konrad Rzeszutek Wilk-2
In reply to this post by Carsten Schiers
On Sat, Nov 26, 2011 at 10:14:08AM +0100, Carsten Schiers wrote:
> To add (read from some munin statistics I made over the time):
>
>   - with load I mean the %CPU of xentop
>   - there is no change in CPU usage of the DomU or Dom0

Uhh, which matrix are using for that? CPU usage...? This is if you
change the DomU or the amount of memory the guest has? This is not
the load number (xentop value)?

>   - xenpm shows the core dedicated to that DomU is doing more work
>
> Also I need to say that reduction to 4GB was performed by Xen parameter.
>
> Carsten.
>
>
> -----Urspr?ngliche Nachricht-----
> Von: Konrad Rzeszutek Wilk [mailto:[hidden email]]
> Gesendet: Freitag, 25. November 2011 19:43
> An: Carsten Schiers
> Cc: konrad.wilk; xen-devel
> Betreff: Re: [Xen-devel] Load increase after memory upgrade (part2)
>
> On Thu, Nov 24, 2011 at 01:28:44PM +0100, Carsten Schiers wrote:
> > Hello again, I would like to come back to that thing...sorry that I did not have the time up to now.
> >
> > ??
> > We (now) speak about
> >
> > ??
> > * Xen 4.1.2
> > * Dom0 is Jeremy's 2.6.32.46 64 bit
> > * DomU in question is now 3.1.2 64 bit
> > * Same thing if DomU is also 2.6.32.46
> > * DomU owns two PCI cards (DVB-C) that o DMA
> > * Machine has 8GB, Dom0 pinned at 512MB
> >
> > ??
> > As compared to 2.6.34 Kernel with backported patches, the load on the DomU is at least twice as high. It
> >
> > will be "close to normal" if I reduce the memory used to 4GB.
>
> That is in the dom0 or just in general on the machine?
> >
> > ??
> > As you can see from the attachment, you once had an idea. So should we try to find something...?
>
> I think that was to instrument swiotlb to give an idea of how
> often it is called and basically have a matrix of its load. And
> from there figure out if the issue is that:
>
>  1). The drivers allocoate/bounce/deallocate buffers on every interrupt
>     (bad, driver should be using some form of dma pool and most of the
>     ivtv do that)
>
>  2). The buffers allocated to the drivers are above the 4GB and we end
>     up bouncing it needlessly. That can happen if the dom0 has most of
>     the precious memory under 4GB. However, that is usually not the case
>     as the domain isusually allocated from the top of the memory. The
>     fix for that was to set dom0_mem=max:XX. .. but with Dom0 kernels
>     before 3.1, the parameter would be ignored, so you had to use
>     'mem=XX' on the Linux command line as well.
>
>  3). Where did you get the load values? Was it dom0? or domU?
>
>
>
> >
> > ??
> > Carsten.
> > ??
> > -----Urspr??ngliche Nachricht-----
> > An:konrad.wilk <[hidden email]>;
> > CC:linux <[hidden email]>; xen-devel <[hidden email]>;
> > Von:Carsten Schiers <[hidden email]>
> > Gesendet:Mi 29.06.2011 23:17
> > Betreff:AW: Re: Re: Re: AW: Re: [Xen-devel] AW: Load increase after memory upgrade?
> > > Lets first do the c) experiment as that will likely explain your load average increase.
> > ...
> > > >c). If you want to see if the fault here lies in the bounce buffer
> > > being used more
> > > >often in the DomU b/c you have 8GB of memory now and you end up using
> > > more pages
> > > >past 4GB (in DomU), I can cook up a patch to figure this out. But an
> > > easier way is
> > > >to just do (on the Xen hypervisor line): mem=4G and that will make
> > > think you only have
> > > >4GB of physical RAM. ??If the load comes back to the normal "amount"
> > > then the likely
> > > >culprit is that and we can think on how to fix this.
> >
> > You are on the right track. Load was going down to "normal" 10% when reducing
> > Xen to 4GB by the parameter. Load seems to be still a little, little bit lower
> > with Xenified Kernel (8-9%), but this is drastically lower than the 20% we had
> > before.
>
> > _______________________________________________
> > Xen-devel mailing list
> > [hidden email]
> > http://lists.xensource.com/xen-devel
>
>

_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Ian Campbell-10
In reply to this post by Konrad Rzeszutek Wilk-2
On Mon, 2011-11-28 at 15:28 +0000, Konrad Rzeszutek Wilk wrote:
> On Fri, Nov 25, 2011 at 11:11:55PM +0100, Carsten Schiers wrote:

> > I looked through my old mails from you and you explained already the necessity of double
> > bounce buffering (PCI->below 4GB->above 4GB). What I don't understand is: why does the
> > Xenified kernel not have this kind of issue?
>
> That is a puzzle. It should not. The code is very much the same - both
> use the generic SWIOTLB which has not changed for years.

The swiotlb-xen used by classic-xen kernels (which I assume is what
Carsten means by "Xenified") isn't exactly the same as the stuff in
mainline Linux, it's been heavily refactored for one thing. It's not
impossible that mainline is bouncing something it doesn't really need
to.

It's also possible that the dma mask of the device is different/wrong in
mainline leading to such additional bouncing.

I guess it's also possible that the classic-Xen kernels are playing fast
and loose by not bouncing something they should (although if so they
appear to be getting away with it...) or that there is some difference
which really means mainline needs to bounce while classic-Xen doesn't.

Ian.



_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Carsten Schiers
In reply to this post by Konrad Rzeszutek Wilk-2
AW: [Xen-devel] Load increase after memory upgrade (part2)

Hi,

 

let me try to explain a bit more. Here you see the output of my xentop munin graph for a

week. Only take a look at the bluish buckle. Notice the small step in front? So it's the CPU

permille used by the DomU that owns the cards. The small buckle is when I only put in

one PCI card. Afterwards it's constantly noticable higher load. See that Dom0 (green) is

not impacted. I am back to the Xenified kernel, as you can see.

 

<img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfEAAAGECAIAAACpv45YAAAgAElEQVR4nO29f3RU1b33v8MkEAJmQiCWYDoQMSQwkyAdij8e9fHbdatWXagFLvWqvb21pbf4I4BWy7IL51GqT4USbTBllhXSaBDMTEKCXLWIJCp3GR2oTQERE2hRhJlMyI/9z13r+eN8/9jJzs7Z55zZc2bOzPnxea1Zs2bOfM45n7Nnn/e8Z8+Zz0Z/BQAAAGxBZ2cnynYOAAAAQBro7OzcuXPnqKZjAAAAwMrs3LkTNB0AAMAmgKYDAADYB9B0AAAA+wCaDgAAYCVaONhXQdMBQBmEULZTSAIzZGuGHJzDyMgIUXPQdMAOGCcfdMv8g7Rs1iDMoKdmyMEhDA0Nffrpp6FQ6Pz5862trexLoOnO4r777vvpT3/KLvmP//iP+++/P5VtIoQQQjk5OZdddllNTc369evPnj2bWpppRlFrEkp2igqVYYEzg56aIQcncPLkyY6Ojq6urtOnT7e2tn766afsq6DpziIajS5atGjnzp3k6auvvur1emOxWCrbpGdyNBr96KOPfvnLX5aWlp44cSLVXNMHaLpzcnAC77///vnz59VeBU13HEePHv3Wt7517NixY8eOzZ49m7zvQ0NDGzZsmDVr1tSpU1esWHHhwgUSjBB68cUXPR5PXl5eTU3NkSNH+A3yZ/KTTz75ox/9iDzu7+//93//98suu+yyyy77yU9+0t/fT9eqq6ubO3fu5MmTFy5c+Je//GXHjh3z588nO/r4449J2N///vcf/OAH06ZNmzJlyve///0zZ87IdqovQ7oQMfBb5h/w8YoZamxWo0ESHogGCKFnn322pKSkoKDg/vvvj8fjGOPrr79+165dNObkyZOzZ89m5aC8vPyTTz4hj3fs2EEefPLJJ+Xl5Vi9V2j0FvLggw8+mDNnzu9+97ukDgFIC6DpTuRPf/qT1+v1er2NjY1kyW9+85vvfe97p06dunDhwn333fezn/2MLEcIrVix4osvvohGo0899ZTf7+e3xivmyZMnv/Wtb5HHjz766K233nrmzJm+vr5/+Zd/qa2tpWstX778888/j0ajTz/99PTp0++55x769Lvf/S4Jq6qqeuutt2Kx2Pnz59euXbt69WrZTvVliNV9ush4en19/W233SaYoeypRoMkPBANEEJks2fO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" />
 

In the next picture you see the output of xenpm visualized. So this might be an indicator that

realy something happens. It's only the core that I dedicated to that DomU. I have a three-core

AMD CPU by the way:

 

<img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfEAAAEkCAIAAACwo5+2AAAgAElEQVR4nO2da3RUVZr3N7kZAqaSQBiCUCFgSICAYmgEWm3aGTs9PTReArpowOnV0zhrAI0GdI2ji6YBtUUH2uYiLSOGYBRMVS4IgkYkabUX4SZmkYAhF0EuqUuu+8usNR/q/bDfPn04l6pdpy7n9v+tZ51zss+uvf/nqVNPnuyqPEW+AQAAYAkaGxuJ3hoAAABEgcbGxr179/7/mE4BAACYmb179yKmAwCARUBMBwAA64CYDgAA1gExHQAAzES1DPFZxHQQVwghkgODc/To0fHjxxtTrRFUGUGDPRkaGmLRHDEdxAO1l3pUYno840hxcfHBgwfjNl1YGCGeGkGDDRkYGDh9+rTL5bp+/XpNTY34FGI6oGfPnl20aFFmZmZKSso999yzf//+2M2lLabrGDhSU1P7+vpiNHhNTc1PfvKT1NTUzMzMJ554oqurK6yHGyGeGkGD3Whrazt06FBTU1N7e3tNTc3p06fFZxHT7c758+f/4R/+Ydu2bVeuXPH7/SdOnHj44YdjN53pYnpMp37wwQfdbndPT09XV9fKlSt/8pOfhPVwI8RTI2iwG1988cX169fVziKm253HH3/8D3/4g+IpQsimTZuys7PT0tKWL1/u9/uFdkk3xceyA7/fv2zZsrS0tDFjxmzevFke0wcGBsrLy0ePHj18+PDS0tKbN2/KhxKQPJYQsm3bttzc3JSUlKlTp3722We7d++ePHlycnLyzJkzT548yTkFpdTn8/3rv/7r7bfffvvtt//617/2+XyKUwv09fWtWbNm1KhRDofjlVdeidxjHo/ntttuk7cHQXG6+fPnv/fee0Kftra2sWPHikNAXl7eqVOn2PHu3bvZwalTp/Ly8qi6r9TahWv5y1/+Mm7cuNdffz2sSwBRBzHd7owZM+by5cuKpwghJSUlXV1dXV1dJSUlzz77rNAu6ab4WHZQVlbGBuns7HzooYfkcfnll19+8MEHL126dPPmzWXLlv32t78NMprkR0LIokWLLl686PF4fve7340cOfLRRx8VfvzRj37EP8Uzzzwj6Pynf/qnsrKyIFdHKV23bt0//uM/Xrp06dq1a6tXr47cYwcOHLj//vsV51JDcbra2tqCgoLBwUHW58knn9y4caP4UStXrty2bRul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" />

 

In CPU usage of the Dom0, there is nothing to see:

 

<img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfEAAAFsCAIAAABTqBe3AAAgAElEQVR4nO2df3QTdbr/xyapJShpG8oC1kBhS0tpi7XcUri7Xr6e7xVFd/2RVtcVPfesC/dcQCuR5ewePW4voLsKgqXQqxeFWiyiTdpSYNWtaFG5h2rLxUp/QVNEfjXJhKb9/PM9Z//g+8ess8P8yqdp0sxM3q/znDnpJ5+Zec+TybtPJ5OnzP8CAAAwBG1tbUy8NQAAAIgCbW1te/fu/bunEwAAAHpm79698HQAADAI8HQAADAO8HQAADAO8HQAANATDRKEz8LTAYgJDMPEW4ImNIAYMTo6yrk5PB2AiUALfqoFDSAWhEKhb775xu12X758ubGxUfgUPB3EnM7Ozl/+8pdpaWnJycl33nnn/v37uXHmR6ZMmfLwww+fP3+eH5duRHf2pAXBWtAAok5PT09LS8vx48fPnj3b2Nj4zTffCJ+Fp4PYcvr06Z/85Cc7duy4cOECy7Kff/75gw8+yD3FO87g4OCvfvWrX/ziF6JxIbqzJy0I1oIGEHU+++yzy5cvKz0LTwex5dFHH/3zn/8s+5TQcX744Qer1Sodl52sNMj/6PF45s+fb7FYHA7Hrl27uMHvvvvuvvvumzx58s033/yv//qvg4OD3Ljf7//1r39ttVqnTZu2efNmfiOhUMjlck2dOnXSpElOp/Pq1av0R82J2bx5c0ZGhtVqXblyJcuyhJClS5fu27ePn9PT0zN9+nTh+zMrK+vrr7/mHr/55pvcg6+//jorK0tFktI4fyxffPHFzJkzX3311TEdAtAj8HQQW6ZNm3bu3DnZp4SOfPHixSh6ut1uf++991iW7enpeeqpp7jB3NzcI0eO+P3+y5cvr1mz5rHHHuPGn3322fvvv//8+fPnz5+/7777+I28+OKLd999d19f39WrV5944onf/va39EfNiVm+fPng4ODg4ODy5cufe+45QkhTU1NOTs7IyAg356mnntq0aZNwrVWrVu3YsYMQ0tfXd8stt3DuvH379tWrV6tIUhrnjqWhoWHq1KkHDx4ck36gWXDfC4gnZrN5eHhY9inePc+fP//EE0/cf//9onHZySqD/I+ZmZnbtm3r6+tTUuXz+aZOnco9njlz5nfffcc9/vbbb/mNOByOU6dOcY+9Xu+0adOUtiYLwzDffvst9/j06dO33XYb97i4uPidd97hB30+n3CtDz74wOl0EkI2bdo0depU7o+MRx555MMPP1SRpDTOMMzrr78+Y8aMtra2MYkH2gf3vYD4oF6nc9x6660PPvig1+vlxpOSkkKhkHBmKBRKSkqS3YLsj21tbffdd196evrs2bM5NySEfPrpp0uWLLFardxOb7rpJm7cZDLxuxseHuY3YjabGQH8fNlDkH1KuFmz2cw9PnjwYHZ2digUKi8v37p1q2itoaGh22+/nRCyYMECt9u9ePFiQsjtt9/OWb+SJKVxhmFmz579/PPPS+UBXYP7XkDcePTRR1977TXZp5Q+wXM4HP/zP/8jHPnqq68cDod0ptls5uvcCxcuiDY4Ojrqdrt/8pOfcD/OnDmztrb28uXLo6OjV65c4SfPmDFDtk7PzMzs7++nOER5hHX6t99+O3PmTF7VggULKioqHA5HMBiUrvjzn//83XffLS4uJoQUFxcfPHjwrrvuUpekNM4wTF9f35w5c7Zs2RLxgQCtgfteQDw5ffr09OnTd+7c+cMPP7As29bWJr3vRcR//ud/FhUVffbZZyzLsix77NixhQsXyrpSUVHRCy+84PP5+vv7H3roIX6DZWVl33zzTTAYdLvddrudG0xLSzt48CDLst99953T6eQnP/PMMw888MD333///fffC6+n//GPf1y+fHlXV9fw8PDJkye5SyL0MAxz3333cZfp77333oqKCv6p2tpahmF2794tu+KmTZtmzpzJlfCvvfbabbfdtnnzZnVJSuPcsZw9ezY7O7uysnJM+oFmwX0vIM50dHT84he/sNlsycnJxcXFwvvTZeePjo5u3bp1wYIFN998880337xgwYLXX39dduZXX321cOFCs9nscDh27NjBb3Dfvn3Z2dlms3n+/PlNTU3c4Pvvvz979myTyXT77bdv3bqVn+zz+X71q19NmjQpIyPjj3/8o8Vi4cZHRkYqKysdDofFYsnLy6utrR3TUQvve3niiScCgQD/1P79++fOnav0McOJEyfMZjN3t/7g4KDZbOb/alGSpDTOH+PAwEBOTs6LL744pkMAegSeDsA/6OzsnDVrVqz3smLFir1798Z6L8Co4L4XAMKwdu3aixcvDgwMLF++fN26dbHb0cjISHV1dW5uLn87IwBjRWTi8HQAxLz66qt2u33y5MmPPvro0NBQ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" />

 

In CPU usage of the DomU, there is also not much to see, eventually a very slight change of

mix:

 

<img alt="" src="data:image/png;base64,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" />

 

There is a slight increase in sleaping jobs at the time slot in question, I guess nothing we ca

directly map to the issue:

 

<img alt="" src="data:image/png;base64,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" />

 

If you need other charts, I can try to produce them.

 

BR,
Carsten.

 

-----Ursprüngliche Nachricht-----
An: Carsten Schiers <[hidden email]>; [hidden email]; [hidden email];
CC: xen-devel <[hidden email]>; konrad.wilk <[hidden email]>;
Von: Konrad Rzeszutek Wilk <[hidden email]>
Gesendet: Mo 28.11.2011 16:33
Betreff: Re: [Xen-devel] Load increase after memory upgrade (part2)
On Fri, Nov 25, 2011 at 11:11:55PM +0100, Carsten Schiers wrote:
> I got the values in DomU. I will have
>
>   - aprox. 5% load in DomU with 2.6.34 Xenified Kernel
>   - aprox. 15% load in DomU with 2.6.32.46 Jeremy or 3.1.2 Kernel with one card attached
>   - aprox. 30% load in DomU with 2.6.32.46 Jeremy or 3.1.2 Kernel with two cards attached

HA!

I just wonder if the issue is that the reporting of CPU spent is wrong.
Laszlo Ersek and Zhenzhong Duan have both reported a bug in the pvops
code when it came to account of CPU time.

>
> I looked through my old mails from you and you explained already the necessity of double
> bounce buffering (PCI->below 4GB->above 4GB). What I don't understand is: why does the
> Xenified kernel not have this kind of issue?

That is a puzzle. It should not. The code is very much the same - both
use the generic SWIOTLB which has not changed for years.
>
> The driver in question is nearly identical between the two kernel versions. It is in
> Drivers/media/dvb/ttpci by the way and when I understood the code right, the allo in
> question is:
>
>         /* allocate and init buffers */
>         av7110->debi_virt = pci_alloc_consistent(pdev, 8192, &av7110->debi_bus);

Good. So it allocates it during init and uses it.
>         if (!av7110->debi_virt)
>                 goto err_saa71466_vfree_4;
>
> isn't it? I think the cards are constantly transferring the stream received through DMA.

Yeah, and that memory is set aside for the life of the driver. So there
should be no bounce buffering happening (as it allocated the memory
below the 4GB mark).
>
> I have set dom0_mem=512M by the way, shall I change that in some way?

Does the reporting (CPU usage of DomU) change in any way with that?

>
> I can try out some things, if you want me to. But I have no idea what to do and where to
> start, so I rely on your help...
>
> Carsten.
>
> -----Urspr?ngliche Nachricht-----
> Von: [hidden email] [mailto:[hidden email]] Im Auftrag von Konrad Rzeszutek Wilk
> Gesendet: Freitag, 25. November 2011 19:43
> An: Carsten Schiers
> Cc: xen-devel; konrad.wilk
> Betreff: Re: [Xen-devel] Load increase after memory upgrade (part2)
>
> On Thu, Nov 24, 2011 at 01:28:44PM +0100, Carsten Schiers wrote:
> > Hello again, I would like to come back to that thing...sorry that I did not have the time up to now.
> >
> > ??
> > We (now) speak about
> >
> > ??
> > * Xen 4.1.2
> > * Dom0 is Jeremy's 2.6.32.46 64 bit
> > * DomU in question is now 3.1.2 64 bit
> > * Same thing if DomU is also 2.6.32.46
> > * DomU owns two PCI cards (DVB-C) that o DMA
> > * Machine has 8GB, Dom0 pinned at 512MB
> >
> > ??
> > As compared to 2.6.34 Kernel with backported patches, the load on the DomU is at least twice as high. It
> >
> > will be "close to normal" if I reduce the memory used to 4GB.
>
> That is in the dom0 or just in general on the machine?
> >
> > ??
> > As you can see from the attachment, you once had an idea. So should we try to find something...?
>
> I think that was to instrument swiotlb to give an idea of how
> often it is called and basically have a matrix of its load. And
> from there figure out if the issue is that:
>
>  1). The drivers allocoate/bounce/deallocate buffers on every interrupt
>     (bad, driver should be using some form of dma pool and most of the
>     ivtv do that)
>
>  2). The buffers allocated to the drivers are above the 4GB and we end
>     up bouncing it needlessly. That can happen if the dom0 has most of
>     the precious memory under 4GB. However, that is usually not the case
>     as the domain isusually allocated from the top of the memory. The
>     fix for that was to set dom0_mem=max:XX. .. but with Dom0 kernels
>     before 3.1, the parameter would be ignored, so you had to use
>     'mem=XX' on the Linux command line as well.
>
>  3). Where did you get the load values? Was it dom0? or domU?
>
>
>
> >
> > ??
> > Carsten.
> > ??
> > -----Urspr??ngliche Nachricht-----
> > An:konrad.wilk <[hidden email]>;
> > CC:linux <[hidden email]>; xen-devel <[hidden email]>;
> > Von:Carsten Schiers <[hidden email]>
> > Gesendet:Mi 29.06.2011 23:17
> > Betreff:AW: Re: Re: Re: AW: Re: [Xen-devel] AW: Load increase after memory upgrade?
> > > Lets first do the c) experiment as that will likely explain your load average increase.
> > ...
> > > >c). If you want to see if the fault here lies in the bounce buffer
> > > being used more
> > > >often in the DomU b/c you have 8GB of memory now and you end up using
> > > more pages
> > > >past 4GB (in DomU), I can cook up a patch to figure this out. But an
> > > easier way is
> > > >to just do (on the Xen hypervisor line): mem=4G and that will make
> > > think you only have
> > > >4GB of physical RAM. ??If the load comes back to the normal "amount"
> > > then the likely
> > > >culprit is that and we can think on how to fix this.
> >
> > You are on the right track. Load was going down to "normal" 10% when reducing
> > Xen to 4GB by the parameter. Load seems to be still a little, little bit lower
> > with Xenified Kernel (8-9%), but this is drastically lower than the 20% we had
> > before.
>
> > _______________________________________________
> > Xen-devel mailing list
> > [hidden email]
> > http://lists.xensource.com/xen-devel
>
>
> _______________________________________________
> Xen-devel mailing list
> [hidden email]
> http://lists.xensource.com/xen-devel
>

_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel

_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Konrad Rzeszutek Wilk
In reply to this post by Ian Campbell-10
On Mon, Nov 28, 2011 at 03:40:13PM +0000, Ian Campbell wrote:

> On Mon, 2011-11-28 at 15:28 +0000, Konrad Rzeszutek Wilk wrote:
> > On Fri, Nov 25, 2011 at 11:11:55PM +0100, Carsten Schiers wrote:
>
> > > I looked through my old mails from you and you explained already the necessity of double
> > > bounce buffering (PCI->below 4GB->above 4GB). What I don't understand is: why does the
> > > Xenified kernel not have this kind of issue?
> >
> > That is a puzzle. It should not. The code is very much the same - both
> > use the generic SWIOTLB which has not changed for years.
>
> The swiotlb-xen used by classic-xen kernels (which I assume is what
> Carsten means by "Xenified") isn't exactly the same as the stuff in
> mainline Linux, it's been heavily refactored for one thing. It's not
> impossible that mainline is bouncing something it doesn't really need
> to.

The usage, at least with 'pci_alloc_coherent' is that there is no bouncing
being done. The alloc_coherent will allocate a nice page, underneath the 4GB
mark and give it to the driver. The driver can use it as it wishes and there
is no need to bounce buffer.

But I can't find the implementation of that in the classic Xen-SWIOTLB. It looks
as if it is using map_single which would be taking the memory out of the
pool for a very long time, instead of allocating memory and "swizzling" the MFNs.
[Note, I looked at the 2.6.18 hg tree for classic, the 2.6.34 is probably
improved much better so let me check that]

Carsten, let me prep up a patch that will print some diagnostic information
during the runtime - to see how often it does the bounce, the usage, etc..

>
> It's also possible that the dma mask of the device is different/wrong in
> mainline leading to such additional bouncing.

If one were to use map_page and such - yes. But the alloc_coherent bypasses
that and ends up allocating it right under the 4GB (or rather it allocates
based on the dev->coherent_mask and swizzles the MFNs as required).

>
> I guess it's also possible that the classic-Xen kernels are playing fast
> and loose by not bouncing something they should (although if so they
> appear to be getting away with it...) or that there is some difference
> which really means mainline needs to bounce while classic-Xen doesn't.

<nods> Could be very well.
>
> Ian.
>

_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Laszlo Ersek
In reply to this post by Ian Campbell-10
On 11/28/11 16:40, Ian Campbell wrote:

> On Mon, 2011-11-28 at 15:28 +0000, Konrad Rzeszutek Wilk wrote:
>> On Fri, Nov 25, 2011 at 11:11:55PM +0100, Carsten Schiers wrote:
>
>>> I looked through my old mails from you and you explained already the necessity of double
>>> bounce buffering (PCI->below 4GB->above 4GB). What I don't understand is: why does the
>>> Xenified kernel not have this kind of issue?
>>
>> That is a puzzle. It should not. The code is very much the same - both
>> use the generic SWIOTLB which has not changed for years.
>
> The swiotlb-xen used by classic-xen kernels (which I assume is what
> Carsten means by "Xenified") isn't exactly the same as the stuff in
> mainline Linux, it's been heavily refactored for one thing. It's not
> impossible that mainline is bouncing something it doesn't really need
> to.

Please excuse me if I'm completely mistaken; my only point of reference
is that we recently had to backport
<http://xenbits.xensource.com/hg/linux-2.6.18-xen.hg/rev/940>.

> It's also possible that the dma mask of the device is different/wrong in
> mainline leading to such additional bouncing.

dma_alloc_coherent() -- which I guess is the precursor of
pci_alloc_consistent() -- asks xen_create_contiguous_region() to back
the vaddr range with frames machine-addressible inside the device's dma
mask. xen_create_contiguous_region() seems to land in a XENMEM_exchange
hypercall (among others). Perhaps this extra layer of indirection allows
the driver to use low pages directly, without bounce buffers.

> I guess it's also possible that the classic-Xen kernels are playing fast
> and loose by not bouncing something they should (although if so they
> appear to be getting away with it...) or that there is some difference
> which really means mainline needs to bounce while classic-Xen doesn't.

I'm sorry if what I just posted is painfully stupid. I'm taking the risk
for the 1% chance that it could be helpful.

Wrt. the idle time accounting problem, after Niall's two pings, I'm also
waiting for a verdict, and/or for myself finding the time and fishing
out the current patches.

Laszlo

_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Jan Beulich-2
In reply to this post by Konrad Rzeszutek Wilk
>>> On 28.11.11 at 17:45, Konrad Rzeszutek Wilk <[hidden email]> wrote:
> But I can't find the implementation of that in the classic Xen-SWIOTLB.

linux-2.6.18-xen.hg/arch/i386/kernel/pci-dma-xen.c:dma_alloc_coherent().

Jan


_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Carsten Schiers
AW: [Xen-devel] Load increase after memory upgrade (part2)

I attached the actualy used 2.6.34 file here, if that helps. BR,C.
 

-----Ursprüngliche Nachricht-----
An: Konrad Rzeszutek Wilk <[hidden email]>;
CC: Ian Campbell <[hidden email]>; Konrad Rzeszutek Wilk <[hidden email]>; xen-devel <[hidden email]>; [hidden email]; [hidden email]; Carsten Schiers <[hidden email]>;
Von: Jan Beulich <[hidden email]>
Gesendet: Di 29.11.2011 09:52
Betreff: Re: [Xen-devel] Load increase after memory upgrade (part2)
>>> On 28.11.11 at 17:45, Konrad Rzeszutek Wilk <[hidden email]> wrote:
> But I can't find the implementation of that in the classic Xen-SWIOTLB.

linux-2.6.18-xen.hg/arch/i386/kernel/pci-dma-xen.c:dma_alloc_coherent().

Jan


_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel

pci-dma-xen.c (12K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Carsten Schiers
In reply to this post by Ian Campbell-10
AW: [Xen-devel] Load increase after memory upgrade (part2)
The swiotlb-xen used by classic-xen kernels (which I assume is what
Carsten means by "Xenified") isn't exactly the same as the stuff in
mainline Linux, it's been heavily refactored for one thing. It's not
impossible that mainline is bouncing something it doesn't really need
to.

Yes, it's a 2.6.34 kernel with Andrew Lyon's backported patches found here:

 

  http://code.google.com/p/gentoo-xen-kernel/downloads/list

 

GrC.


_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Carsten Schiers
In reply to this post by Konrad Rzeszutek Wilk-2
AW: [Xen-devel] Load increase after memory upgrade (part2)

 

>   - with load I mean the %CPU of xentop
>   - there is no change in CPU usage of the DomU or Dom0

Uhh, which matrix are using for that? CPU usage...? This is if you
change the DomU or the amount of memory the guest has? This is not
the load number (xentop value)?

I had a quick look into the munin plugin. It reads the output of "xm li", Time in seconds and normalizes it.
But the effect is also visible in the CPU(%) column of xentop, if the DomU is on higher load.

 

BR,C.


_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Carsten Schiers
In reply to this post by Konrad Rzeszutek Wilk
AW: [Xen-devel] Load increase after memory upgrade (part2)
Carsten, let me prep up a patch that will print some diagnostic information
during the runtime - to see how often it does the bounce, the usage, etc..

 

Jup, looking forward to implementing it. I can include them into any kernel. 2.6.18 would be

a bit difficult though, as the driver pack isn't compatible any longer...so I'd prefer 2.6.34 Xenified

vs. 3.1.2 pvops.

 

BR,C.


_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Ian Campbell-10
In reply to this post by Konrad Rzeszutek Wilk
On Mon, 2011-11-28 at 16:45 +0000, Konrad Rzeszutek Wilk wrote:

> On Mon, Nov 28, 2011 at 03:40:13PM +0000, Ian Campbell wrote:
> > On Mon, 2011-11-28 at 15:28 +0000, Konrad Rzeszutek Wilk wrote:
> > > On Fri, Nov 25, 2011 at 11:11:55PM +0100, Carsten Schiers wrote:
> >
> > > > I looked through my old mails from you and you explained already the necessity of double
> > > > bounce buffering (PCI->below 4GB->above 4GB). What I don't understand is: why does the
> > > > Xenified kernel not have this kind of issue?
> > >
> > > That is a puzzle. It should not. The code is very much the same - both
> > > use the generic SWIOTLB which has not changed for years.
> >
> > The swiotlb-xen used by classic-xen kernels (which I assume is what
> > Carsten means by "Xenified") isn't exactly the same as the stuff in
> > mainline Linux, it's been heavily refactored for one thing. It's not
> > impossible that mainline is bouncing something it doesn't really need
> > to.
>
> The usage, at least with 'pci_alloc_coherent' is that there is no bouncing
> being done. The alloc_coherent will allocate a nice page, underneath the 4GB
> mark and give it to the driver. The driver can use it as it wishes and there
> is no need to bounce buffer.

Oh, I didn't realise dma_alloc_coherent was part of swiotlb now. Only a
subset of swiotlb is in use then, all the bouncing stuff _should_ be
idle/unused -- but has that been confirmed?

>
> But I can't find the implementation of that in the classic Xen-SWIOTLB. It looks
> as if it is using map_single which would be taking the memory out of the
> pool for a very long time, instead of allocating memory and "swizzling" the MFNs.
> [Note, I looked at the 2.6.18 hg tree for classic, the 2.6.34 is probably
> improved much better so let me check that]
>
> Carsten, let me prep up a patch that will print some diagnostic information
> during the runtime - to see how often it does the bounce, the usage, etc..
>
> >
> > It's also possible that the dma mask of the device is different/wrong in
> > mainline leading to such additional bouncing.
>
> If one were to use map_page and such - yes. But the alloc_coherent bypasses
> that and ends up allocating it right under the 4GB (or rather it allocates
> based on the dev->coherent_mask and swizzles the MFNs as required).
>
> >
> > I guess it's also possible that the classic-Xen kernels are playing fast
> > and loose by not bouncing something they should (although if so they
> > appear to be getting away with it...) or that there is some difference
> > which really means mainline needs to bounce while classic-Xen doesn't.
>
> <nods> Could be very well.
> >
> > Ian.
> >



_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Konrad Rzeszutek Wilk
On Tue, Nov 29, 2011 at 10:23:18AM +0000, Ian Campbell wrote:

> On Mon, 2011-11-28 at 16:45 +0000, Konrad Rzeszutek Wilk wrote:
> > On Mon, Nov 28, 2011 at 03:40:13PM +0000, Ian Campbell wrote:
> > > On Mon, 2011-11-28 at 15:28 +0000, Konrad Rzeszutek Wilk wrote:
> > > > On Fri, Nov 25, 2011 at 11:11:55PM +0100, Carsten Schiers wrote:
> > >
> > > > > I looked through my old mails from you and you explained already the necessity of double
> > > > > bounce buffering (PCI->below 4GB->above 4GB). What I don't understand is: why does the
> > > > > Xenified kernel not have this kind of issue?
> > > >
> > > > That is a puzzle. It should not. The code is very much the same - both
> > > > use the generic SWIOTLB which has not changed for years.
> > >
> > > The swiotlb-xen used by classic-xen kernels (which I assume is what
> > > Carsten means by "Xenified") isn't exactly the same as the stuff in
> > > mainline Linux, it's been heavily refactored for one thing. It's not
> > > impossible that mainline is bouncing something it doesn't really need
> > > to.
> >
> > The usage, at least with 'pci_alloc_coherent' is that there is no bouncing
> > being done. The alloc_coherent will allocate a nice page, underneath the 4GB
> > mark and give it to the driver. The driver can use it as it wishes and there
> > is no need to bounce buffer.
>
> Oh, I didn't realise dma_alloc_coherent was part of swiotlb now. Only a
> subset of swiotlb is in use then, all the bouncing stuff _should_ be
> idle/unused -- but has that been confirmed?

Nope. I hope that the diagnostic patch I have in mind will prove/disprove that.
Now I just need to find a moment to write it :-)

_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Konrad Rzeszutek Wilk-2
> > > > > That is a puzzle. It should not. The code is very much the same - both

> > > > > use the generic SWIOTLB which has not changed for years.
> > > >
> > > > The swiotlb-xen used by classic-xen kernels (which I assume is what
> > > > Carsten means by "Xenified") isn't exactly the same as the stuff in
> > > > mainline Linux, it's been heavily refactored for one thing. It's not
> > > > impossible that mainline is bouncing something it doesn't really need
> > > > to.
> > >
> > > The usage, at least with 'pci_alloc_coherent' is that there is no bouncing
> > > being done. The alloc_coherent will allocate a nice page, underneath the 4GB
> > > mark and give it to the driver. The driver can use it as it wishes and there
> > > is no need to bounce buffer.
> >
> > Oh, I didn't realise dma_alloc_coherent was part of swiotlb now. Only a
> > subset of swiotlb is in use then, all the bouncing stuff _should_ be
> > idle/unused -- but has that been confirmed?
>
> Nope. I hope that the diagnostic patch I have in mind will prove/disprove that.
> Now I just need to find a moment to write it :-)
Done!

Carsten, can you please patch your kernel with this hacky patch and
when you have booted the new kernel, just do

modprobe dump_swiotlb

it should give an idea of how many bounces are happening, coherent
allocations, syncs, and so on.. along with the last driver that
did those operations.


_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel

swiotlb-debug.patch (10K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Carsten Schiers
Thank you, Konrad.

I applied the patch to 3.1.2. In order to have a clear picture, I only enabled one PCI card.
The result is:

[   28.028032] Starting SWIOTLB debug thread.
[   28.028076] swiotlb_start_thread: Go!
[   28.028622] xen_swiotlb_start_thread: Go!
[   33.028153] 0 [budget_av 0000:00:00.0] bounce: from:555352(slow:0)to:0 map:329 unmap:0 sync:555352
[   33.028294] SWIOTLB is 2% full
[   38.028178] 0 budget_av 0000:00:00.0 alloc coherent: 4, free: 0
[   38.028230] 0 [budget_av 0000:00:00.0] bounce: from:127981(slow:0)to:0 map:0 unmap:0 sync:127981
[   38.028352] SWIOTLB is 2% full
[   43.028170] 0 [budget_av 0000:00:00.0] bounce: from:128310(slow:0)to:0 map:0 unmap:0 sync:128310
[   43.028310] SWIOTLB is 2% full
[   48.028199] 0 [budget_av 0000:00:00.0] bounce: from:127981(slow:0)to:0 map:0 unmap:0 sync:127981
[   48.028334] SWIOTLB is 2% full
[   53.028170] 0 [budget_av 0000:00:00.0] bounce: from:128310(slow:0)to:0 map:0 unmap:0 sync:128310
[   53.028309] SWIOTLB is 2% full
[   58.028138] 0 [budget_av 0000:00:00.0] bounce: from:126994(slow:0)to:0 map:0 unmap:0 sync:126994
[   58.028195] SWIOTLB is 2% full
[   63.028170] 0 [budget_av 0000:00:00.0] bounce: from:121401(slow:0)to:0 map:0 unmap:0 sync:121401
[   63.029560] SWIOTLB is 2% full
[   68.028193] 0 [budget_av 0000:00:00.0] bounce: from:127981(slow:0)to:0 map:0 unmap:0 sync:127981
[   68.028329] SWIOTLB is 2% full
[   73.028104] 0 [budget_av 0000:00:00.0] bounce: from:122717(slow:0)to:0 map:0 unmap:0 sync:122717
[   73.028244] SWIOTLB is 2% full
[   78.028191] 0 [budget_av 0000:00:00.0] bounce: from:127981(slow:0)to:0 map:0 unmap:0 sync:127981
[   78.028331] SWIOTLB is 2% full
[   83.028112] 0 [budget_av 0000:00:00.0] bounce: from:128310(slow:0)to:0 map:0 unmap:0 sync:128310
[   83.028171] SWIOTLB is 2% full

Was that long enough? I hope this helps.

Carsten.

-----Ursprüngliche Nachricht-----
Von: Konrad Rzeszutek Wilk [mailto:[hidden email]]
Gesendet: Freitag, 2. Dezember 2011 16:24
An: Konrad Rzeszutek Wilk
Cc: Ian Campbell; xen-devel; Carsten Schiers; [hidden email]; [hidden email]
Betreff: Re: [Xen-devel] Load increase after memory upgrade (part2)

> > > > > That is a puzzle. It should not. The code is very much the same - both
> > > > > use the generic SWIOTLB which has not changed for years.
> > > >
> > > > The swiotlb-xen used by classic-xen kernels (which I assume is what
> > > > Carsten means by "Xenified") isn't exactly the same as the stuff in
> > > > mainline Linux, it's been heavily refactored for one thing. It's not
> > > > impossible that mainline is bouncing something it doesn't really need
> > > > to.
> > >
> > > The usage, at least with 'pci_alloc_coherent' is that there is no bouncing
> > > being done. The alloc_coherent will allocate a nice page, underneath the 4GB
> > > mark and give it to the driver. The driver can use it as it wishes and there
> > > is no need to bounce buffer.
> >
> > Oh, I didn't realise dma_alloc_coherent was part of swiotlb now. Only a
> > subset of swiotlb is in use then, all the bouncing stuff _should_ be
> > idle/unused -- but has that been confirmed?
>
> Nope. I hope that the diagnostic patch I have in mind will prove/disprove that.
> Now I just need to find a moment to write it :-)

Done!

Carsten, can you please patch your kernel with this hacky patch and
when you have booted the new kernel, just do

modprobe dump_swiotlb

it should give an idea of how many bounces are happening, coherent
allocations, syncs, and so on.. along with the last driver that
did those operations.



_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
Reply | Threaded
Open this post in threaded view
|

Re: Load increase after memory upgrade (part2)

Carsten Schiers
In reply to this post by Konrad Rzeszutek Wilk-2
Here with two cards enabled and creating a bit "work" by watching TV with one oft hem:

[   23.842720] Starting SWIOTLB debug thread.
[   23.842750] swiotlb_start_thread: Go!
[   23.842838] xen_swiotlb_start_thread: Go!
[   28.841451] 0 [budget_av 0000:00:01.0] bounce: from:435596(slow:0)to:0 map:658 unmap:0 sync:435596
[   28.841592] SWIOTLB is 4% full
[   33.840147] 0 [budget_av 0000:00:01.0] bounce: from:127652(slow:0)to:0 map:0 unmap:0 sync:127652
[   33.840283] SWIOTLB is 4% full
[   33.844222] 0 budget_av 0000:00:01.0 alloc coherent: 8, free: 0
[   38.840227] 0 [budget_av 0000:00:01.0] bounce: from:128310(slow:0)to:0 map:0 unmap:0 sync:128310
[   38.840361] SWIOTLB is 4% full
[   43.840182] 0 [budget_av 0000:00:01.0] bounce: from:128310(slow:0)to:0 map:0 unmap:0 sync:128310
[   43.840323] SWIOTLB is 4% full
[   48.840094] 0 [budget_av 0000:00:01.0] bounce: from:127652(slow:0)to:0 map:0 unmap:0 sync:127652
[   48.840154] SWIOTLB is 4% full
[   53.840160] 0 [budget_av 0000:00:01.0] bounce: from:119756(slow:0)to:0 map:0 unmap:0 sync:119756
[   53.840301] SWIOTLB is 4% full
[   58.840202] 0 [budget_av 0000:00:01.0] bounce: from:128310(slow:0)to:0 map:0 unmap:0 sync:128310
[   58.840339] SWIOTLB is 4% full
[   63.840626] 0 [budget_av 0000:00:01.0] bounce: from:128310(slow:0)to:0 map:0 unmap:0 sync:128310
[   63.840686] SWIOTLB is 4% full
[   68.840122] 0 [budget_av 0000:00:01.0] bounce: from:127323(slow:0)to:0 map:0 unmap:0 sync:127323
[   68.840180] SWIOTLB is 4% full
[   73.840647] 0 [budget_av 0000:00:01.0] bounce: from:211547(slow:0)to:0 map:0 unmap:0 sync:211547
[   73.840784] SWIOTLB is 4% full
[   78.840204] 0 [budget_av 0000:00:01.0] bounce: from:255962(slow:0)to:0 map:0 unmap:0 sync:255962
[   78.840344] SWIOTLB is 4% full
[   83.840114] 0 [budget_av 0000:00:01.0] bounce: from:255304(slow:0)to:0 map:0 unmap:0 sync:255304
[   83.840178] SWIOTLB is 4% full
[   88.840158] 0 [budget_av 0000:00:01.0] bounce: from:256620(slow:0)to:0 map:0 unmap:0 sync:256620
[   88.840302] SWIOTLB is 4% full
[   93.840185] 0 [budget_av 0000:00:00.0] bounce: from:250040(slow:0)to:0 map:0 unmap:0 sync:250040
[   93.840319] SWIOTLB is 4% full
[   98.840181] 0 [budget_av 0000:00:00.0] bounce: from:255962(slow:0)to:0 map:0 unmap:0 sync:255962
[   98.841563] SWIOTLB is 4% full
[  103.841221] 0 [budget_av 0000:00:00.0] bounce: from:255962(slow:0)to:0 map:0 unmap:0 sync:255962
[  103.841361] SWIOTLB is 4% full
[  108.840247] 0 [budget_av 0000:00:00.0] bounce: from:255962(slow:0)to:0 map:0 unmap:0 sync:255962
[  108.840389] SWIOTLB is 4% full
[  113.840157] 0 [budget_av 0000:00:00.0] bounce: from:261555(slow:0)to:0 map:0 unmap:0 sync:261555
[  113.840298] SWIOTLB is 4% full
[  118.840119] 0 [budget_av 0000:00:00.0] bounce: from:295442(slow:0)to:0 map:0 unmap:0 sync:295442
[  118.840259] SWIOTLB is 4% full
[  123.841025] 0 [budget_av 0000:00:00.0] bounce: from:295113(slow:0)to:0 map:0 unmap:0 sync:295113
[  123.841164] SWIOTLB is 4% full
[  128.840175] 0 [budget_av 0000:00:00.0] bounce: from:294784(slow:0)to:0 map:0 unmap:0 sync:294784
[  128.840310] SWIOTLB is 4% full
[  133.840194] 0 [budget_av 0000:00:00.0] bounce: from:293797(slow:0)to:0 map:0 unmap:0 sync:293797
[  133.840330] SWIOTLB is 4% full
[  138.840498] 0 [budget_av 0000:00:00.0] bounce: from:341502(slow:0)to:0 map:0 unmap:0 sync:341502
[  138.840637] SWIOTLB is 4% full
[  143.840173] 0 [budget_av 0000:00:00.0] bounce: from:341502(slow:0)to:0 map:0 unmap:0 sync:341502
[  143.840313] SWIOTLB is 4% full
[  148.840215] 0 [budget_av 0000:00:00.0] bounce: from:341831(slow:0)to:0 map:0 unmap:0 sync:341831
[  148.840355] SWIOTLB is 4% full
[  153.840205] 0 [budget_av 0000:00:01.0] bounce: from:329658(slow:0)to:0 map:0 unmap:0 sync:329658
[  153.840341] SWIOTLB is 4% full
[  158.840137] 0 [budget_av 0000:00:00.0] bounce: from:342160(slow:0)to:0 map:0 unmap:0 sync:342160
[  158.840277] SWIOTLB is 4% full
[  163.841288] 0 [budget_av 0000:00:00.0] bounce: from:341502(slow:0)to:0 map:0 unmap:0 sync:341502
[  163.841424] SWIOTLB is 4% full
[  168.840198] 0 [budget_av 0000:00:00.0] bounce: from:341502(slow:0)to:0 map:0 unmap:0 sync:341502
[  168.840339] SWIOTLB is 4% full
[  173.840167] 0 [budget_av 0000:00:00.0] bounce: from:341502(slow:0)to:0 map:0 unmap:0 sync:341502
[  173.840304] SWIOTLB is 4% full
[  178.840184] 0 [budget_av 0000:00:00.0] bounce: from:328013(slow:0)to:0 map:0 unmap:0 sync:328013
[  178.840324] SWIOTLB is 4% full
[  183.840129] 0 [budget_av 0000:00:00.0] bounce: from:341831(slow:0)to:0 map:0 unmap:0 sync:341831
[  183.840269] SWIOTLB is 4% full
[  188.840123] 0 [budget_av 0000:00:01.0] bounce: from:340515(slow:0)to:0 map:0 unmap:0 sync:340515
[  188.841647] SWIOTLB is 4% full
[  193.840192] 0 [budget_av 0000:00:00.0] bounce: from:338541(slow:0)to:0 map:0 unmap:0 sync:338541
[  193.840329] SWIOTLB is 4% full
[  198.840148] 0 [budget_av 0000:00:01.0] bounce: from:330316(slow:0)to:0 map:0 unmap:0 sync:330316
[  198.840230] SWIOTLB is 4% full
[  203.840860] 0 [budget_av 0000:00:00.0] bounce: from:341831(slow:0)to:0 map:0 unmap:0 sync:341831
[  203.841000] SWIOTLB is 4% full
[  208.840562] 0 [budget_av 0000:00:01.0] bounce: from:337883(slow:0)to:0 map:0 unmap:0 sync:337883
[  208.840698] SWIOTLB is 4% full
[  213.840171] 0 [budget_av 0000:00:00.0] bounce: from:341502(slow:0)to:0 map:0 unmap:0 sync:341502
[  213.840311] SWIOTLB is 4% full
[  218.840214] 0 [budget_av 0000:00:01.0] bounce: from:320117(slow:0)to:0 map:0 unmap:0 sync:320117
[  218.840354] SWIOTLB is 4% full
[  223.840238] 0 [budget_av 0000:00:01.0] bounce: from:299390(slow:0)to:0 map:0 unmap:0 sync:299390
[  223.840373] SWIOTLB is 4% full
[  228.841415] 0 [budget_av 0000:00:01.0] bounce: from:298732(slow:0)to:0 map:0 unmap:0 sync:298732
[  228.841560] SWIOTLB is 4% full
[  233.840705] 0 [budget_av 0000:00:00.0] bounce: from:299061(slow:0)to:0 map:0 unmap:0 sync:299061
[  233.840844] SWIOTLB is 4% full
[  238.840145] 0 [budget_av 0000:00:01.0] bounce: from:293468(slow:0)to:0 map:0 unmap:0 sync:293468
[  238.840280] SWIOTLB is 4% full

-----Ursprüngliche Nachricht-----
Von: Konrad Rzeszutek Wilk [mailto:[hidden email]]
Gesendet: Freitag, 2. Dezember 2011 16:24
An: Konrad Rzeszutek Wilk
Cc: Ian Campbell; xen-devel; Carsten Schiers; [hidden email]; [hidden email]
Betreff: Re: [Xen-devel] Load increase after memory upgrade (part2)

> > > > > That is a puzzle. It should not. The code is very much the same - both
> > > > > use the generic SWIOTLB which has not changed for years.
> > > >
> > > > The swiotlb-xen used by classic-xen kernels (which I assume is what
> > > > Carsten means by "Xenified") isn't exactly the same as the stuff in
> > > > mainline Linux, it's been heavily refactored for one thing. It's not
> > > > impossible that mainline is bouncing something it doesn't really need
> > > > to.
> > >
> > > The usage, at least with 'pci_alloc_coherent' is that there is no bouncing
> > > being done. The alloc_coherent will allocate a nice page, underneath the 4GB
> > > mark and give it to the driver. The driver can use it as it wishes and there
> > > is no need to bounce buffer.
> >
> > Oh, I didn't realise dma_alloc_coherent was part of swiotlb now. Only a
> > subset of swiotlb is in use then, all the bouncing stuff _should_ be
> > idle/unused -- but has that been confirmed?
>
> Nope. I hope that the diagnostic patch I have in mind will prove/disprove that.
> Now I just need to find a moment to write it :-)

Done!

Carsten, can you please patch your kernel with this hacky patch and
when you have booted the new kernel, just do

modprobe dump_swiotlb

it should give an idea of how many bounces are happening, coherent
allocations, syncs, and so on.. along with the last driver that
did those operations.



_______________________________________________
Xen-devel mailing list
[hidden email]
http://lists.xensource.com/xen-devel
123