Re: [RFC][PATCH] taskstats: Fix CGROUPSTATS_TYPE_CGROUP_STATS having same value as TASKSTATS_TYPE_PID

Balbir Singh
2009-07-13T13:42:04Z

* Nikanth Karthikesan <knikanth@suse.de> [2009-07-13 18:31:12]:

> Hi
>
> Currently we never get message from kernel to userspace of type
> TASKSTATS_TYPE_PID. Otherwise this could have been spotted earlier.
>
> I was trying to add a new taskstat command that would return response of type
> TASKSTATS_TYPE_PID.
>
> Having the same values would restrict one not to use the same netlink socket
> for a command that would return response of type TASKSTATS_TYPE_PID and the
> CGROUPSTATS_CMD_GET command.
>
> Should we fix it by using values after __TASKSTATS_TYPE_MAX.
>
> Changing this now might break pre-built binaries. Or is this intended, and the
> application is not supposed to use CGROUPSTATS and TASKSTATS on the same
> socket?
>

Ideally they are supposed to be on different sockets, but nothing
really is hard and fast in terms of rules.

> Thanks
> Nikanth
>
> Currently we never get message from kernel to userspace of type
> TASKSTATS_TYPE_PID. Otherwise this could have been spotted earlier. Having the
> values in the same range would restrict one not to use the same netlink socket
> for a command that would return response of type TASKSTATS_TYPE_PID and the
> CGROUPSTATS_CMD_GET command. Fix it by using values after
> __TASKSTATS_TYPE_MAX.
>
> Signed-off-by: Nikanth Karthikesan <knikanth@suse.de>
>
> ---
>
>
> diff --git a/include/linux/cgroupstats.h b/include/linux/cgroupstats.h
> index 3753c33..87b31f0 100644
> --- a/include/linux/cgroupstats.h
> +++ b/include/linux/cgroupstats.h
> @@ -53,7 +53,7 @@ enum {
> #define CGROUPSTATS_CMD_MAX (__CGROUPSTATS_CMD_MAX - 1)
>
> enum {
> - CGROUPSTATS_TYPE_UNSPEC = 0, /* Reserved */
> + CGROUPSTATS_TYPE_UNSPEC = __TASKSTATS_TYPE_MAX, /* Reserved */
> CGROUPSTATS_TYPE_CGROUP_STATS, /* contains name + stats */
> __CGROUPSTATS_TYPE_MAX,
> };
>

This seems like the correct fix

Reviewed-by: Balbir Singh <balbir@linux.vnet.ibm.com>

--
Balbir