tech-net archive

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

Re: Seeking opinion on where networking-related user space code should go

On Apr 16, 2013, at 3:55 PM, Beverly Schwartz <> 

> I have created a facility in the kernel for tracking mbuf clusters.  (Twice 
> at BBN, we have successfully used this cluster tracking code to find mbuf 
> cluster leaks.)
> This facility can be compiled in the kernel by enabling the option MCL_DEBUG.
> If MCL_DEBUG is enabled, then tracking data is kept for each mbuf cluster.  
> Examples of data kept:
> When and where in the code the cluster was allocated.
> When and where in the code the cluster was freed.
> When and where the cluster was queued or dequeued.
> When and where the cluster was passed from one protocol to another.
> At each of these points, I note which CPU we're on, the LWP id, whether or 
> not we have KERNEL_LOCK and/or softnet lock, if there was something 
> anomalous.  Anomalies detected: cluster allocated twice without being freed 
> in-between, cluster freed without being allocated, cluster unallocated when 
> expected to be allocated, lock not held when expected to be held.
> I have set up code in /proc for accessing the data, but it would be nice to 
> have a user space program to look at the data.  Using kvm, this data can be 
> inspected in a live kernel or in a core dump.
> Keep in mind, there can be up to 8192 clusters, so there is potentially a 
> *lot* of data.  Using kvm, we can also follow pointers in the data to inspect 
> the contents of mbuf's and mbuf clusters.  I expect that this, too, could be 
> quite useful.
> Options I have considered:
> - a new usr.bin program
> - adding new options to vmstat for this data
> - adding new options to netstat for this data
> Any thoughts or preferences?

sysctl kern.mbuf….

seems like netstat -m should display it if available.
maybe -m -v

Home | Main Index | Thread Index | Old Index