tree bfe96ecb2860837bf858ceb180c489c931ed74d9
parent 505d4f73dda9e20d59da05008f1f5eb432613e71
author Thomas Graf <tgraf@suug.ch> 1226127360 -0800
committer David S. Miller <davem@davemloft.net> 1226127360 -0800

pkt_sched: Control group classifier

The classifier should cover the most common use case and will work
without any special configuration.

The principle of the classifier is to directly access the
task_struct via get_current(). In order for this to work,
classification requests from softirqs must be ignored. This is
not a problem because the vast majority of packets in softirq
context are not assigned to a task anyway. For this to work, a
mechanism is needed to trace softirq context. 

This repost goes back to the method of relying on the number of
nested bh disable calls for the sake of not adding too much
complexity and the option to come up with something more reliable
if actually needed.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
