Re: qdisc monitoring

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* vincent perrier <41D40E5B.8030108@xxxxxxxxxxxxxxxx> 2004-12-30 15:19
> I am interrested in the monitoring of the qos qdiscs parameters such as size
> of the queue, enqueues, dequeues, delay in queue, I made a tool to have 
> those
> results availlable at http://rawsoft.org,

Good effort, I was having something like this in mind for several
months.

> I would like to have all the necessary data coming from the kernel so as to
> monitor the qdisc queues in a real time way without kernel modification.

Not possible, you can access queue length, number of requeues and number
of enqueues via statistics but it will be delayed.

> Could I have a modified sch_red.c or sch_fifo.c that would contain hooks to
> monitor and bring back the results to the user space?

Your current way of doing is correct but the hooks should be macros
being NIL if tracing is not enabled. Furthermore I would favour
using netlink callbacks instead of a char device. I give it good
chances to get into mainline iff there is no performance decrease
if tracing is not enabled and no new char device is created.

I'm willing to help you out in the kernel part.

My thoughts on this are basically:

#ifdef CONFIG_NET_SCHED_TRACE
#define tct_hook_enqueue(...) { ... }
...
#else
#define tct_hook_enqueue(...)
...
#endif

Modify all qdiscs/classifiers to call those hooks (simple).

The hooks generate messages which contain a timestamp
and some data. The skb or at least the header is transfered
to userspace when first seen. Messages are broadcast
over a netlink socket to all subscribers.

So you could basically record the events and then debug it
step-by-step and follow the path of a specific skb, etc.

> How do I proceed to have a qdisc module creation in the kernel?
> Is it possible?

I don't get this question.

> The need to monitor is great: how do we prove the quality of the 
> existing qdiscs?

The algorithms usually get verified in a simulator such as nsim.
The correctness of the implementation is verified through tcsim
in tcng.
_______________________________________________
LARTC mailing list / LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux