Re: [PATCH] mountstats: Fix nfsstat command to handle RPC iostats version >= 1.1

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

 




On 6/26/19 1:02 PM, Dave Wysochanski wrote:
> Later kernels with RPC iostats version >= 1.1 have an additional errors
> count for each op.  Lengthen the array of values created inside
> DeviceData and then in __parse_rpc_line just zero this value out for
> prior kernels where this count is not present.  The count is not used
> for nfsstat, but this keeps DeviceData consistent with the new count
> as well as proper functioning of accumulate_iostats.
> 
> Before this patch, nfsstat will backtrace on a kernel with RPC iostats
> version >= 1.1 due to the fixed array inside DeviceData.  This patch
> fixes this backtrace and also allows nfsstat to work with these new
> kernels.
> 
> Signed-off-by: Dave Wysochanski <dwysocha@xxxxxxxxxx>
Committed... 

steved
> ---
>  tools/mountstats/mountstats.py | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/mountstats/mountstats.py b/tools/mountstats/mountstats.py
> index c5e8f506..6ac83ccb 100755
> --- a/tools/mountstats/mountstats.py
> +++ b/tools/mountstats/mountstats.py
> @@ -308,6 +308,8 @@ class DeviceData:
>              op = words[0][:-1]
>              self.__rpc_data['ops'] += [op]
>              self.__rpc_data[op] = [int(word) for word in words[1:]]
> +            if len(self.__rpc_data[op]) < 9:
> +                self.__rpc_data[op] += [0]
>  
>      def parse_stats(self, lines):
>          """Turn a list of lines from a mount stat file into a 
> @@ -582,7 +584,7 @@ class DeviceData:
>              self.__nfs_data['fstype'] = 'nfs4'
>          self.__rpc_data['ops'] = ops
>          for op in ops:
> -            self.__rpc_data[op] = [0 for i in range(8)]
> +            self.__rpc_data[op] = [0 for i in range(9)]
>  
>      def accumulate_iostats(self, new_stats):
>          """Accumulate counters from all RPC op buckets in new_stats.  This is
> 



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux