aoe: "payload" sysfs file exports per-AoE-command data transfer size

The userland aoetools package includes an "aoe-stat" command that can
display a "payload size" column when the aoe driver exports this
information.  Users can quickly see what amount of user data is
transferred inside each AoE command on the network, network headers
excluded.

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:
Ed Cashin 2012-12-17 16:03:34 -08:00 committed by Linus Torvalds
parent aa304fdefa
commit 90a2508d01

View File

@ -98,6 +98,14 @@ static ssize_t aoedisk_show_fwver(struct device *dev,
return snprintf(page, PAGE_SIZE, "0x%04x\n", (unsigned int) d->fw_ver); return snprintf(page, PAGE_SIZE, "0x%04x\n", (unsigned int) d->fw_ver);
} }
static ssize_t aoedisk_show_payload(struct device *dev,
struct device_attribute *attr, char *page)
{
struct gendisk *disk = dev_to_disk(dev);
struct aoedev *d = disk->private_data;
return snprintf(page, PAGE_SIZE, "%lu\n", d->maxbcnt);
}
static DEVICE_ATTR(state, S_IRUGO, aoedisk_show_state, NULL); static DEVICE_ATTR(state, S_IRUGO, aoedisk_show_state, NULL);
static DEVICE_ATTR(mac, S_IRUGO, aoedisk_show_mac, NULL); static DEVICE_ATTR(mac, S_IRUGO, aoedisk_show_mac, NULL);
@ -106,12 +114,14 @@ static struct device_attribute dev_attr_firmware_version = {
.attr = { .name = "firmware-version", .mode = S_IRUGO }, .attr = { .name = "firmware-version", .mode = S_IRUGO },
.show = aoedisk_show_fwver, .show = aoedisk_show_fwver,
}; };
static DEVICE_ATTR(payload, S_IRUGO, aoedisk_show_payload, NULL);
static struct attribute *aoe_attrs[] = { static struct attribute *aoe_attrs[] = {
&dev_attr_state.attr, &dev_attr_state.attr,
&dev_attr_mac.attr, &dev_attr_mac.attr,
&dev_attr_netif.attr, &dev_attr_netif.attr,
&dev_attr_firmware_version.attr, &dev_attr_firmware_version.attr,
&dev_attr_payload.attr,
NULL, NULL,
}; };