Details

    • Bug
    • Resolution: Fixed
    • Major
    • Lustre 2.9.0
    • Lustre 2.9.0
    • None
    • 3
    • 9223372036854775807

    Description

      The code to allow peer_credits to be set per NI was originally "left inactive" because there were concerns about peer_credits interfering with the ability for IB nodes to connect to each other when peer_credits are not the same (peer_credits controls the queue depth for IB).

      With LU-3322, the values do not have to match so it is now safe to enable this code so peer_credits can be set per NI.

      Attachments

        Activity

          [LU-8507] DLC: Enable peer_credit management
          pjones Peter Jones added a comment -

          Landed for 2.9

          pjones Peter Jones added a comment - Landed for 2.9

          Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/21948/
          Subject: LU-8507 lnet: Enable setting per NI peer_credits
          Project: fs/lustre-release
          Branch: master
          Current Patch Set:
          Commit: ebac11d264b306b694684f1ee91080a5e31684d4

          gerrit Gerrit Updater added a comment - Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/21948/ Subject: LU-8507 lnet: Enable setting per NI peer_credits Project: fs/lustre-release Branch: master Current Patch Set: Commit: ebac11d264b306b694684f1ee91080a5e31684d4

          Dough I figured out the problem. Its a old bug so this need to be back ported to several branches. Basically the data the user passed in using
          struct lnet_ioctl_config_data wasn't being used to set struct lnet_ni fields like ni->ni_peertxcredits until after lnd->lnd_startup() was called. This meant the o2iblnd driver was never seeing the ni->ni_peerXXX fields changed by the lnet_ioctl_config_data. So I moved the setting of the ni->ni_peerXXX fields with the lnet_ioctl_config_data before the call to lnd->lnd_startup(). Give it a try now.

          simmonsja James A Simmons added a comment - Dough I figured out the problem. Its a old bug so this need to be back ported to several branches. Basically the data the user passed in using struct lnet_ioctl_config_data wasn't being used to set struct lnet_ni fields like ni->ni_peertxcredits until after lnd->lnd_startup() was called. This meant the o2iblnd driver was never seeing the ni->ni_peerXXX fields changed by the lnet_ioctl_config_data. So I moved the setting of the ni->ni_peerXXX fields with the lnet_ioctl_config_data before the call to lnd->lnd_startup(). Give it a try now.
          simmonsja James A Simmons added a comment - - edited

          With this patch I will no longer need to have a ko2ilnd modprobe config file which is awesome. So I tried your patch but I'm seeing some changes in what values are being set. With a modprobe config file with peer_credits=63 I see the following with lnetctl export > settings.conf.
          This is the desired settings and what I placed in my setting.conf for lnetctl import.

          BTW the command I used to setup my configure for both cases is:

          modprobe lnet;lnetctl lnet configure;lnetctl import < ~/settings.conf

          • net: o2ib1
            nid: 10.37.202.11@o2ib1
            status: up
            interfaces:
            0: ib0
            lnd tunables:
            peercredits_hiw: 62
            map_on_demand: 16
            concurrent_sends: 31
            fmr_pool_size: 1280
            fmr_flush_trigger: 1024
            fmr_cache: 1
            tunables:
            peer_timeout: 180
            peer_credits: 63
            peer_buffer_credits: 0
            credits: 2560
            CPT: "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"

          Here is the default settings when I remove my modprobe conf file with lnetctl export > setttings.conf

          • net: o2ib1
            nid: 10.37.202.11@o2ib1
            status: up
            interfaces:
            0: ib0
            lnd tunables:
            peercredits_hiw: 7
            map_on_demand: 16
            concurrent_sends: 16
            fmr_pool_size: 1280
            fmr_flush_trigger: 1024
            fmr_cache: 1

          As you can see peercredits_hiw and concurrent_sends is set to what I want. Any ideas why?

          simmonsja James A Simmons added a comment - - edited With this patch I will no longer need to have a ko2ilnd modprobe config file which is awesome. So I tried your patch but I'm seeing some changes in what values are being set. With a modprobe config file with peer_credits=63 I see the following with lnetctl export > settings.conf. This is the desired settings and what I placed in my setting.conf for lnetctl import. BTW the command I used to setup my configure for both cases is: modprobe lnet;lnetctl lnet configure;lnetctl import < ~/settings.conf net: o2ib1 nid: 10.37.202.11@o2ib1 status: up interfaces: 0: ib0 lnd tunables: peercredits_hiw: 62 map_on_demand: 16 concurrent_sends: 31 fmr_pool_size: 1280 fmr_flush_trigger: 1024 fmr_cache: 1 tunables: peer_timeout: 180 peer_credits: 63 peer_buffer_credits: 0 credits: 2560 CPT: " [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] " Here is the default settings when I remove my modprobe conf file with lnetctl export > setttings.conf net: o2ib1 nid: 10.37.202.11@o2ib1 status: up interfaces: 0: ib0 lnd tunables: peercredits_hiw: 7 map_on_demand: 16 concurrent_sends: 16 fmr_pool_size: 1280 fmr_flush_trigger: 1024 fmr_cache: 1 As you can see peercredits_hiw and concurrent_sends is set to what I want. Any ideas why?

          I don't think multi-rail will fix this. Customers may want to adjust the peer_credit value per NI using DLC even with multi-rail.

          doug Doug Oucharek (Inactive) added a comment - I don't think multi-rail will fix this. Customers may want to adjust the peer_credit value per NI using DLC even with multi-rail.

          Will this be meant mostly for back porting since multi-rail fixes this.

          simmonsja James A Simmons added a comment - Will this be meant mostly for back porting since multi-rail fixes this.

          Doug Oucharek (doug.s.oucharek@intel.com) uploaded a new patch: http://review.whamcloud.com/21948
          Subject: LU-8507 lnet: Enable setting per NI peer_credits
          Project: fs/lustre-release
          Branch: master
          Current Patch Set: 1
          Commit: 54959518d88190ebccf3a1737344c6579a998842

          gerrit Gerrit Updater added a comment - Doug Oucharek (doug.s.oucharek@intel.com) uploaded a new patch: http://review.whamcloud.com/21948 Subject: LU-8507 lnet: Enable setting per NI peer_credits Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 54959518d88190ebccf3a1737344c6579a998842

          People

            doug Doug Oucharek (Inactive)
            doug Doug Oucharek (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: