Description of problem:
virt uses the tun driver + soft bridging to do networking. This implies a switch to softirq context at least 1 time during packet processing which prevents the network cgroup classifier from doing traffic control on qemu processes in kvm. We need these commits:
From the net-2.6 tree to get it working.
Created attachment 416189 [details]
backport of patches
Patch(es) available on kernel-2.6.32-31.el6
In regards to comments , 6 and 75, you're not adding the filters properly (although it is admittedly a subtle issue). br0 is the bare metal hosts bridge interface, frames originating from the bare metal host are transmitted by that interface. In contrast traffic originating from a guest is forwarded by the bride instance that br0 represents, but br0 doesn't actually transmit that traffic. As such the filters you added to br0 aren't consulted when guests transmit traffic. Likewise, vnet0 is the ethernet port that represents the connection to the guest on the bridge. Traffic originating from the guests will be received on those interfaces, not transmitted. Since the filters above are egress filters, adding them to vnetX will be useless. What you want to do is add the filters to the physical interfaces that are members of the bridge in question (ethX). Then the filters will get consulted and provide the rate limiting your looking for.
Red Hat Enterprise Linux 6.0 is now available and should resolve
the problem described in this bug report. This report is therefore being closed
with a resolution of CURRENTRELEASE. You may reopen this bug report if the
solution does not work for you.