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

OSCC_FLAG_LOW is always set and oscc_grow_count will never grow

Details

    • Bug
    • Resolution: Fixed
    • Blocker
    • Lustre 2.1.0, Lustre 1.8.6
    • Lustre 1.8.6
    • None
    • 3
    • 5080

    Description

      I found osc_precreate is not working in the expected way, we always precreate 32 objects for some reason.

      After digging into code I found there is a bug:

      we are using req::rq_async_args.space[0] to store original value of oscc_grow_count, and using req::rq_async_args.pointer_arg[0] to store oscc, however, ptlrpc_async_args is a union, which means req::rq_async_args.space[0] will always be overwritten by a ossc (a pointer), and osc_interpret_create will always get true on this condition "if (diff < (int) req->rq_async_args.space[0])" and reset oscc_grow_count to OST_MIN_PRECREATE and set OSCC_FLAG_LOW.

      The fix will be very simple but it has big impact on performance of file creation so I set priority as "major", I will post patch for it very soon.

      Attachments

        Issue Links

          Activity

            [LU-170] OSCC_FLAG_LOW is always set and oscc_grow_count will never grow
            pjones Peter Jones made changes -
            Affects Version/s New: Lustre 1.8.6 [ 10022 ]
            Affects Version/s Original: Lustre 1.8.x [ 10010 ]
            pjones Peter Jones made changes -
            Fix Version/s New: Lustre 2.1.0 [ 10021 ]
            Resolution New: Fixed [ 1 ]
            Status Original: Reopened [ 4 ] New: Resolved [ 5 ]
            pjones Peter Jones added a comment -

            Landed for both 1.8.6 and 2.1 so I think that this can be marked RESOLVED. Please reopen if there is still any further work to complete

            pjones Peter Jones added a comment - Landed for both 1.8.6 and 2.1 so I think that this can be marked RESOLVED. Please reopen if there is still any further work to complete

            Integrated in lustre-b1_8 » x86_64,server,el5,inkernel #60
            LU-170 oscc_grow_count will never grow

            Johann Lombardi : d70807c400978c3ae1119d7d9fa22f160eece35a
            Files :

            • lustre/mdc/mdc_locks.c
            • lustre/include/lustre_net.h
            • lustre/ptlrpc/recov_thread.c
            • lustre/osc/osc_create.c
            • lustre/ldlm/ldlm_lockd.c
            hudson Build Master (Inactive) added a comment - Integrated in lustre-b1_8 » x86_64,server,el5,inkernel #60 LU-170 oscc_grow_count will never grow Johann Lombardi : d70807c400978c3ae1119d7d9fa22f160eece35a Files : lustre/mdc/mdc_locks.c lustre/include/lustre_net.h lustre/ptlrpc/recov_thread.c lustre/osc/osc_create.c lustre/ldlm/ldlm_lockd.c

            Integrated in lustre-b1_8 » i686,server,el5,ofa #60
            LU-170 oscc_grow_count will never grow

            Johann Lombardi : d70807c400978c3ae1119d7d9fa22f160eece35a
            Files :

            • lustre/osc/osc_create.c
            • lustre/include/lustre_net.h
            • lustre/ptlrpc/recov_thread.c
            • lustre/ldlm/ldlm_lockd.c
            • lustre/mdc/mdc_locks.c
            hudson Build Master (Inactive) added a comment - Integrated in lustre-b1_8 » i686,server,el5,ofa #60 LU-170 oscc_grow_count will never grow Johann Lombardi : d70807c400978c3ae1119d7d9fa22f160eece35a Files : lustre/osc/osc_create.c lustre/include/lustre_net.h lustre/ptlrpc/recov_thread.c lustre/ldlm/ldlm_lockd.c lustre/mdc/mdc_locks.c

            Integrated in lustre-b1_8 » i686,server,el5,inkernel #60
            LU-170 oscc_grow_count will never grow

            Johann Lombardi : d70807c400978c3ae1119d7d9fa22f160eece35a
            Files :

            • lustre/ptlrpc/recov_thread.c
            • lustre/include/lustre_net.h
            • lustre/ldlm/ldlm_lockd.c
            • lustre/mdc/mdc_locks.c
            • lustre/osc/osc_create.c
            hudson Build Master (Inactive) added a comment - Integrated in lustre-b1_8 » i686,server,el5,inkernel #60 LU-170 oscc_grow_count will never grow Johann Lombardi : d70807c400978c3ae1119d7d9fa22f160eece35a Files : lustre/ptlrpc/recov_thread.c lustre/include/lustre_net.h lustre/ldlm/ldlm_lockd.c lustre/mdc/mdc_locks.c lustre/osc/osc_create.c

            Integrated in lustre-b1_8 » x86_64,client,el5,inkernel #60
            LU-170 oscc_grow_count will never grow

            Johann Lombardi : d70807c400978c3ae1119d7d9fa22f160eece35a
            Files :

            • lustre/mdc/mdc_locks.c
            • lustre/ptlrpc/recov_thread.c
            • lustre/include/lustre_net.h
            • lustre/osc/osc_create.c
            • lustre/ldlm/ldlm_lockd.c
            hudson Build Master (Inactive) added a comment - Integrated in lustre-b1_8 » x86_64,client,el5,inkernel #60 LU-170 oscc_grow_count will never grow Johann Lombardi : d70807c400978c3ae1119d7d9fa22f160eece35a Files : lustre/mdc/mdc_locks.c lustre/ptlrpc/recov_thread.c lustre/include/lustre_net.h lustre/osc/osc_create.c lustre/ldlm/ldlm_lockd.c

            Integrated in lustre-b1_8 » i686,client,el6,inkernel #60
            LU-170 oscc_grow_count will never grow

            Johann Lombardi : d70807c400978c3ae1119d7d9fa22f160eece35a
            Files :

            • lustre/ldlm/ldlm_lockd.c
            • lustre/osc/osc_create.c
            • lustre/include/lustre_net.h
            • lustre/ptlrpc/recov_thread.c
            • lustre/mdc/mdc_locks.c
            hudson Build Master (Inactive) added a comment - Integrated in lustre-b1_8 » i686,client,el6,inkernel #60 LU-170 oscc_grow_count will never grow Johann Lombardi : d70807c400978c3ae1119d7d9fa22f160eece35a Files : lustre/ldlm/ldlm_lockd.c lustre/osc/osc_create.c lustre/include/lustre_net.h lustre/ptlrpc/recov_thread.c lustre/mdc/mdc_locks.c

            Integrated in lustre-b1_8 » i686,client,el5,ofa #60
            LU-170 oscc_grow_count will never grow

            Johann Lombardi : d70807c400978c3ae1119d7d9fa22f160eece35a
            Files :

            • lustre/mdc/mdc_locks.c
            • lustre/ptlrpc/recov_thread.c
            • lustre/include/lustre_net.h
            • lustre/osc/osc_create.c
            • lustre/ldlm/ldlm_lockd.c
            hudson Build Master (Inactive) added a comment - Integrated in lustre-b1_8 » i686,client,el5,ofa #60 LU-170 oscc_grow_count will never grow Johann Lombardi : d70807c400978c3ae1119d7d9fa22f160eece35a Files : lustre/mdc/mdc_locks.c lustre/ptlrpc/recov_thread.c lustre/include/lustre_net.h lustre/osc/osc_create.c lustre/ldlm/ldlm_lockd.c

            Integrated in lustre-b1_8 » i686,client,el5,inkernel #60
            LU-170 oscc_grow_count will never grow

            Johann Lombardi : d70807c400978c3ae1119d7d9fa22f160eece35a
            Files :

            • lustre/ldlm/ldlm_lockd.c
            • lustre/mdc/mdc_locks.c
            • lustre/osc/osc_create.c
            • lustre/include/lustre_net.h
            • lustre/ptlrpc/recov_thread.c
            hudson Build Master (Inactive) added a comment - Integrated in lustre-b1_8 » i686,client,el5,inkernel #60 LU-170 oscc_grow_count will never grow Johann Lombardi : d70807c400978c3ae1119d7d9fa22f160eece35a Files : lustre/ldlm/ldlm_lockd.c lustre/mdc/mdc_locks.c lustre/osc/osc_create.c lustre/include/lustre_net.h lustre/ptlrpc/recov_thread.c

            People

              liang Liang Zhen (Inactive)
              liang Liang Zhen (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: