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

ll_ioc_copy_{start,end}() depend on search_inode_for_lustre() which is bad

Details

    • 3
    • 9223372036854775807

    Description

      In the HSM archive cases of ll_ioc_copy_{start,end}() we depend on search_inode_for_lustre() to get the data version. search_inode_for_lustre() does a MDS_GETATTR using the FID and returns a only partially initialized inode. The CT will later open and fstat the file so we have extra 3 RPCs (getattr, enqueue for layout for data version, enqueue for stat). If the CT would open the file to be archived before the the start ioctl and close it after the end ioctl then we could skip the extra 3 RPCs and just send 1 open.

      Attachments

        Issue Links

          Activity

            [LU-10357] ll_ioc_copy_{start,end}() depend on search_inode_for_lustre() which is bad
            mdiep Minh Diep made changes -
            Labels Original: LTS hsm New: hsm
            mdiep Minh Diep made changes -
            Fix Version/s New: Lustre 2.10.4 [ 13691 ]
            Fix Version/s Original: Lustre 2.10.3 [ 13591 ]
            mdiep Minh Diep made changes -
            Fix Version/s New: Lustre 2.10.3 [ 13591 ]
            pjones Peter Jones made changes -
            Fix Version/s New: Lustre 2.11.0 [ 13091 ]
            Resolution New: Fixed [ 1 ]
            Status Original: Open [ 1 ] New: Resolved [ 5 ]
            pjones Peter Jones made changes -
            Labels Original: hsm New: LTS hsm
            pjones Peter Jones made changes -
            Assignee Original: WC Triage [ wc-triage ] New: John Hammond [ jhammond ]
            jhammond John Hammond made changes -
            Link New: This issue is related to LU-10302 [ LU-10302 ]
            jhammond John Hammond made changes -
            Description Original: In the HSM archive cases of {{ll_ioc_copy_{start,end}()}} we depend on search_inode_for_lustre() to get the data version. {{search_inode_for_lustre()}} does a MDS_GETATTR using the FID and returns a only partially initialized inode. The CT will later open and fstat the file so we have extra 3 RPCs (getattr, enqueue for layout for data version, enqueue for stat). If the CT would open the file to be archived before the the start ioctl and close it after the end ioctl then we could skip the extra 3 RPCs and just send 1 open. New: In the HSM archive cases of {{ll_ioc_copy_\{start,end\}()}} we depend on search_inode_for_lustre() to get the data version. {{search_inode_for_lustre()}} does a MDS_GETATTR using the FID and returns a only partially initialized inode. The CT will later open and fstat the file so we have extra 3 RPCs (getattr, enqueue for layout for data version, enqueue for stat). If the CT would open the file to be archived before the the start ioctl and close it after the end ioctl then we could skip the extra 3 RPCs and just send 1 open.
            jhammond John Hammond made changes -
            Summary Original: ll_ioc_copy_{start,edd}() depend on search_inode_for_lustre() which is bad New: ll_ioc_copy_{start,end}() depend on search_inode_for_lustre() which is bad
            jhammond John Hammond created issue -

            People

              jhammond John Hammond
              jhammond John Hammond
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: