aoe: fill in per-AoE-target information for debugfs file
This information is presented in a compact format that has evolved for easy routine scanning by expert humans, mostly developers and support technicians helping to troubleshoot or test AoE-based systems. Signed-off-by: Ed Cashin <ecashin@coraid.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
1cf94797c2
Коммит
2256c1c51e
|
@ -113,11 +113,42 @@ static ssize_t aoedisk_show_payload(struct device *dev,
|
||||||
static int aoedisk_debugfs_show(struct seq_file *s, void *ignored)
|
static int aoedisk_debugfs_show(struct seq_file *s, void *ignored)
|
||||||
{
|
{
|
||||||
struct aoedev *d;
|
struct aoedev *d;
|
||||||
|
struct aoetgt **t, **te;
|
||||||
|
struct aoeif *ifp, *ife;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
char c;
|
||||||
|
|
||||||
d = s->private;
|
d = s->private;
|
||||||
|
seq_printf(s, "rttavg: %d rttdev: %d\n",
|
||||||
|
d->rttavg >> RTTSCALE,
|
||||||
|
d->rttdev >> RTTDSCALE);
|
||||||
|
seq_printf(s, "nskbpool: %d\n", skb_queue_len(&d->skbpool));
|
||||||
|
seq_printf(s, "kicked: %ld\n", d->kicked);
|
||||||
|
seq_printf(s, "maxbcnt: %ld\n", d->maxbcnt);
|
||||||
|
seq_printf(s, "ref: %ld\n", d->ref);
|
||||||
|
|
||||||
spin_lock_irqsave(&d->lock, flags);
|
spin_lock_irqsave(&d->lock, flags);
|
||||||
seq_printf(s, "%s\n", d->gd->disk_name); /* place holder */
|
t = d->targets;
|
||||||
|
te = t + d->ntargets;
|
||||||
|
for (; t < te && *t; t++) {
|
||||||
|
c = '\t';
|
||||||
|
seq_printf(s, "falloc: %ld\n", (*t)->falloc);
|
||||||
|
seq_printf(s, "ffree: %p\n",
|
||||||
|
list_empty(&(*t)->ffree) ? NULL : (*t)->ffree.next);
|
||||||
|
seq_printf(s, "%pm:%d:%d:%d\n", (*t)->addr, (*t)->nout,
|
||||||
|
(*t)->maxout, (*t)->nframes);
|
||||||
|
seq_printf(s, "\tssthresh:%d\n", (*t)->ssthresh);
|
||||||
|
seq_printf(s, "\ttaint:%d\n", (*t)->taint);
|
||||||
|
seq_printf(s, "\tr:%d\n", (*t)->rpkts);
|
||||||
|
seq_printf(s, "\tw:%d\n", (*t)->wpkts);
|
||||||
|
ifp = (*t)->ifs;
|
||||||
|
ife = ifp + ARRAY_SIZE((*t)->ifs);
|
||||||
|
for (; ifp->nd && ifp < ife; ifp++) {
|
||||||
|
seq_printf(s, "%c%s", c, ifp->nd->name);
|
||||||
|
c = ',';
|
||||||
|
}
|
||||||
|
seq_puts(s, "\n");
|
||||||
|
}
|
||||||
spin_unlock_irqrestore(&d->lock, flags);
|
spin_unlock_irqrestore(&d->lock, flags);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче