public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH 0/2] Traffic control cgroups subsystem
@ 2008-09-26  6:16 김재열
  2008-09-26  9:57 ` Chen Zumeng
  0 siblings, 1 reply; 12+ messages in thread
From: 김재열 @ 2008-09-26  6:16 UTC (permalink / raw)
  To: linux-kernel; +Cc: Ranjit Manomohan

>Incorporated fixes suggested by Li Zefan.
>
>Please consider for net-next-2.6.
>
>This patch provides a simple resource controller (cgroup_tc) based on 
>the cgroups infrastructure to manage network traffic. The cgroup_tc 
>resource controller can be used to schedule and shape traffic belonging 
>to the task(s) in a particular cgroup.
>
>The implementation consists of two parts:
>
>1) A resource controller (cgroup_tc) that is used to associate packets from
>   a particular task belonging to a cgroup with a traffic control class id (
>   tc_classid). This tc_classid is propagated to all sockets created by tasks
>   in the cgroup and will be used for classifying packets at the link layer.
>
>2) A new traffic control classifier (cls_cgroup) that can classify packets
>   based on the tc_classid field in the socket to specific destination classes.
>
>An example of the use of this resource controller would be to limit the 
>traffic from all tasks from a file_server cgroup to 100Mbps. We could 
>achieve this by doing:
>
># make a cgroup of file transfer processes and assign it a arbitrary 
>unique # classid of 0x1234 - this will be used later to direct packets.
>mkdir -p /dev/cgroup
>mount -t cgroup tc -otc /dev/cgroup
>mkdir /dev/cgroup/file_transfer
>echo 0x1234 > /dev/cgroup/file_transfer/tc.classid
>echo $PID_OF_FILE_XFER_PROCESS > /dev/cgroup/file_transfer/tasks
>
># Now create a HTB class that rate limits traffic to 100mbits and 
>attach # a filter to direct all traffic from cgroup file_transfer to this new class.
>tc qdisc add dev eth0 root handle 1: htb tc class add dev eth0 parent 
>1: classid 1:10 htb rate 100mbit ceil 100mbit tc filter add dev eth0 
>parent 1: handle 800 protocol ip prio 1 cgroup value 0x1234 classid 
>1:10
>
>Signed-off-by: Ranjit Manomohan <ranjitm <at> google.com>
>

I installed your patch to kernel-2.6.27-rc7 with some hunkles but without failes.
After compiling the kernel, I run the command which you wrote above. Most of all commands successfully are run except the last command " tc filter add dev eth0 parent 1: handle 800 protocol ip prio 1 cgroup value 0x1234 classid 1:10"

After that, I received this messages
"Unknown filter "cgroup", hence option "value" is unparsable"

So I operated this command with "strace", then below messages returned.
...
socket(PF_NETLINK, SOCK_RAW, 0)         = 3
setsockopt(3, SOL_SOCKET, SO_SNDBUF, [32768], 4) = 0 setsockopt(3, SOL_SOCKET, SO_RCVBUF, [32768], 4) = 0 bind(3, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0 getsockname(3, {sa_family=AF_NETLINK, pid=5452, groups=00000000}, [12]) = 0
time(NULL)                              = 1222389948
open("/usr/lib/tc/f_cgroup.so", O_RDONLY) = -1 ENOENT (No such file or directory) write(2, "Unknown filter \"cgroup\", hence o"..., 60Unknown filter "cgroup", hence option "value" is unparsable
) = 60
close(3)                                = 0
exit_group(1)                           = ?

This messages told me tc couldn’t find "f_cgroup.so" library in my system.
With this message, I thought that we need a modified "tc" command file to recognize the new filter, cgroup.

And I saw the line in your patch below
">Please consider for net-next-2.6."
What's the meaning of the line?
I wonder if I have to adopt another patch for net-netxt-2.6 before adopting this patch?

You didn't mentioned base kernel for this patch.
I am willing to know the base kernel version and why you didn't mention.

I've worked couple of days for resolving this problem. But I couldn't find the proper answer yet.

I'd really thank you if you help me.


To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo <at> vger.kernel.org More majordomo info at  http://vger.kernel.org/majordomo-info.html


^ permalink raw reply	[flat|nested] 12+ messages in thread
* Re: [PATCH 0/2] Traffic control cgroups subsystem
@ 2008-09-26  1:07 김재열
  0 siblings, 0 replies; 12+ messages in thread
From: 김재열 @ 2008-09-26  1:07 UTC (permalink / raw)
  To: linux-kernel, netdev; +Cc: Ranjit Manomohan

>Incorporated fixes suggested by Li Zefan.
>
>Please consider for net-next-2.6.
>
>This patch provides a simple resource controller (cgroup_tc) based on the
>cgroups infrastructure to manage network traffic. The cgroup_tc resource
>controller can be used to schedule and shape traffic belonging to the task(s)
>in a particular cgroup.
>
>The implementation consists of two parts:
>
>1) A resource controller (cgroup_tc) that is used to associate packets from
>   a particular task belonging to a cgroup with a traffic control class id (
>   tc_classid). This tc_classid is propagated to all sockets created by tasks
>   in the cgroup and will be used for classifying packets at the link layer.
>
>2) A new traffic control classifier (cls_cgroup) that can classify packets
>   based on the tc_classid field in the socket to specific destination classes.
>
>An example of the use of this resource controller would be to limit
>the traffic from all tasks from a file_server cgroup to 100Mbps. We could
>achieve this by doing:
>
># make a cgroup of file transfer processes and assign it a arbitrary unique
># classid of 0x1234 - this will be used later to direct packets.
>mkdir -p /dev/cgroup
>mount -t cgroup tc -otc /dev/cgroup
>mkdir /dev/cgroup/file_transfer
>echo 0x1234 > /dev/cgroup/file_transfer/tc.classid
>echo $PID_OF_FILE_XFER_PROCESS > /dev/cgroup/file_transfer/tasks
>
># Now create a HTB class that rate limits traffic to 100mbits and attach
># a filter to direct all traffic from cgroup file_transfer to this new class.
>tc qdisc add dev eth0 root handle 1: htb
>tc class add dev eth0 parent 1: classid 1:10 htb rate 100mbit ceil 100mbit
>tc filter add dev eth0 parent 1: handle 800 protocol ip prio 1 cgroup value 0x1234 classid 1:10
>
>Signed-off-by: Ranjit Manomohan <ranjitm <at> google.com>
>

I installed your patch to kernel-2.6.27-rc7 with some hunkles but without failes.
After compiling the kernel, I run the command which you wrote above. Most of all commands successfully are run except the last command " tc filter add dev eth0 parent 1: handle 800 protocol ip prio 1 cgroup value 0x1234 classid 1:10"

After that, I received this messages
"Unknown filter "cgroup", hence option "value" is unparsable"

So I operated this command with "strace", then below messages returned.
...
socket(PF_NETLINK, SOCK_RAW, 0)         = 3
setsockopt(3, SOL_SOCKET, SO_SNDBUF, [32768], 4) = 0
setsockopt(3, SOL_SOCKET, SO_RCVBUF, [32768], 4) = 0
bind(3, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(3, {sa_family=AF_NETLINK, pid=5452, groups=00000000}, [12]) = 0
time(NULL)                              = 1222389948
open("/usr/lib/tc/f_cgroup.so", O_RDONLY) = -1 ENOENT (No such file or directory)
write(2, "Unknown filter \"cgroup\", hence o"..., 60Unknown filter "cgroup", hence option "value" is unparsable
) = 60
close(3)                                = 0
exit_group(1)                           = ?

This messages told me tc couldn’t find "f_cgroup.so" library in my system.
With this message, I thought that we need a modified "tc" command file to recognize the new filter, cgroup.

And I saw the line in your patch below
">Please consider for net-next-2.6."
What's the meaning of the line?
I wonder if I have to adopt another patch for net-netxt-2.6 before adopting this patch?

You didn't mentioned base kernel for this patch.
I am willing to know the base kernel version and why you didn't mention.

I've worked couple of days for resolving this problem. But I couldn't find the proper answer yet.

I'd really thank you if you help me.


To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 12+ messages in thread
* [PATCH 0/2] Traffic control cgroups subsystem
@ 2008-09-10 17:40 Ranjit Manomohan
  2008-09-10 20:22 ` David Miller
  0 siblings, 1 reply; 12+ messages in thread
From: Ranjit Manomohan @ 2008-09-10 17:40 UTC (permalink / raw)
  To: davem, kaber, akpm, lizf, menage, tgraf; +Cc: linux-kernel, netdev

Incorporated fixes suggested by Li Zefan.

Please consider for net-next-2.6.

This patch provides a simple resource controller (cgroup_tc) based on the
cgroups infrastructure to manage network traffic. The cgroup_tc resource
controller can be used to schedule and shape traffic belonging to the task(s)
in a particular cgroup.

The implementation consists of two parts:

1) A resource controller (cgroup_tc) that is used to associate packets from
   a particular task belonging to a cgroup with a traffic control class id (
   tc_classid). This tc_classid is propagated to all sockets created by tasks
   in the cgroup and will be used for classifying packets at the link layer.

2) A new traffic control classifier (cls_cgroup) that can classify packets
   based on the tc_classid field in the socket to specific destination classes.

An example of the use of this resource controller would be to limit
the traffic from all tasks from a file_server cgroup to 100Mbps. We could
achieve this by doing:

# make a cgroup of file transfer processes and assign it a arbitrary unique
# classid of 0x1234 - this will be used later to direct packets.
mkdir -p /dev/cgroup
mount -t cgroup tc -otc /dev/cgroup
mkdir /dev/cgroup/file_transfer
echo 0x1234 > /dev/cgroup/file_transfer/tc.classid
echo $PID_OF_FILE_XFER_PROCESS > /dev/cgroup/file_transfer/tasks

# Now create a HTB class that rate limits traffic to 100mbits and attach
# a filter to direct all traffic from cgroup file_transfer to this new class.
tc qdisc add dev eth0 root handle 1: htb
tc class add dev eth0 parent 1: classid 1:10 htb rate 100mbit ceil 100mbit
tc filter add dev eth0 parent 1: handle 800 protocol ip prio 1 cgroup value 0x1234 classid 1:10

Signed-off-by: Ranjit Manomohan <ranjitm@google.com>

---

^ permalink raw reply	[flat|nested] 12+ messages in thread
* [PATCH 0/2] Traffic control cgroups subsystem
@ 2008-08-22  0:53 Ranjit Manomohan
  0 siblings, 0 replies; 12+ messages in thread
From: Ranjit Manomohan @ 2008-08-22  0:53 UTC (permalink / raw)
  To: linux-kernel, netdev; +Cc: lizf, kaber, menage, akpm


[Resend based of net-next-2.6, for 2.6.28]

This patch provides a simple resource controller (cgroup_tc) based on the
cgroups infrastructure to manage network traffic. The cgroup_tc resource
controller can be used to schedule and shape traffic belonging to the task(s)
in a particular cgroup.

The implementation consists of two parts:

1) A resource controller (cgroup_tc) that is used to associate packets from
   a particular task belonging to a cgroup with a traffic control class id (
   tc_classid). This tc_classid is propagated to all sockets created by tasks
   in the cgroup and will be used for classifying packets at the link layer.

2) A new traffic control classifier (cls_cgroup) that can classify packets
   based on the tc_classid field in the socket to specific destination classes.

An example of the use of this resource controller would be to limit
the traffic from all tasks from a file_server cgroup to 100Mbps. We could
achieve this by doing:

# make a cgroup of file transfer processes and assign it a arbitrary unique
# classid of 0x1234 - this will be used later to direct packets.
mkdir -p /dev/cgroup
mount -t cgroup tc -otc /dev/cgroup
mkdir /dev/cgroup/file_transfer
echo 0x1234 > /dev/cgroup/file_transfer/tc.classid
echo $PID_OF_FILE_XFER_PROCESS > /dev/cgroup/file_transfer/tasks

# Now create a HTB class that rate limits traffic to 100mbits and attach
# a filter to direct all traffic from cgroup file_transfer to this new class.
tc qdisc add dev eth0 root handle 1: htb
tc class add dev eth0 parent 1: classid 1:10 htb rate 100mbit ceil 100mbit
tc filter add dev eth0 parent 1: handle 800 protocol ip prio 1 cgroup value 0x1234 classid 1:10

Signed-off-by: Ranjit Manomohan <ranjitm@google.com>

---

^ permalink raw reply	[flat|nested] 12+ messages in thread
* [PATCH 0/2] Traffic control cgroups subsystem
@ 2008-07-18 21:25 Ranjit Manomohan
  0 siblings, 0 replies; 12+ messages in thread
From: Ranjit Manomohan @ 2008-07-18 21:25 UTC (permalink / raw)
  To: linux-kernel, netdev; +Cc: menage

This set of patches provides a simple resource controller (cgroup_tc) based
on the cgroups infrastructure to manage network traffic. The cgroup_tc resource
controller can be used to schedule and shape traffic belonging to the task(s)
in a particular cgroup.

The implementation consists of two parts:

1) A resource controller (cgroup_tc) that is used to associate packets from
    a particular task belonging to a cgroup with a traffic control class id (
    tc_classid). This tc_classid is propagated to all sockets created by tasks
    in the cgroup and from there to all packets associated with those sockets.

2) A new traffic control classifier (cls_cgroup) that can classify packets
    based on the tc_classid field in the packet to specific destination classes.

A simple example of the use of this resource controller would be to limit
the traffic from all tasks from a file_server cgroup to 100Mbps. We could
achieve this by doing:

# make a cgroup of file transfer processes and assign it a uniqe classid
# of 0x1234
mkdir -p /dev/cgroup
mount -t cgroup tc -otc /dev/cgroup
mkdir /dev/cgroup/file_transfer
echo 0x1234 > /dev/cgroup/file_transfer/tc.classid
echo $PID_OF_FILE_XFER_PROCESS > /dev/cgroup/file_transfer/tasks

# Now create a HTB class that rate limits traffic to 100mbits and attach
# a filter to direct all traffic from cgroup file_transfer to this new class.
tc qdisc add dev eth0 root handle 1: htb
tc class add dev eth0 parent 1: classid 1:2 htb rate 100mbit ceil 100mbit
tc filter add dev eth0 parent 1: protocol ip prio 1 handle 800 cgroup value 0x1234 classid 1:2

Signed-off-by: Ranjit Manomohan <ranjitm@google.com>

---

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2008-10-15 13:03 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-26  6:16 [PATCH 0/2] Traffic control cgroups subsystem 김재열
2008-09-26  9:57 ` Chen Zumeng
2008-10-15 13:03   ` Chen Zumeng
  -- strict thread matches above, loose matches on Subject: below --
2008-09-26  1:07 김재열
2008-09-10 17:40 Ranjit Manomohan
2008-09-10 20:22 ` David Miller
2008-09-10 20:44   ` Ranjit Manomohan
2008-09-10 22:12     ` Thomas Graf
2008-09-10 23:37       ` Ranjit Manomohan
2008-09-10 23:52         ` Thomas Graf
2008-08-22  0:53 Ranjit Manomohan
2008-07-18 21:25 Ranjit Manomohan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox