Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-12394

lctl get_param llite.lfs*.extents_stats only displays first two buckets

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: Lustre 2.13.0, Lustre 2.12.3
    • Labels:
      None
    • Severity:
      3
    • Rank (Obsolete):
      9223372036854775807

      Description

      ll_extent_stats is broken on recent versions, displaying on the 0-4K and 4K - 8K buckets:

      lctl get_param llite.*.extents_stats
      llite.[...].extents_stats=
      snapshot_time:         1559766954.651554186 (secs.nsecs)
                                     read       |                write
            extents            calls    % cum%  |          calls    % cum%
         0K -    4K :              0    0    0  |              0    0    0
         4K -    8K :              0    0    0  |         207590  100  100 

      This was broken in:

      commit adb5aca3d67380078c4bd35c74651a7b9f848f4d
      Author: James Simmons <uja.ornl@yahoo.com>
      Date: Sat Oct 13 15:24:46 2018 -0400

      LU-8066 llite: Move all remaining procfs entries to debugfs

      This moves all remaining procfs handling in llite layer to debugfs.

      This is a modified version of

      Linux-commit : ae7c0f4833a65b7648cceaf1a60503a89e057f0f

      Change-Id: Id5c411d21a660a17a015ca9976b857e6b088c28a
      Signed-off-by: Dmitry Eremin <dmitry.eremin@intel.com>
      Signed-off-by: Oleg Drokin <oleg.drokin@intel.com>
      Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: James Simmons <uja.ornl@yahoo.com>
      Reviewed-on: https://review.whamcloud.com/32517
      Tested-by: Jenkins
      Tested-by: Maloo <hpdd-maloo@intel.com>
      Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
      Reviewed-by: Ben Evans <bevans@cray.com>
      Reviewed-by: Oleg Drokin <green@whamcloud.com>

      By this change:

      -        for(i = 0; (count >= (1 << LL_HIST_START << i)) &&
      +       for(i = 0; (count >= BIT(LL_HIST_START << i)) && 

      BIT(LL_HIST_START << i) is not actually the same as 1 << LL_HIST_START << i due to operation ordering details.

      BIT(LL_HIST_START + i) gives the desired behavior.

        Attachments

          Activity

            People

            • Assignee:
              pfarrell Patrick Farrell (Inactive)
              Reporter:
              pfarrell Patrick Farrell (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: