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

Dynamic LNet Config Main Development Work

Details

    • New Feature
    • Resolution: Fixed
    • Major
    • Lustre 2.7.0
    • Lustre 2.6.0
    • None
    • 5798

    Description

      This ticket has been created to track the main development work for the Dynamic LNet Config project.

      Attachments

        1. dlc_api.patch
          14 kB
        2. DLC_FTP.docx
          157 kB
        3. DLC_User_doc.pdf
          101 kB
        4. Dynamic LNet Config.pdf
          55 kB
        5. Dynamic LNet Config Test Plan.pdf
          293 kB
        6. l_dlc.patch
          5 kB

        Issue Links

          Activity

            [LU-2456] Dynamic LNet Config Main Development Work

            Landed in 2.7

            ashehata Amir Shehata (Inactive) added a comment - Landed in 2.7
            sarah Sarah Liu added a comment -

            Test plan attached is dated, please update the document.

            sarah Sarah Liu added a comment - Test plan attached is dated, please update the document.

            Ticket LU-5712 was created to look at creating a new LGPL library from the parts of libcfs (GPL) used by this feature.

            doug Doug Oucharek (Inactive) added a comment - Ticket LU-5712 was created to look at creating a new LGPL library from the parts of libcfs (GPL) used by this feature.

            Ticket LU-5705 was created to discuss lctl versus lnetctl

            simmonsja James A Simmons added a comment - Ticket LU-5705 was created to discuss lctl versus lnetctl

            One question that came up at LAD last week was why the lnetctl functionality was not (also) available via lctl? Like the other LNet-specific commands that are already available via lctl, these commands could also be added just by adding them to the lctl parser.

            It is still desirable to have a standalone lnetctl command for the systems that are using only LNet (there are a few).

            The stated benefit of having these new commands in lctl is that this reduces the number of binaries that need to be installed on the compute nodes, which try to have a minimal memory/space footprint.

            That isn't a requirement for landing, but rather an enhancement request from the end users.

            adilger Andreas Dilger added a comment - One question that came up at LAD last week was why the lnetctl functionality was not (also) available via lctl ? Like the other LNet-specific commands that are already available via lctl, these commands could also be added just by adding them to the lctl parser. It is still desirable to have a standalone lnetctl command for the systems that are using only LNet (there are a few). The stated benefit of having these new commands in lctl is that this reduces the number of binaries that need to be installed on the compute nodes, which try to have a minimal memory/space footprint. That isn't a requirement for landing, but rather an enhancement request from the end users.

            lnetctl utility has the same work flow as the ip utility. The only difference is that the infrastructure I was asked to use for the utility allows interactive mode, and the patter "help <cmd>" in interactive mode. However, that infrastructure doesn't support the pattern "help <cmd> <subcmd>" readily.

            The way it works:

            lnetctl > help set
            set: set {tiny_buffers | small_buffers | large_buffers | routing}
            
            lnetctl > set tiny_buffers help
            set tiny_buffers: set tiny routing buffers
                    VALUE must be greater than 0
            

            so help <cmd> gives the first level of help. To get help on subsequent commands, you put the "help" keyword after the subcommand.

            If you run directly from the command line, the output would look like this:

            [root@rt1 lutfTMP]# lnetctl help
            Available commands are:
                    lnet
                    route
                    net
                    routing
                    set
                    import
                    export
                    stats
                    peer_credits
                    help
                    exit
                    quit
            For more help type: help command-name
            [root@rt1 lutfTMP]# lnetctl route help
            route add: add a route
                    --net: net name (ex tcp0)
                    --gateway: gateway nid (ex 10.1.1.2@tcp)
                    --hop: number to final destination (1 < hops < 255)
                    --priority: priority of route (0 - highest prio
            
            route del: delete a route
                    --net: net name (ex tcp0)
                    --gateway: gateway nid (ex 10.1.1.2@tcp)
            
            route show: show routes
                    --net: net name (ex tcp0) to filter on
                    --gateway: gateway nid (ex 10.1.1.2@tcp) to filter on
                    --hop: number to final destination (1 < hops < 255) to filter on
                    --priority: priority of route (0 - highest prio to filter on
                    --detail: display detailed output per route
            
            route help: display this help
            
            [root@rt1 lutfTMP]# lnetctl route show help
            route show: show routes
                    --net: net name (ex tcp0) to filter on
                    --gateway: gateway nid (ex 10.1.1.2@tcp) to filter on
                    --hop: number to final destination (1 < hops < 255) to filter on
                    --priority: priority of route (0 - highest prio to filter on
                    --detail: display detailed output per route
            
            ashehata Amir Shehata (Inactive) added a comment - lnetctl utility has the same work flow as the ip utility. The only difference is that the infrastructure I was asked to use for the utility allows interactive mode, and the patter "help <cmd>" in interactive mode. However, that infrastructure doesn't support the pattern "help <cmd> <subcmd>" readily. The way it works: lnetctl > help set set: set {tiny_buffers | small_buffers | large_buffers | routing} lnetctl > set tiny_buffers help set tiny_buffers: set tiny routing buffers VALUE must be greater than 0 so help <cmd> gives the first level of help. To get help on subsequent commands, you put the "help" keyword after the subcommand. If you run directly from the command line, the output would look like this: [root@rt1 lutfTMP]# lnetctl help Available commands are: lnet route net routing set import export stats peer_credits help exit quit For more help type: help command-name [root@rt1 lutfTMP]# lnetctl route help route add: add a route --net: net name (ex tcp0) --gateway: gateway nid (ex 10.1.1.2@tcp) --hop: number to final destination (1 < hops < 255) --priority: priority of route (0 - highest prio route del: delete a route --net: net name (ex tcp0) --gateway: gateway nid (ex 10.1.1.2@tcp) route show: show routes --net: net name (ex tcp0) to filter on --gateway: gateway nid (ex 10.1.1.2@tcp) to filter on --hop: number to final destination (1 < hops < 255) to filter on --priority: priority of route (0 - highest prio to filter on --detail: display detailed output per route route help: display this help [root@rt1 lutfTMP]# lnetctl route show help route show: show routes --net: net name (ex tcp0) to filter on --gateway: gateway nid (ex 10.1.1.2@tcp) to filter on --hop: number to final destination (1 < hops < 255) to filter on --priority: priority of route (0 - highest prio to filter on --detail: display detailed output per route

            I have been testing this the utilities and I saw this:

            lnetctl > help set
            set: set

            {tiny_buffers | small_buffers | large_buffers | routing}

            lnetctl > help set large_buffers
            setlarge_buffers: Unknown command.

            Is this correct behavior?

            simmonsja James A Simmons added a comment - I have been testing this the utilities and I saw this: lnetctl > help set set: set {tiny_buffers | small_buffers | large_buffers | routing} lnetctl > help set large_buffers setlarge_buffers: Unknown command. Is this correct behavior?
            simmonsja James A Simmons added a comment - http://review.whamcloud.com/#/c/9830 http://review.whamcloud.com/#/c/9831 http://review.whamcloud.com/#/c/9832 http://review.whamcloud.com/#/c/8021 http://review.whamcloud.com/#/c/8022 http://review.whamcloud.com/#/c/8023 http://review.whamcloud.com/#/c/8025 http://review.whamcloud.com/#/c/8026 http://review.whamcloud.com/#/c/8027 http://review.whamcloud.com/#/c/8028

            suggestions about dlc APIs based on discussion in Miami

            liang Liang Zhen (Inactive) added a comment - suggestions about dlc APIs based on discussion in Miami
            liang Liang Zhen (Inactive) added a comment - comments for DLC patch http://review.whamcloud.com/#/c/9785/

            People

              ashehata Amir Shehata (Inactive)
              doug Doug Oucharek (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              20 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: