Bug 1316024 - Allow clearing of statistics region's aux_data field
Allow clearing of statistics region's aux_data field
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: kernel (Show other bugs)
All Linux
high Severity medium
: rc
: ---
Assigned To: Bryn M. Reeves
Storage QE
Depends On:
  Show dependency treegraph
Reported: 2016-03-09 04:42 EST by Bryn M. Reeves
Modified: 2016-03-17 14:03 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2016-03-17 13:03:29 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
dm-stats: add @stats_clear_aux message (1.53 KB, patch)
2016-03-09 12:17 EST, Bryn M. Reeves
no flags Details | Diff

  None (edit)
Description Bryn M. Reeves 2016-03-09 04:42:58 EST
Description of problem:
The dm-stats facility provides a means to store a string as auxilliary data to a region that is set either when the region is created or via the @stats_set_aux method:

@stats_create - /1 dmstats this_is_aux_data
@stats_set_aux 1 this_is_aux_data_too

The userspace dmstats support will use this to track groups of regions defined by the user by storing a string description of the group members and other properties in the aux_data field.

Since users can create and delete groups at any time there needs to be a mechanism to remove a previously stored value or to set the field to the empty string.

This is not currently possible as the empty string is treated as whitespace leading to EINVAL from the message ioctl (as a workaround it is possible to set the field to a dummy character like '-' but this is not ideal).

Adding a new @stats_clear_aux message seems like the simplest change and should be a simple patch.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. Create a region with aux_data
2. Attempt to re-set it to empty aux_data with @stats_set_aux

Actual results:
EINVAL with the empty string; at least one character must be set.

Expected results:
Ability to remove previously stored aux_data.

Additional info:
WIP groups support: https://git.fedorahosted.org/cgit/lvm2.git/log/?h=dev-bmr-dmstats-groups
Comment 1 Alasdair Kergon 2016-03-09 09:24:06 EST
I've no objections to @stats_clear_aux
Comment 2 Bryn M. Reeves 2016-03-09 12:17 EST
Created attachment 1134589 [details]
dm-stats: add @stats_clear_aux message

Untested patch to add a @stats_clear_aux message. This was chosen over modifying the @stats_set_aux message to avoid the need to add optional arguments (as @stats_create uses for the precise_timestamps and histogram extensions).
Comment 3 Bryn M. Reeves 2016-03-17 13:03:29 EDT
While working on the patch for this I realised that the current dm-stats code in the kernel actually now assigns a default hard-coded aux_data (and program_id) of "-" - I'd mistakenly thought that these values were added only during output if these fields had a NULL pointer in the dm_stats structure.

Re-setting the field to "-" using @stats_set_aux does work (although it looks a bit weird) so this change is not necessary for the current groups support.

Closing NOTABUG.
Comment 4 Alasdair Kergon 2016-03-17 14:03:24 EDT
Is this documented?  If not, then Documentation/device-mapper/statistics.txt may need a patch.

Note You need to log in before you can comment on or make changes to this bug.