Mailing List Archive

dynamically set bandwidth limits of a virtual interface
Hi all. I want to set bandwidth limits to a virtual interface
dynamically(without restarting virtual machine). I have been browsing xen
source code 4.1.3. I looked into libxen folder(xen_vif.c) and
hotplug(linux) folder. Earlier in xen 3.0 , xenvif struture
(driver/net/xen-netback/
interface.c + common.h) and tx_add_credit function could be used to modify
rate limits. I want to change bandwidth limits dynamically of a virtual
interface in xen 4.1.3. Where should I look for in xen 4.1.3?
Please help.




--
Rohit S Damkondwar
B.Tech Computer Engineering
CoEP
Re: dynamically set bandwidth limits of a virtual interface [ In reply to ]
On Thu, 2012-12-27 at 08:46 +0000, Rohit Damkondwar wrote:
> Hi all. I want to set bandwidth limits to a virtual interface
> dynamically(without restarting virtual machine). I have been browsing
> xen source code 4.1.3. I looked into libxen folder(xen_vif.c) and
> hotplug(linux) folder. Earlier in xen 3.0 , xenvif struture
> (driver/net/xen-netback/
> interface.c + common.h) and tx_add_credit function could be used to
> modify rate limits. I want to change bandwidth limits dynamically of a
> virtual interface in xen 4.1.3. Where should I look for in xen 4.1.3?
>
> Please help.
>

Xen vif has a parameter called 'rate', I don't know whether it suits
you.

Also, you can have a look at external tool like tc(8). My vague thought
is that Vif is just another interface in Dom0, tc(8) should be able to
traffic-shape Vif.

Last but not least, patches are always welcomed. ;-)


Wei.


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
Re: dynamically set bandwidth limits of a virtual interface [ In reply to ]
On Thu, Dec 27, 2012 at 12:33:19PM +0000, Wei Liu wrote:
> On Thu, 2012-12-27 at 08:46 +0000, Rohit Damkondwar wrote:
> > Hi all. I want to set bandwidth limits to a virtual interface
> > dynamically(without restarting virtual machine). I have been browsing
> > xen source code 4.1.3. I looked into libxen folder(xen_vif.c) and
> > hotplug(linux) folder. Earlier in xen 3.0 , xenvif struture
> > (driver/net/xen-netback/
> > interface.c + common.h) and tx_add_credit function could be used to
> > modify rate limits. I want to change bandwidth limits dynamically of a
> > virtual interface in xen 4.1.3. Where should I look for in xen 4.1.3?
> >
> > Please help.
> >
>
> Xen vif has a parameter called 'rate', I don't know whether it suits
> you.
>
> Also, you can have a look at external tool like tc(8). My vague thought
> is that Vif is just another interface in Dom0, tc(8) should be able to
> traffic-shape Vif.
>

Yes, You can use the generic Linux QoS tools in dom0 to shape the vifs.


> Last but not least, patches are always welcomed. ;-)
>

-- Pasi


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
Re: dynamically set bandwidth limits of a virtual interface [ In reply to ]
On Thu, Dec 27, 2012 at 6:03 PM, Wei Liu <Wei.Liu2@citrix.com> wrote:

> On Thu, 2012-12-27 at 08:46 +0000, Rohit Damkondwar wrote:
> > Hi all. I want to set bandwidth limits to a virtual interface
> > dynamically(without restarting virtual machine). I have been browsing
> > xen source code 4.1.3. I looked into libxen folder(xen_vif.c) and
> > hotplug(linux) folder. Earlier in xen 3.0 , xenvif struture
> > (driver/net/xen-netback/
> > interface.c + common.h) and tx_add_credit function could be used to
> > modify rate limits. I want to change bandwidth limits dynamically of a
> > virtual interface in xen 4.1.3. Where should I look for in xen 4.1.3?
> >
> > Please help.
> >
>
> Xen vif has a parameter called 'rate', I don't know whether it suits
> you.
>
> The rate parameter only restricts one way traffic(probably only outgoing).


> Also, you can have a look at external tool like tc(8). My vague thought
> is that Vif is just another interface in Dom0, tc(8) should be able to
> traffic-shape Vif.
>

Don't you think using external tool may decrease the eifficiency ?. If xen
itself has capabailities ( provided by tc tool ), wouldn't it be more
efficient ?
I have used this tool. It is good. It serves my purpose. But wudn't it be
better to include the bandwidth limiting capabilities in xen itself? I am
not sure about this. Currently I am just browsing through the source code.
What do u think ?

I have seen function "set_qos_algorithm_type" and paramaters
(qos/algorithm type,qos/algorithm params, qos/supported algorithms) in vif
class. Would they be useful ? Are they available only for XEN Enterprise ?



> Last but not least, patches are always welcomed. ;-)
>
>
> Wei.
>
>


--
Rohit S Damkondwar
B.Tech Computer Engineering
CoEP
MyBlog <http://www.rohitsdamkondwar.wordpress.com>
Re: dynamically set bandwidth limits of a virtual interface [ In reply to ]
On Fri, 2012-12-28 at 07:46 +0000, Rohit Damkondwar wrote:
> On Thu, Dec 27, 2012 at 6:03 PM, Wei Liu <Wei.Liu2@citrix.com> wrote:
> On Thu, 2012-12-27 at 08:46 +0000, Rohit Damkondwar wrote:
> > Hi all. I want to set bandwidth limits to a virtual
> interface
> > dynamically(without restarting virtual machine). I have been
> browsing
> > xen source code 4.1.3. I looked into libxen
> folder(xen_vif.c) and
> > hotplug(linux) folder. Earlier in xen 3.0 , xenvif struture
> > (driver/net/xen-netback/
> > interface.c + common.h) and tx_add_credit function could be
> used to
> > modify rate limits. I want to change bandwidth limits
> dynamically of a
> > virtual interface in xen 4.1.3. Where should I look for in
> xen 4.1.3?
> >
> > Please help.
> >
>
>
> Xen vif has a parameter called 'rate', I don't know whether it
> suits
> you.
>
> The rate parameter only restricts one way traffic(probably only
> outgoing).
>

Yes, you're right. So you need two way shaping.

>
> Also, you can have a look at external tool like tc(8). My
> vague thought
> is that Vif is just another interface in Dom0, tc(8) should be
> able to
> traffic-shape Vif.
>
>
> Don't you think using external tool may decrease the eifficiency ?. If
> xen itself has capabailities ( provided by tc tool ), wouldn't it be
> more efficient ?
>

Do you see significant performance degradation when using tc(8) or any
other tools alike? If so, do report with figures, it can help us
improve.

> I have used this tool. It is good. It serves my purpose. But wudn't it
> be better to include the bandwidth limiting capabilities in xen
> itself? I am not sure about this. Currently I am just browsing through
> the source code. What do u think ?
>

TBH I'm not sure about this either. Again, comparisons and analysis of
bottleneck would be helpful.

>
> I have seen function "set_qos_algorithm_type" and paramaters
> (qos/algorithm type,qos/algorithm params, qos/supported algorithms) in
> vif class. Would they be useful ? Are they available only for XEN
> Enterprise ?
>

Do you see those in libxen source code? I don't think they are in use
now.


Wei.



_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
Re: dynamically set bandwidth limits of a virtual interface [ In reply to ]
On Fri, Dec 28, 2012 at 4:05 PM, Wei Liu <Wei.Liu2@citrix.com> wrote:

> On Fri, 2012-12-28 at 07:46 +0000, Rohit Damkondwar wrote:
> > On Thu, Dec 27, 2012 at 6:03 PM, Wei Liu <Wei.Liu2@citrix.com> wrote:
> > On Thu, 2012-12-27 at 08:46 +0000, Rohit Damkondwar wrote:
> > > Hi all. I want to set bandwidth limits to a virtual
> > interface
> > > dynamically(without restarting virtual machine). I have been
> > browsing
> > > xen source code 4.1.3. I looked into libxen
> > folder(xen_vif.c) and
> > > hotplug(linux) folder. Earlier in xen 3.0 , xenvif struture
> > > (driver/net/xen-netback/
> > > interface.c + common.h) and tx_add_credit function could be
> > used to
> > > modify rate limits. I want to change bandwidth limits
> > dynamically of a
> > > virtual interface in xen 4.1.3. Where should I look for in
> > xen 4.1.3?
> > >
> > > Please help.
> > >
> >
> >
> > Xen vif has a parameter called 'rate', I don't know whether it
> > suits
> > you.
> >
> > The rate parameter only restricts one way traffic(probably only
> > outgoing).
> >
>
> Yes, you're right. So you need two way shaping.
>
> >
> > Also, you can have a look at external tool like tc(8). My
> > vague thought
> > is that Vif is just another interface in Dom0, tc(8) should be
> > able to
> > traffic-shape Vif.
> >
> >
> > Don't you think using external tool may decrease the eifficiency ?. If
> > xen itself has capabailities ( provided by tc tool ), wouldn't it be
> > more efficient ?
> >
>
> Do you see significant performance degradation when using tc(8) or any
> other tools alike? If so, do report with figures, it can help us
> improve.
>

It doesn't seem like tc gives bad performance. But I cannot say until
statistics prove that tc is better.

>
> > I have used this tool. It is good. It serves my purpose. But wudn't it
> > be better to include the bandwidth limiting capabilities in xen
> > itself? I am not sure about this. Currently I am just browsing through
> > the source code. What do u think ?
> >
>
> TBH I'm not sure about this either. Again, comparisons and analysis of
> bottleneck would be helpful.
>
> >
> > I have seen function "set_qos_algorithm_type" and paramaters
> > (qos/algorithm type,qos/algorithm params, qos/supported algorithms) in
> > vif class. Would they be useful ? Are they available only for XEN
> > Enterprise ?
> >
>
> Do you see those in libxen source code? I don't think they are in use
> now.
>
I didn't know that. The when which library should I look into? I could find
vif class in libxen folder. So I thought it should be used. I read that xl
is not matured enough in xen 4.1.3. So which library should I look into?
Please help.

>
>
> Wei.
>
>
>


--
Rohit S Damkondwar
B.Tech Computer Engineering
CoEP
MyBlog <http://www.rohitsdamkondwar.wordpress.com>
Re: dynamically set bandwidth limits of a virtual interface [ In reply to ]
On Sun, 2012-12-30 at 12:08 +0000, Rohit Damkondwar wrote:


> TBH I'm not sure about this either. Again, comparisons and
> analysis of
> bottleneck would be helpful.
>
> >
> > I have seen function "set_qos_algorithm_type" and
> paramaters
> > (qos/algorithm type,qos/algorithm params, qos/supported
> algorithms) in
> > vif class. Would they be useful ? Are they available only
> for XEN
> > Enterprise ?
> >
>
>
> Do you see those in libxen source code? I don't think they are
> in use
> now.
> I didn't know that. The when which library should I look into? I could
> find vif class in libxen folder. So I thought it should be used. I
> read that xl is not matured enough in xen 4.1.3. So which library
> should I look into? Please help.

There is considerable amount of work to be done.

Tool stack is relatively easy. You can try adding config options to
whatever tool stack you're using. You need to parse the config option
(which is easy, because every tool stack has parser), then write the
option to xenstore so that guest can pick it up.

To modify the kernel is a bit harder. Download kernel package, look for
netback.c and friends, whose location varies depending the kernel you're
using. Grep for 'rate' so that you can have a look at how tx rate limit
is implemented.

The last bit is to upsteam your changes. Please post your changes to
Xen-devel to see if it is suitable for upstreaming. Of course this is
not mandatory. By upstreaming your changes you can 1) relieve your
maintenance burden, 2) benefit others.


Wei.


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
Re: dynamically set bandwidth limits of a virtual interface [ In reply to ]
--On 27 December 2012 14:38:39 +0200 Pasi Kärkkäinen <pasik@iki.fi> wrote:

> Yes, You can use the generic Linux QoS tools in dom0 to shape the vifs.

Using tc for true shaping is slightly non-trivial as it shapes only on
egress (which confusingly is towards the VM), and will only police on
ingress. Using ifb is a way around this.

If tc alone won't do the job, I would have thought that rather than
reinvent the wheel and implement rate shaping in netback, it would be
better to hook into the kernel's existing qdisc infrastructure so tc like
tools can be used. This would give much more functionality than a simple
rate.

--
Alex Bligh

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