)]}'
{"openvswitch/templates/bin/_openvswitch-vswitchd.sh.tpl":[{"author":{"_account_id":28719,"name":"Phil Sphicas","email":"phil.sphicas@att.com","username":"ps3910"},"change_message_id":"04386ba7184b507d4823d1c77d0627d964522e4c","unresolved":false,"context_lines":[{"line_number":85,"context_line":"      # find the system CPUs that do NOT appear in the isolcpus list"},{"line_number":86,"context_line":"      podcpus\u003d$(comm -2 -3 \u003c(echo \"$syscpus\") \u003c(echo \"$isocpus\") | tr \u0027 \u0027 \u0027\\n\u0027)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"      # resulting cpuset"},{"line_number":89,"context_line":"      cpuset\u003d$(comm -12 \u003c(echo \"$cpumask\") \u003c(echo \"$podcpus\"))"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":92,"context_line":"      CGROUPS\u003d\"\""}],"source_content_type":"text/x-smarty","patch_set":1,"id":"7faddb67_8ac12b83","line":89,"range":{"start_line":88,"start_character":0,"end_line":89,"end_character":62},"updated":"2019-08-30 01:03:15.000000000","message":"I think actually we want the union of what is not-blocked by isolcpus and what is allowed by ovs-dpdk masks:\n\n    ovs_dpdk_cpus\u003d$(comm -12 \u003c(echo \"$cpumask\") \u003c(echo \"$syscpus\")\n\n    cpuset\u003d$(echo \"$ovs_dpdk_cpus\" \"$podcpus\" | sort -u)","commit_id":"1aca2a0ecfe3207120156634daa5ccbc8041bb5c"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"34d0a0ffa5afa3c9bc205e702c06f73fb2a69868","unresolved":false,"context_lines":[{"line_number":85,"context_line":"      # find the system CPUs that do NOT appear in the isolcpus list"},{"line_number":86,"context_line":"      podcpus\u003d$(comm -2 -3 \u003c(echo \"$syscpus\") \u003c(echo \"$isocpus\") | tr \u0027 \u0027 \u0027\\n\u0027)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"      # resulting cpuset"},{"line_number":89,"context_line":"      cpuset\u003d$(comm -12 \u003c(echo \"$cpumask\") \u003c(echo \"$podcpus\"))"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":92,"context_line":"      CGROUPS\u003d\"\""}],"source_content_type":"text/x-smarty","patch_set":1,"id":"7faddb67_c2b05f00","line":89,"range":{"start_line":88,"start_character":0,"end_line":89,"end_character":62},"in_reply_to":"7faddb67_8ac12b83","updated":"2019-09-03 15:14:22.000000000","message":"Done","commit_id":"1aca2a0ecfe3207120156634daa5ccbc8041bb5c"},{"author":{"_account_id":28719,"name":"Phil Sphicas","email":"phil.sphicas@att.com","username":"ps3910"},"change_message_id":"b85e2182059ca2b5e806a56f3989af17c5fcd0e1","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":92,"context_line":"      CGROUPS\u003d\"\""},{"line_number":93,"context_line":"      for CGROUP in cpu cpuset; do"},{"line_number":94,"context_line":"        if [ -d /sys/fs/cgroup/${CGROUP} ]; then"},{"line_number":95,"context_line":"          CGROUPS+\u003d\"${CGROUP},\""},{"line_number":96,"context_line":"        fi"},{"line_number":97,"context_line":"      done"},{"line_number":98,"context_line":"      cgcreate -g ${CGROUPS%,}:/osh-openvswitch"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"      target_mem\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.mem\""},{"line_number":101,"context_line":"      target_cpus\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.cpus\""}],"source_content_type":"text/x-smarty","patch_set":1,"id":"7faddb67_aab0a7fe","line":98,"range":{"start_line":93,"start_character":0,"end_line":98,"end_character":47},"updated":"2019-08-30 01:23:01.000000000","message":"We could skip installing cgroup-tools and get away with:\n\n    mkdir -p /sys/fs/cgroup/cpuset/osh-openvswitch","commit_id":"1aca2a0ecfe3207120156634daa5ccbc8041bb5c"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"34d0a0ffa5afa3c9bc205e702c06f73fb2a69868","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":92,"context_line":"      CGROUPS\u003d\"\""},{"line_number":93,"context_line":"      for CGROUP in cpu cpuset; do"},{"line_number":94,"context_line":"        if [ -d /sys/fs/cgroup/${CGROUP} ]; then"},{"line_number":95,"context_line":"          CGROUPS+\u003d\"${CGROUP},\""},{"line_number":96,"context_line":"        fi"},{"line_number":97,"context_line":"      done"},{"line_number":98,"context_line":"      cgcreate -g ${CGROUPS%,}:/osh-openvswitch"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"      target_mem\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.mem\""},{"line_number":101,"context_line":"      target_cpus\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.cpus\""}],"source_content_type":"text/x-smarty","patch_set":1,"id":"7faddb67_b7822051","line":98,"range":{"start_line":93,"start_character":0,"end_line":98,"end_character":47},"in_reply_to":"7faddb67_aab0a7fe","updated":"2019-09-03 15:14:22.000000000","message":"we still need to run via \u0027cgexec\u0027 which I think is also part of cgtools\n\nuser@vm:~$ cgexec\nThe program \u0027cgexec\u0027 is currently not installed. To run \u0027cgexec\u0027 please ask your administrator to install the package \u0027cgroup-tools\u0027","commit_id":"1aca2a0ecfe3207120156634daa5ccbc8041bb5c"},{"author":{"_account_id":28719,"name":"Phil Sphicas","email":"phil.sphicas@att.com","username":"ps3910"},"change_message_id":"04386ba7184b507d4823d1c77d0627d964522e4c","unresolved":false,"context_lines":[{"line_number":97,"context_line":"      done"},{"line_number":98,"context_line":"      cgcreate -g ${CGROUPS%,}:/osh-openvswitch"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"      target_mem\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.mem\""},{"line_number":101,"context_line":"      target_cpus\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.cpus\""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"      # Ensure the write target for the for cpuset.mem for the pod exists"}],"source_content_type":"text/x-smarty","patch_set":1,"id":"7faddb67_0ad69b50","line":100,"range":{"start_line":100,"start_character":63,"end_line":100,"end_character":66},"updated":"2019-08-30 01:03:15.000000000","message":"It is mems (sorry), I double-checked.","commit_id":"1aca2a0ecfe3207120156634daa5ccbc8041bb5c"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"34d0a0ffa5afa3c9bc205e702c06f73fb2a69868","unresolved":false,"context_lines":[{"line_number":97,"context_line":"      done"},{"line_number":98,"context_line":"      cgcreate -g ${CGROUPS%,}:/osh-openvswitch"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"      target_mem\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.mem\""},{"line_number":101,"context_line":"      target_cpus\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.cpus\""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"      # Ensure the write target for the for cpuset.mem for the pod exists"}],"source_content_type":"text/x-smarty","patch_set":1,"id":"7faddb67_0aa53bb5","line":100,"range":{"start_line":100,"start_character":63,"end_line":100,"end_character":66},"in_reply_to":"7faddb67_0ad69b50","updated":"2019-09-03 15:14:22.000000000","message":"Done","commit_id":"1aca2a0ecfe3207120156634daa5ccbc8041bb5c"},{"author":{"_account_id":28719,"name":"Phil Sphicas","email":"phil.sphicas@att.com","username":"ps3910"},"change_message_id":"04386ba7184b507d4823d1c77d0627d964522e4c","unresolved":false,"context_lines":[{"line_number":103,"context_line":"      # Ensure the write target for the for cpuset.mem for the pod exists"},{"line_number":104,"context_line":"      if [ -f \"$target_mem\" \u0026\u0026 -f \"$target_cpus\" ]; then"},{"line_number":105,"context_line":"        # Write cpuset.mem for pod"},{"line_number":106,"context_line":"        echo 0 \u003e \"$target_mem\""},{"line_number":107,"context_line":"        # Write cpuset.cpus for pod"},{"line_number":108,"context_line":"        echo $cpuset | tr \u0027 \u0027 \u0027,\u0027 \u003e \"$target_cpus\""},{"line_number":109,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":1,"id":"7faddb67_6ac4ef92","line":106,"range":{"start_line":106,"start_character":8,"end_line":106,"end_character":14},"updated":"2019-08-30 01:03:15.000000000","message":"We actually should copy the default value here:\n\n    cat /sys/fs/cgroup/cpuset/cpuset.mems \u003e /sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.mems","commit_id":"1aca2a0ecfe3207120156634daa5ccbc8041bb5c"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"34d0a0ffa5afa3c9bc205e702c06f73fb2a69868","unresolved":false,"context_lines":[{"line_number":103,"context_line":"      # Ensure the write target for the for cpuset.mem for the pod exists"},{"line_number":104,"context_line":"      if [ -f \"$target_mem\" \u0026\u0026 -f \"$target_cpus\" ]; then"},{"line_number":105,"context_line":"        # Write cpuset.mem for pod"},{"line_number":106,"context_line":"        echo 0 \u003e \"$target_mem\""},{"line_number":107,"context_line":"        # Write cpuset.cpus for pod"},{"line_number":108,"context_line":"        echo $cpuset | tr \u0027 \u0027 \u0027,\u0027 \u003e \"$target_cpus\""},{"line_number":109,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":1,"id":"7faddb67_ca83a302","line":106,"range":{"start_line":106,"start_character":8,"end_line":106,"end_character":14},"in_reply_to":"7faddb67_6ac4ef92","updated":"2019-09-03 15:14:22.000000000","message":"Done","commit_id":"1aca2a0ecfe3207120156634daa5ccbc8041bb5c"},{"author":{"_account_id":28719,"name":"Phil Sphicas","email":"phil.sphicas@att.com","username":"ps3910"},"change_message_id":"34a7abee787f18a3fbfdacc560ff22beb37b2078","unresolved":false,"context_lines":[{"line_number":89,"context_line":"      # resulting cpuset"},{"line_number":90,"context_line":"      cpuset\u003d$(echo \"$ovs_dpdk_cpus\" \"$podcpus\" | sort -u)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":93,"context_line":"      CGROUPS\u003d\"\""},{"line_number":94,"context_line":"      for CGROUP in cpu cpuset; do"},{"line_number":95,"context_line":"        if [ -d /sys/fs/cgroup/${CGROUP} ]; then"},{"line_number":96,"context_line":"          CGROUPS+\u003d\"${CGROUP},\""},{"line_number":97,"context_line":"        fi"},{"line_number":98,"context_line":"      done"},{"line_number":99,"context_line":"      cgcreate -g ${CGROUPS%,}:/osh-openvswitch"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"      target_mems\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.mems\""},{"line_number":102,"context_line":"      target_cpus\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.cpus\""}],"source_content_type":"text/x-smarty","patch_set":2,"id":"7faddb67_023090e8","line":99,"range":{"start_line":92,"start_character":0,"end_line":99,"end_character":47},"updated":"2019-09-03 15:50:12.000000000","message":"skip cpu, and just use mkdir\n\n    mkdir -p /sys/fs/cgroup/cpuset/osh-openvswitch","commit_id":"78532cf29eb44f9f07b6359afe3c0217f22864b7"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"0cc59266673ed2080b492a534df2782042789457","unresolved":false,"context_lines":[{"line_number":89,"context_line":"      # resulting cpuset"},{"line_number":90,"context_line":"      cpuset\u003d$(echo \"$ovs_dpdk_cpus\" \"$podcpus\" | sort -u)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":93,"context_line":"      CGROUPS\u003d\"\""},{"line_number":94,"context_line":"      for CGROUP in cpu cpuset; do"},{"line_number":95,"context_line":"        if [ -d /sys/fs/cgroup/${CGROUP} ]; then"},{"line_number":96,"context_line":"          CGROUPS+\u003d\"${CGROUP},\""},{"line_number":97,"context_line":"        fi"},{"line_number":98,"context_line":"      done"},{"line_number":99,"context_line":"      cgcreate -g ${CGROUPS%,}:/osh-openvswitch"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"      target_mems\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.mems\""},{"line_number":102,"context_line":"      target_cpus\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.cpus\""}],"source_content_type":"text/x-smarty","patch_set":2,"id":"7faddb67_e8e0b229","line":99,"range":{"start_line":92,"start_character":0,"end_line":99,"end_character":47},"in_reply_to":"7faddb67_023090e8","updated":"2019-09-03 20:24:04.000000000","message":"Done","commit_id":"78532cf29eb44f9f07b6359afe3c0217f22864b7"},{"author":{"_account_id":28719,"name":"Phil Sphicas","email":"phil.sphicas@att.com","username":"ps3910"},"change_message_id":"34a7abee787f18a3fbfdacc560ff22beb37b2078","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        # Write cpuset.cpus for pod"},{"line_number":109,"context_line":"        echo $cpuset | tr \u0027 \u0027 \u0027,\u0027 \u003e \"$target_cpus\""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        CGEXEC_CMD_SUBSTR\u003d\"cgexec -g ${CGROUPS%,}:/osh-openvswitch systemd-run --scope --slice\u003dsystem\""},{"line_number":112,"context_line":"      else"},{"line_number":113,"context_line":"        echo \"ERROR: Could not find write target for either cpuset.mems: $target_mems or cpuset.cpus: $target_cpus\""},{"line_number":114,"context_line":"      fi"}],"source_content_type":"text/x-smarty","patch_set":2,"id":"7faddb67_17ff7402","line":111,"range":{"start_line":111,"start_character":0,"end_line":111,"end_character":102},"updated":"2019-09-03 15:50:12.000000000","message":"add the current task to the newly created cgroup\n\n    echo $$ \u003e /sys/fs/cgroup/cpuset/osh-openvswitch/tasks","commit_id":"78532cf29eb44f9f07b6359afe3c0217f22864b7"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"0cc59266673ed2080b492a534df2782042789457","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        # Write cpuset.cpus for pod"},{"line_number":109,"context_line":"        echo $cpuset | tr \u0027 \u0027 \u0027,\u0027 \u003e \"$target_cpus\""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        CGEXEC_CMD_SUBSTR\u003d\"cgexec -g ${CGROUPS%,}:/osh-openvswitch systemd-run --scope --slice\u003dsystem\""},{"line_number":112,"context_line":"      else"},{"line_number":113,"context_line":"        echo \"ERROR: Could not find write target for either cpuset.mems: $target_mems or cpuset.cpus: $target_cpus\""},{"line_number":114,"context_line":"      fi"}],"source_content_type":"text/x-smarty","patch_set":2,"id":"7faddb67_a8d07a54","line":111,"range":{"start_line":111,"start_character":0,"end_line":111,"end_character":102},"in_reply_to":"7faddb67_17ff7402","updated":"2019-09-03 20:24:04.000000000","message":"Done","commit_id":"78532cf29eb44f9f07b6359afe3c0217f22864b7"},{"author":{"_account_id":28719,"name":"Phil Sphicas","email":"phil.sphicas@att.com","username":"ps3910"},"change_message_id":"34a7abee787f18a3fbfdacc560ff22beb37b2078","unresolved":false,"context_lines":[{"line_number":114,"context_line":"      fi"},{"line_number":115,"context_line":"  fi"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"  exec ${CGEXEC_CMD_SUBSTR} /usr/sbin/ovs-vswitchd unix:${OVS_SOCKET} \\"},{"line_number":118,"context_line":"          -vconsole:emer \\"},{"line_number":119,"context_line":"          -vconsole:err \\"},{"line_number":120,"context_line":"          -vconsole:info \\"}],"source_content_type":"text/x-smarty","patch_set":2,"id":"7faddb67_8203200c","line":117,"range":{"start_line":117,"start_character":7,"end_line":117,"end_character":27},"updated":"2019-09-03 15:50:12.000000000","message":"remove","commit_id":"78532cf29eb44f9f07b6359afe3c0217f22864b7"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"0cc59266673ed2080b492a534df2782042789457","unresolved":false,"context_lines":[{"line_number":114,"context_line":"      fi"},{"line_number":115,"context_line":"  fi"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"  exec ${CGEXEC_CMD_SUBSTR} /usr/sbin/ovs-vswitchd unix:${OVS_SOCKET} \\"},{"line_number":118,"context_line":"          -vconsole:emer \\"},{"line_number":119,"context_line":"          -vconsole:err \\"},{"line_number":120,"context_line":"          -vconsole:info \\"}],"source_content_type":"text/x-smarty","patch_set":2,"id":"7faddb67_88cb3ea2","line":117,"range":{"start_line":117,"start_character":7,"end_line":117,"end_character":27},"in_reply_to":"7faddb67_8203200c","updated":"2019-09-03 20:24:04.000000000","message":"Done","commit_id":"78532cf29eb44f9f07b6359afe3c0217f22864b7"},{"author":{"_account_id":28719,"name":"Phil Sphicas","email":"phil.sphicas@att.com","username":"ps3910"},"change_message_id":"54ab73cb6ea7a624164bb718eb01ff2a32256791","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    ovs-vsctl --db\u003dunix:${OVS_SOCKET} --no-wait set Open_vSwitch . other_config:vhost-sock-dir\u003d{{ .Values.conf.ovs_dpdk.vhostuser_socket_dir | quote }}"},{"line_number":65,"context_line":"    ovs-vsctl --db\u003dunix:${OVS_SOCKET} --no-wait set Open_vSwitch . other_config:dpdk-init\u003dtrue"},{"line_number":66,"context_line":"{{- end }}"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"  # get the list of CPUs the kernel should isolate from scheduling"},{"line_number":69,"context_line":"  isocpu\u003d$(grep -oE \u0027isolcpus\u003d[-0-9,]+\u0027 /proc/cmdline | awk -F \u0027\u003d\u0027 \u0027{print $2}\u0027)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"  # No need to create the cgroup if isolcpus is not in use or pmd_cpu_mask is not set."},{"line_number":72,"context_line":"  if [[ -n ${PMD_CPU_MASK} \u0026\u0026 -n \"$isocpu\" ]]; then"},{"line_number":73,"context_line":"      if [[ -z ${LCORE_MASK} ]]; then"},{"line_number":74,"context_line":"        LCORE_MASK\u003d\"0x0\""},{"line_number":75,"context_line":"      fi"},{"line_number":76,"context_line":"      # expand the isolcpu range format into a discrete list"},{"line_number":77,"context_line":"      isocpus\u003d$(eval \"echo $(echo -n $isocpu | sed -e \u0027s/-/../g\u0027 | sed -e \u0027s/^/{/\u0027 | sed -e \u0027s/,/} {/g\u0027 | sed -e \u0027s/$/}/\u0027)\" | xargs -n 1 echo | sort)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"      # get the list of CPUs in the system"},{"line_number":80,"context_line":"      syscpus\u003d$(grep -oE $\u0027^processor\\t: [0-9]+$\u0027 /proc/cpuinfo | tr -d $\u0027 \\t\u0027 | awk -F: \u0027{print$2}\u0027 | sort)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"      # cpu mask"},{"line_number":83,"context_line":"      cpumask\u003d$(python -c \"print(\u0027\\n\u0027.join([str(i) for i, v in enumerate(bin(int(\u0027${PMD_CPU_MASK}\u0027,16) | int(\u0027${LCORE_MASK}\u0027,16))[:1:-1]) if v\u003d\u003d\u00271\u0027]))\" | sort)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"      # find the system CPUs that do NOT appear in the isolcpus list"},{"line_number":86,"context_line":"      podcpus\u003d$(comm -2 -3 \u003c(echo \"$syscpus\") \u003c(echo \"$isocpus\") | tr \u0027 \u0027 \u0027\\n\u0027)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"      ovs_dpdk_cpus\u003d$(comm -12 \u003c(echo \"$cpumask\") \u003c(echo \"$syscpus\"))"},{"line_number":89,"context_line":"      # resulting cpuset"},{"line_number":90,"context_line":"      cpuset\u003d$(echo \"$ovs_dpdk_cpus\" \"$podcpus\" | sort -u)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":93,"context_line":"      mkdir -p /sys/fs/cgroup/cpuset/osh-openvswitch"},{"line_number":94,"context_line":"      target_mems\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.mems\""},{"line_number":95,"context_line":"      target_cpus\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.cpus\""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"      # Ensure the write target for the for cpuset.mem for the pod exists"},{"line_number":98,"context_line":"      if [ -f \"$target_mems\" \u0026\u0026 -f \"$target_cpus\" ]; then"},{"line_number":99,"context_line":"        # Write cpuset.mem for pod"},{"line_number":100,"context_line":"        cat /sys/fs/cgroup/cpuset/cpuset.mems \u003e \"$target_mems\""},{"line_number":101,"context_line":"        # Write cpuset.cpus for pod"},{"line_number":102,"context_line":"        echo $cpuset | tr \u0027 \u0027 \u0027,\u0027 \u003e \"$target_cpus\""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        echo $$ \u003e /sys/fs/cgroup/cpuset/osh-openvswitch/tasks"},{"line_number":105,"context_line":"      else"},{"line_number":106,"context_line":"        echo \"ERROR: Could not find write target for either cpuset.mems: $target_mems or cpuset.cpus: $target_cpus\""},{"line_number":107,"context_line":"      fi"},{"line_number":108,"context_line":"  fi"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  exec /usr/sbin/ovs-vswitchd unix:${OVS_SOCKET} \\"},{"line_number":111,"context_line":"          -vconsole:emer \\"}],"source_content_type":"text/x-smarty","patch_set":3,"id":"7faddb67_c8a4d6bb","line":108,"range":{"start_line":66,"start_character":0,"end_line":108,"end_character":4},"updated":"2019-09-03 20:35:02.000000000","message":"do we want to include this entire block in the big \"if\"?\n\n    {{- if .Values.conf.ovs_dpdk.enabled }}","commit_id":"1e5947446689aae15844f63d51d74997f4925201"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"4580d8c3e0e44842fb926fe6a1e0aea22fb21a11","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    ovs-vsctl --db\u003dunix:${OVS_SOCKET} --no-wait set Open_vSwitch . other_config:vhost-sock-dir\u003d{{ .Values.conf.ovs_dpdk.vhostuser_socket_dir | quote }}"},{"line_number":65,"context_line":"    ovs-vsctl --db\u003dunix:${OVS_SOCKET} --no-wait set Open_vSwitch . other_config:dpdk-init\u003dtrue"},{"line_number":66,"context_line":"{{- end }}"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"  # get the list of CPUs the kernel should isolate from scheduling"},{"line_number":69,"context_line":"  isocpu\u003d$(grep -oE \u0027isolcpus\u003d[-0-9,]+\u0027 /proc/cmdline | awk -F \u0027\u003d\u0027 \u0027{print $2}\u0027)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"  # No need to create the cgroup if isolcpus is not in use or pmd_cpu_mask is not set."},{"line_number":72,"context_line":"  if [[ -n ${PMD_CPU_MASK} \u0026\u0026 -n \"$isocpu\" ]]; then"},{"line_number":73,"context_line":"      if [[ -z ${LCORE_MASK} ]]; then"},{"line_number":74,"context_line":"        LCORE_MASK\u003d\"0x0\""},{"line_number":75,"context_line":"      fi"},{"line_number":76,"context_line":"      # expand the isolcpu range format into a discrete list"},{"line_number":77,"context_line":"      isocpus\u003d$(eval \"echo $(echo -n $isocpu | sed -e \u0027s/-/../g\u0027 | sed -e \u0027s/^/{/\u0027 | sed -e \u0027s/,/} {/g\u0027 | sed -e \u0027s/$/}/\u0027)\" | xargs -n 1 echo | sort)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"      # get the list of CPUs in the system"},{"line_number":80,"context_line":"      syscpus\u003d$(grep -oE $\u0027^processor\\t: [0-9]+$\u0027 /proc/cpuinfo | tr -d $\u0027 \\t\u0027 | awk -F: \u0027{print$2}\u0027 | sort)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"      # cpu mask"},{"line_number":83,"context_line":"      cpumask\u003d$(python -c \"print(\u0027\\n\u0027.join([str(i) for i, v in enumerate(bin(int(\u0027${PMD_CPU_MASK}\u0027,16) | int(\u0027${LCORE_MASK}\u0027,16))[:1:-1]) if v\u003d\u003d\u00271\u0027]))\" | sort)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"      # find the system CPUs that do NOT appear in the isolcpus list"},{"line_number":86,"context_line":"      podcpus\u003d$(comm -2 -3 \u003c(echo \"$syscpus\") \u003c(echo \"$isocpus\") | tr \u0027 \u0027 \u0027\\n\u0027)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"      ovs_dpdk_cpus\u003d$(comm -12 \u003c(echo \"$cpumask\") \u003c(echo \"$syscpus\"))"},{"line_number":89,"context_line":"      # resulting cpuset"},{"line_number":90,"context_line":"      cpuset\u003d$(echo \"$ovs_dpdk_cpus\" \"$podcpus\" | sort -u)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":93,"context_line":"      mkdir -p /sys/fs/cgroup/cpuset/osh-openvswitch"},{"line_number":94,"context_line":"      target_mems\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.mems\""},{"line_number":95,"context_line":"      target_cpus\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.cpus\""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"      # Ensure the write target for the for cpuset.mem for the pod exists"},{"line_number":98,"context_line":"      if [ -f \"$target_mems\" \u0026\u0026 -f \"$target_cpus\" ]; then"},{"line_number":99,"context_line":"        # Write cpuset.mem for pod"},{"line_number":100,"context_line":"        cat /sys/fs/cgroup/cpuset/cpuset.mems \u003e \"$target_mems\""},{"line_number":101,"context_line":"        # Write cpuset.cpus for pod"},{"line_number":102,"context_line":"        echo $cpuset | tr \u0027 \u0027 \u0027,\u0027 \u003e \"$target_cpus\""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        echo $$ \u003e /sys/fs/cgroup/cpuset/osh-openvswitch/tasks"},{"line_number":105,"context_line":"      else"},{"line_number":106,"context_line":"        echo \"ERROR: Could not find write target for either cpuset.mems: $target_mems or cpuset.cpus: $target_cpus\""},{"line_number":107,"context_line":"      fi"},{"line_number":108,"context_line":"  fi"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  exec /usr/sbin/ovs-vswitchd unix:${OVS_SOCKET} \\"},{"line_number":111,"context_line":"          -vconsole:emer \\"}],"source_content_type":"text/x-smarty","patch_set":3,"id":"7faddb67_a88dda2a","line":108,"range":{"start_line":66,"start_character":0,"end_line":108,"end_character":4},"in_reply_to":"7faddb67_c8a4d6bb","updated":"2019-09-03 20:39:02.000000000","message":"Correct. That will be better","commit_id":"1e5947446689aae15844f63d51d74997f4925201"},{"author":{"_account_id":28719,"name":"Phil Sphicas","email":"phil.sphicas@att.com","username":"ps3910"},"change_message_id":"6829446402dda6f52ea05ec965c15c237ce1a2e6","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"      # find the system CPUs that do NOT appear in the isolcpus list"},{"line_number":85,"context_line":"      podcpus\u003d$(comm -2 -3 \u003c(echo \"$syscpus\") \u003c(echo \"$isocpus\") | tr \u0027 \u0027 \u0027\\n\u0027)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"      ovs_dpdk_cpus\u003d$(comm -12 \u003c(echo \"$cpumask\") \u003c(echo \"$syscpus\"))"},{"line_number":88,"context_line":"      # resulting cpuset"},{"line_number":89,"context_line":"      cpuset\u003d$(echo \"$ovs_dpdk_cpus\" \"$podcpus\" | sort -u)"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":4,"id":"5faad753_8aa2d099","line":87,"range":{"start_line":86,"start_character":0,"end_line":87,"end_character":6},"updated":"2019-09-10 00:28:19.000000000","message":"maybe add a comment about ovs_dpdk_cpus, like \"cpus allowed by pmd cpu mask and lcore mask\"?","commit_id":"f3b0ca290c57851b41b3b360f49180e75b0cf126"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"5d7b706134d96f4165ae08ee2e6dbc2529b4ab2d","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"      # find the system CPUs that do NOT appear in the isolcpus list"},{"line_number":85,"context_line":"      podcpus\u003d$(comm -2 -3 \u003c(echo \"$syscpus\") \u003c(echo \"$isocpus\") | tr \u0027 \u0027 \u0027\\n\u0027)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"      ovs_dpdk_cpus\u003d$(comm -12 \u003c(echo \"$cpumask\") \u003c(echo \"$syscpus\"))"},{"line_number":88,"context_line":"      # resulting cpuset"},{"line_number":89,"context_line":"      cpuset\u003d$(echo \"$ovs_dpdk_cpus\" \"$podcpus\" | sort -u)"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":4,"id":"5faad753_9b1c556b","line":87,"range":{"start_line":86,"start_character":0,"end_line":87,"end_character":6},"in_reply_to":"5faad753_8aa2d099","updated":"2019-09-10 15:03:32.000000000","message":"Done","commit_id":"f3b0ca290c57851b41b3b360f49180e75b0cf126"},{"author":{"_account_id":28719,"name":"Phil Sphicas","email":"phil.sphicas@att.com","username":"ps3910"},"change_message_id":"6829446402dda6f52ea05ec965c15c237ce1a2e6","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"      ovs_dpdk_cpus\u003d$(comm -12 \u003c(echo \"$cpumask\") \u003c(echo \"$syscpus\"))"},{"line_number":88,"context_line":"      # resulting cpuset"},{"line_number":89,"context_line":"      cpuset\u003d$(echo \"$ovs_dpdk_cpus\" \"$podcpus\" | sort -u)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":92,"context_line":"      mkdir -p /sys/fs/cgroup/cpuset/osh-openvswitch"}],"source_content_type":"text/x-smarty","patch_set":4,"id":"5faad753_6a743436","line":89,"range":{"start_line":89,"start_character":20,"end_line":89,"end_character":47},"updated":"2019-09-10 00:28:19.000000000","message":"This ends up putting two CPUs (the last ovs_dpdk_cpu and the first podcpu) on the same line. Easiest workaround might be:\n\n    cpuset\u003d$(echo $ovs_dpdk_cpus $podcpus | tr \u0027 \u0027 \u0027\\n\u0027 | sort -u)","commit_id":"f3b0ca290c57851b41b3b360f49180e75b0cf126"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"5d7b706134d96f4165ae08ee2e6dbc2529b4ab2d","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"      ovs_dpdk_cpus\u003d$(comm -12 \u003c(echo \"$cpumask\") \u003c(echo \"$syscpus\"))"},{"line_number":88,"context_line":"      # resulting cpuset"},{"line_number":89,"context_line":"      cpuset\u003d$(echo \"$ovs_dpdk_cpus\" \"$podcpus\" | sort -u)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":92,"context_line":"      mkdir -p /sys/fs/cgroup/cpuset/osh-openvswitch"}],"source_content_type":"text/x-smarty","patch_set":4,"id":"5faad753_bb17d145","line":89,"range":{"start_line":89,"start_character":20,"end_line":89,"end_character":47},"in_reply_to":"5faad753_6a743436","updated":"2019-09-10 15:03:32.000000000","message":"Done","commit_id":"f3b0ca290c57851b41b3b360f49180e75b0cf126"},{"author":{"_account_id":28719,"name":"Phil Sphicas","email":"phil.sphicas@att.com","username":"ps3910"},"change_message_id":"6829446402dda6f52ea05ec965c15c237ce1a2e6","unresolved":false,"context_lines":[{"line_number":94,"context_line":"      target_cpus\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.cpus\""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"      # Ensure the write target for the for cpuset.mem for the pod exists"},{"line_number":97,"context_line":"      if [ -f \"$target_mems\" \u0026\u0026 -f \"$target_cpus\" ]; then"},{"line_number":98,"context_line":"        # Write cpuset.mem for pod"},{"line_number":99,"context_line":"        cat /sys/fs/cgroup/cpuset/cpuset.mems \u003e \"$target_mems\""},{"line_number":100,"context_line":"        # Write cpuset.cpus for pod"}],"source_content_type":"text/x-smarty","patch_set":4,"id":"5faad753_2a94fc36","line":97,"range":{"start_line":97,"start_character":9,"end_line":97,"end_character":51},"updated":"2019-09-10 00:28:19.000000000","message":"needs to be double-brackets","commit_id":"f3b0ca290c57851b41b3b360f49180e75b0cf126"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"5d7b706134d96f4165ae08ee2e6dbc2529b4ab2d","unresolved":false,"context_lines":[{"line_number":94,"context_line":"      target_cpus\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.cpus\""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"      # Ensure the write target for the for cpuset.mem for the pod exists"},{"line_number":97,"context_line":"      if [ -f \"$target_mems\" \u0026\u0026 -f \"$target_cpus\" ]; then"},{"line_number":98,"context_line":"        # Write cpuset.mem for pod"},{"line_number":99,"context_line":"        cat /sys/fs/cgroup/cpuset/cpuset.mems \u003e \"$target_mems\""},{"line_number":100,"context_line":"        # Write cpuset.cpus for pod"}],"source_content_type":"text/x-smarty","patch_set":4,"id":"5faad753_7b2b9981","line":97,"range":{"start_line":97,"start_character":9,"end_line":97,"end_character":51},"in_reply_to":"5faad753_2a94fc36","updated":"2019-09-10 15:03:32.000000000","message":"Done","commit_id":"f3b0ca290c57851b41b3b360f49180e75b0cf126"},{"author":{"_account_id":29668,"name":"cheng li","email":"cheng1.li@intel.com","username":"chengli3"},"change_message_id":"0bb003abecd8b5fcadcd4203cc09b6d855344a4d","unresolved":false,"context_lines":[{"line_number":68,"context_line":"  isocpu\u003d$(grep -oE \u0027isolcpus\u003d[-0-9,]+\u0027 /proc/cmdline | awk -F \u0027\u003d\u0027 \u0027{print $2}\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"  # No need to create the cgroup if isolcpus is not in use or pmd_cpu_mask is not set."},{"line_number":71,"context_line":"  if [[ -n ${PMD_CPU_MASK} \u0026\u0026 -n \"$isocpu\" ]]; then"},{"line_number":72,"context_line":"      if [[ -z ${LCORE_MASK} ]]; then"},{"line_number":73,"context_line":"        LCORE_MASK\u003d\"0x0\""},{"line_number":74,"context_line":"      fi"},{"line_number":75,"context_line":"      # expand the isolcpu range format into a discrete list"},{"line_number":76,"context_line":"      isocpus\u003d$(eval \"echo $(echo -n $isocpu | sed -e \u0027s/-/../g\u0027 | sed -e \u0027s/^/{/\u0027 | sed -e \u0027s/,/} {/g\u0027 | sed -e \u0027s/$/}/\u0027)\" | xargs -n 1 echo | sort)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"      # get the list of CPUs in the system"},{"line_number":79,"context_line":"      syscpus\u003d$(grep -oE $\u0027^processor\\t: [0-9]+$\u0027 /proc/cpuinfo | tr -d $\u0027 \\t\u0027 | awk -F: \u0027{print$2}\u0027 | sort)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"      # cpu mask"},{"line_number":82,"context_line":"      cpumask\u003d$(python -c \"print(\u0027\\n\u0027.join([str(i) for i, v in enumerate(bin(int(\u0027${PMD_CPU_MASK}\u0027,16) | int(\u0027${LCORE_MASK}\u0027,16))[:1:-1]) if v\u003d\u003d\u00271\u0027]))\" | sort)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"      # find the system CPUs that do NOT appear in the isolcpus list"},{"line_number":85,"context_line":"      podcpus\u003d$(comm -2 -3 \u003c(echo \"$syscpus\") \u003c(echo \"$isocpus\") | tr \u0027 \u0027 \u0027\\n\u0027)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"      # CPUs allowed by pmd_cpu_mask and lcore_mask"},{"line_number":88,"context_line":"      ovs_dpdk_cpus\u003d$(comm -12 \u003c(echo \"$cpumask\") \u003c(echo \"$syscpus\"))"},{"line_number":89,"context_line":"      # resulting cpuset"},{"line_number":90,"context_line":"      cpuset\u003d$(echo \"$ovs_dpdk_cpus\" \"$podcpus\" | tr \u0027 \u0027 \u0027\\n\u0027 | sort -u)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":93,"context_line":"      mkdir -p /sys/fs/cgroup/cpuset/osh-openvswitch"},{"line_number":94,"context_line":"      target_mems\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.mems\""},{"line_number":95,"context_line":"      target_cpus\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.cpus\""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"      # Ensure the write target for the for cpuset.mem for the pod exists"},{"line_number":98,"context_line":"      if [[ -f \"$target_mems\" \u0026\u0026 -f \"$target_cpus\" ]]; then"},{"line_number":99,"context_line":"        # Write cpuset.mem for pod"},{"line_number":100,"context_line":"        cat /sys/fs/cgroup/cpuset/cpuset.mems \u003e \"$target_mems\""},{"line_number":101,"context_line":"        # Write cpuset.cpus for pod"},{"line_number":102,"context_line":"        echo $cpuset | tr \u0027 \u0027 \u0027,\u0027 \u003e \"$target_cpus\""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        echo $$ \u003e /sys/fs/cgroup/cpuset/osh-openvswitch/tasks"},{"line_number":105,"context_line":"      else"},{"line_number":106,"context_line":"        echo \"ERROR: Could not find write target for either cpuset.mems: $target_mems or cpuset.cpus: $target_cpus\""},{"line_number":107,"context_line":"      fi"},{"line_number":108,"context_line":"  fi"},{"line_number":109,"context_line":"{{- end }}"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"  exec /usr/sbin/ovs-vswitchd unix:${OVS_SOCKET} \\"}],"source_content_type":"text/x-smarty","patch_set":5,"id":"5faad753_6e31880b","line":108,"range":{"start_line":71,"start_character":2,"end_line":108,"end_character":4},"updated":"2019-09-11 06:08:00.000000000","message":"Can we just add all the cores on the server to the cpuset? pmd_cpu_mask will choose the right ones from all the cores.","commit_id":"155205f1a3de3e763c75e8c99a2cc63e6ce4465b"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"610ffb21ff84d7ceda86a3cbae624f87d08bc1d1","unresolved":false,"context_lines":[{"line_number":68,"context_line":"  isocpu\u003d$(grep -oE \u0027isolcpus\u003d[-0-9,]+\u0027 /proc/cmdline | awk -F \u0027\u003d\u0027 \u0027{print $2}\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"  # No need to create the cgroup if isolcpus is not in use or pmd_cpu_mask is not set."},{"line_number":71,"context_line":"  if [[ -n ${PMD_CPU_MASK} \u0026\u0026 -n \"$isocpu\" ]]; then"},{"line_number":72,"context_line":"      if [[ -z ${LCORE_MASK} ]]; then"},{"line_number":73,"context_line":"        LCORE_MASK\u003d\"0x0\""},{"line_number":74,"context_line":"      fi"},{"line_number":75,"context_line":"      # expand the isolcpu range format into a discrete list"},{"line_number":76,"context_line":"      isocpus\u003d$(eval \"echo $(echo -n $isocpu | sed -e \u0027s/-/../g\u0027 | sed -e \u0027s/^/{/\u0027 | sed -e \u0027s/,/} {/g\u0027 | sed -e \u0027s/$/}/\u0027)\" | xargs -n 1 echo | sort)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"      # get the list of CPUs in the system"},{"line_number":79,"context_line":"      syscpus\u003d$(grep -oE $\u0027^processor\\t: [0-9]+$\u0027 /proc/cpuinfo | tr -d $\u0027 \\t\u0027 | awk -F: \u0027{print$2}\u0027 | sort)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"      # cpu mask"},{"line_number":82,"context_line":"      cpumask\u003d$(python -c \"print(\u0027\\n\u0027.join([str(i) for i, v in enumerate(bin(int(\u0027${PMD_CPU_MASK}\u0027,16) | int(\u0027${LCORE_MASK}\u0027,16))[:1:-1]) if v\u003d\u003d\u00271\u0027]))\" | sort)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"      # find the system CPUs that do NOT appear in the isolcpus list"},{"line_number":85,"context_line":"      podcpus\u003d$(comm -2 -3 \u003c(echo \"$syscpus\") \u003c(echo \"$isocpus\") | tr \u0027 \u0027 \u0027\\n\u0027)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"      # CPUs allowed by pmd_cpu_mask and lcore_mask"},{"line_number":88,"context_line":"      ovs_dpdk_cpus\u003d$(comm -12 \u003c(echo \"$cpumask\") \u003c(echo \"$syscpus\"))"},{"line_number":89,"context_line":"      # resulting cpuset"},{"line_number":90,"context_line":"      cpuset\u003d$(echo \"$ovs_dpdk_cpus\" \"$podcpus\" | tr \u0027 \u0027 \u0027\\n\u0027 | sort -u)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":93,"context_line":"      mkdir -p /sys/fs/cgroup/cpuset/osh-openvswitch"},{"line_number":94,"context_line":"      target_mems\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.mems\""},{"line_number":95,"context_line":"      target_cpus\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.cpus\""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"      # Ensure the write target for the for cpuset.mem for the pod exists"},{"line_number":98,"context_line":"      if [[ -f \"$target_mems\" \u0026\u0026 -f \"$target_cpus\" ]]; then"},{"line_number":99,"context_line":"        # Write cpuset.mem for pod"},{"line_number":100,"context_line":"        cat /sys/fs/cgroup/cpuset/cpuset.mems \u003e \"$target_mems\""},{"line_number":101,"context_line":"        # Write cpuset.cpus for pod"},{"line_number":102,"context_line":"        echo $cpuset | tr \u0027 \u0027 \u0027,\u0027 \u003e \"$target_cpus\""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        echo $$ \u003e /sys/fs/cgroup/cpuset/osh-openvswitch/tasks"},{"line_number":105,"context_line":"      else"},{"line_number":106,"context_line":"        echo \"ERROR: Could not find write target for either cpuset.mems: $target_mems or cpuset.cpus: $target_cpus\""},{"line_number":107,"context_line":"      fi"},{"line_number":108,"context_line":"  fi"},{"line_number":109,"context_line":"{{- end }}"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"  exec /usr/sbin/ovs-vswitchd unix:${OVS_SOCKET} \\"}],"source_content_type":"text/x-smarty","patch_set":5,"id":"5faad753_449fbfb3","line":108,"range":{"start_line":71,"start_character":2,"end_line":108,"end_character":4},"in_reply_to":"5faad753_6e31880b","updated":"2019-09-12 20:55:49.000000000","message":"Ok, I think that will be good. Will update the code","commit_id":"155205f1a3de3e763c75e8c99a2cc63e6ce4465b"},{"author":{"_account_id":29668,"name":"cheng li","email":"cheng1.li@intel.com","username":"chengli3"},"change_message_id":"84fa282e72d5d47605b77faa4b507a5ec0f490f8","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    ovs-vsctl --db\u003dunix:${OVS_SOCKET} --no-wait set Open_vSwitch . other_config:dpdk-init\u003dtrue"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"  # get the list of CPUs the kernel should isolate from scheduling"},{"line_number":67,"context_line":"  isocpu\u003d$(grep -oE \u0027isolcpus\u003d[-0-9,]+\u0027 /proc/cmdline | awk -F \u0027\u003d\u0027 \u0027{print $2}\u0027)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  # No need to create the cgroup if isolcpus is not in use or pmd_cpu_mask is not set."},{"line_number":70,"context_line":"  if [[ -n ${PMD_CPU_MASK} \u0026\u0026 -n \"$isocpu\" ]]; then"}],"source_content_type":"text/x-smarty","patch_set":7,"id":"5faad753_12d5641c","line":67,"range":{"start_line":67,"start_character":2,"end_line":67,"end_character":80},"updated":"2019-09-13 01:27:17.000000000","message":"may don\u0027t need to get the isolated cpu cores, because we don\u0027t use this parameter in this script.","commit_id":"f0c31f100681fe5633d406aa1e496e5d0d63cfb6"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"389f2e0d313124a801aaca7ec436610a453e8d6b","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    ovs-vsctl --db\u003dunix:${OVS_SOCKET} --no-wait set Open_vSwitch . other_config:dpdk-init\u003dtrue"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"  # get the list of CPUs the kernel should isolate from scheduling"},{"line_number":67,"context_line":"  isocpu\u003d$(grep -oE \u0027isolcpus\u003d[-0-9,]+\u0027 /proc/cmdline | awk -F \u0027\u003d\u0027 \u0027{print $2}\u0027)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  # No need to create the cgroup if isolcpus is not in use or pmd_cpu_mask is not set."},{"line_number":70,"context_line":"  if [[ -n ${PMD_CPU_MASK} \u0026\u0026 -n \"$isocpu\" ]]; then"}],"source_content_type":"text/x-smarty","patch_set":7,"id":"5faad753_7c07c183","line":67,"range":{"start_line":67,"start_character":2,"end_line":67,"end_character":80},"in_reply_to":"5faad753_12d5641c","updated":"2019-09-13 14:47:08.000000000","message":"Done","commit_id":"f0c31f100681fe5633d406aa1e496e5d0d63cfb6"},{"author":{"_account_id":28719,"name":"Phil Sphicas","email":"phil.sphicas@att.com","username":"ps3910"},"change_message_id":"d74a90545d14d14e38a6f584dfd4f7d746a3f44f","unresolved":false,"context_lines":[{"line_number":67,"context_line":"  isocpu\u003d$(grep -oE \u0027isolcpus\u003d[-0-9,]+\u0027 /proc/cmdline | awk -F \u0027\u003d\u0027 \u0027{print $2}\u0027)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  # No need to create the cgroup if isolcpus is not in use or pmd_cpu_mask is not set."},{"line_number":70,"context_line":"  if [[ -n ${PMD_CPU_MASK} \u0026\u0026 -n \"$isocpu\" ]]; then"},{"line_number":71,"context_line":"      # get the list of CPUs in the system"},{"line_number":72,"context_line":"      syscpus\u003d$(grep -oE $\u0027^processor\\t: [0-9]+$\u0027 /proc/cpuinfo | tr -d $\u0027 \\t\u0027 | awk -F: \u0027{print$2}\u0027 | sort)"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":7,"id":"5faad753_3cf069fd","line":70,"range":{"start_line":70,"start_character":27,"end_line":70,"end_character":42},"updated":"2019-09-13 14:40:10.000000000","message":"If we drop the isolcpus, maybe we could change this condition to:\n\n    if [[ -n ${PMD_CPU_MASK} || -n ${LCORE_MASK} ]]\n\n(and add LCORE_MASK\u003d back above)","commit_id":"f0c31f100681fe5633d406aa1e496e5d0d63cfb6"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"389f2e0d313124a801aaca7ec436610a453e8d6b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"  isocpu\u003d$(grep -oE \u0027isolcpus\u003d[-0-9,]+\u0027 /proc/cmdline | awk -F \u0027\u003d\u0027 \u0027{print $2}\u0027)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  # No need to create the cgroup if isolcpus is not in use or pmd_cpu_mask is not set."},{"line_number":70,"context_line":"  if [[ -n ${PMD_CPU_MASK} \u0026\u0026 -n \"$isocpu\" ]]; then"},{"line_number":71,"context_line":"      # get the list of CPUs in the system"},{"line_number":72,"context_line":"      syscpus\u003d$(grep -oE $\u0027^processor\\t: [0-9]+$\u0027 /proc/cpuinfo | tr -d $\u0027 \\t\u0027 | awk -F: \u0027{print$2}\u0027 | sort)"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":7,"id":"5faad753_dcd4b5eb","line":70,"range":{"start_line":70,"start_character":27,"end_line":70,"end_character":42},"in_reply_to":"5faad753_3cf069fd","updated":"2019-09-13 14:47:08.000000000","message":"Done","commit_id":"f0c31f100681fe5633d406aa1e496e5d0d63cfb6"},{"author":{"_account_id":29668,"name":"cheng li","email":"cheng1.li@intel.com","username":"chengli3"},"change_message_id":"84fa282e72d5d47605b77faa4b507a5ec0f490f8","unresolved":false,"context_lines":[{"line_number":72,"context_line":"      syscpus\u003d$(grep -oE $\u0027^processor\\t: [0-9]+$\u0027 /proc/cpuinfo | tr -d $\u0027 \\t\u0027 | awk -F: \u0027{print$2}\u0027 | sort)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":75,"context_line":"      mkdir -p /sys/fs/cgroup/cpuset/osh-openvswitch"},{"line_number":76,"context_line":"      target_mems\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.mems\""},{"line_number":77,"context_line":"      target_cpus\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.cpus\""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":7,"id":"5faad753_d2258c5d","line":75,"range":{"start_line":75,"start_character":6,"end_line":75,"end_character":52},"updated":"2019-09-13 01:27:17.000000000","message":"This new created cpuset cgroup inherits from it\u0027s parent cgroup(the root cgroup). It means that the new osh-openvswitch cgroup already contains all the cores. So I think we don\u0027t have to set cpuset.cpus and cpuset.mems explicitly. What we need to do is just create the new osh-openvswitch cgroup, because the default valaues are already what we want.","commit_id":"f0c31f100681fe5633d406aa1e496e5d0d63cfb6"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"389f2e0d313124a801aaca7ec436610a453e8d6b","unresolved":false,"context_lines":[{"line_number":72,"context_line":"      syscpus\u003d$(grep -oE $\u0027^processor\\t: [0-9]+$\u0027 /proc/cpuinfo | tr -d $\u0027 \\t\u0027 | awk -F: \u0027{print$2}\u0027 | sort)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":75,"context_line":"      mkdir -p /sys/fs/cgroup/cpuset/osh-openvswitch"},{"line_number":76,"context_line":"      target_mems\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.mems\""},{"line_number":77,"context_line":"      target_cpus\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.cpus\""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":7,"id":"5faad753_3cfdc96d","line":75,"range":{"start_line":75,"start_character":6,"end_line":75,"end_character":52},"in_reply_to":"5faad753_d2258c5d","updated":"2019-09-13 14:47:08.000000000","message":"Done","commit_id":"f0c31f100681fe5633d406aa1e496e5d0d63cfb6"},{"author":{"_account_id":28719,"name":"Phil Sphicas","email":"phil.sphicas@att.com","username":"ps3910"},"change_message_id":"d74a90545d14d14e38a6f584dfd4f7d746a3f44f","unresolved":false,"context_lines":[{"line_number":72,"context_line":"      syscpus\u003d$(grep -oE $\u0027^processor\\t: [0-9]+$\u0027 /proc/cpuinfo | tr -d $\u0027 \\t\u0027 | awk -F: \u0027{print$2}\u0027 | sort)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":75,"context_line":"      mkdir -p /sys/fs/cgroup/cpuset/osh-openvswitch"},{"line_number":76,"context_line":"      target_mems\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.mems\""},{"line_number":77,"context_line":"      target_cpus\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.cpus\""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":7,"id":"5faad753_d9012708","line":75,"range":{"start_line":75,"start_character":6,"end_line":75,"end_character":52},"in_reply_to":"5faad753_d2258c5d","updated":"2019-09-13 14:40:10.000000000","message":"When tested in a few places (including with the openvswitch image), cpuset.mems and cpuset.cpus are empty on creation, and need to be explicitly populated, otherwise you get ENOSPC errors when actually assigning tasks to the cgroup. The cgroup documentation seems to support this.\n\nBut I think you are right that we could do the same thing for both, just copy settings from root cgroup.","commit_id":"f0c31f100681fe5633d406aa1e496e5d0d63cfb6"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"389f2e0d313124a801aaca7ec436610a453e8d6b","unresolved":false,"context_lines":[{"line_number":72,"context_line":"      syscpus\u003d$(grep -oE $\u0027^processor\\t: [0-9]+$\u0027 /proc/cpuinfo | tr -d $\u0027 \\t\u0027 | awk -F: \u0027{print$2}\u0027 | sort)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":75,"context_line":"      mkdir -p /sys/fs/cgroup/cpuset/osh-openvswitch"},{"line_number":76,"context_line":"      target_mems\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.mems\""},{"line_number":77,"context_line":"      target_cpus\u003d\"/sys/fs/cgroup/cpuset/osh-openvswitch/cpuset.cpus\""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":7,"id":"5faad753_9c0cfda5","line":75,"range":{"start_line":75,"start_character":6,"end_line":75,"end_character":52},"in_reply_to":"5faad753_d9012708","updated":"2019-09-13 14:47:08.000000000","message":"Done","commit_id":"f0c31f100681fe5633d406aa1e496e5d0d63cfb6"},{"author":{"_account_id":28719,"name":"Phil Sphicas","email":"phil.sphicas@att.com","username":"ps3910"},"change_message_id":"d74a90545d14d14e38a6f584dfd4f7d746a3f44f","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        # Write cpuset.mem for pod"},{"line_number":82,"context_line":"        cat /sys/fs/cgroup/cpuset/cpuset.mems \u003e \"$target_mems\""},{"line_number":83,"context_line":"        # Write cpuset.cpus for pod"},{"line_number":84,"context_line":"        echo $syscpus | tr \u0027 \u0027 \u0027,\u0027 \u003e \"$target_cpus\""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        echo $$ \u003e /sys/fs/cgroup/cpuset/osh-openvswitch/tasks"},{"line_number":87,"context_line":"      else"}],"source_content_type":"text/x-smarty","patch_set":7,"id":"5faad753_9c0b9dd4","line":84,"range":{"start_line":84,"start_character":8,"end_line":84,"end_character":51},"updated":"2019-09-13 14:40:10.000000000","message":"copy from root cgroup\n\n    cat /sys/fs/cgroup/cpuset/cpuset.cpus \u003e \"$target_cpus\"","commit_id":"f0c31f100681fe5633d406aa1e496e5d0d63cfb6"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"389f2e0d313124a801aaca7ec436610a453e8d6b","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        # Write cpuset.mem for pod"},{"line_number":82,"context_line":"        cat /sys/fs/cgroup/cpuset/cpuset.mems \u003e \"$target_mems\""},{"line_number":83,"context_line":"        # Write cpuset.cpus for pod"},{"line_number":84,"context_line":"        echo $syscpus | tr \u0027 \u0027 \u0027,\u0027 \u003e \"$target_cpus\""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        echo $$ \u003e /sys/fs/cgroup/cpuset/osh-openvswitch/tasks"},{"line_number":87,"context_line":"      else"}],"source_content_type":"text/x-smarty","patch_set":7,"id":"5faad753_5c020571","line":84,"range":{"start_line":84,"start_character":8,"end_line":84,"end_character":51},"in_reply_to":"5faad753_9c0b9dd4","updated":"2019-09-13 14:47:08.000000000","message":"Done","commit_id":"f0c31f100681fe5633d406aa1e496e5d0d63cfb6"},{"author":{"_account_id":28719,"name":"Phil Sphicas","email":"phil.sphicas@att.com","username":"ps3910"},"change_message_id":"658ae565271fcce9b9aa582d2bc1bc7ec45dcbec","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    ovs-vsctl --db\u003dunix:${OVS_SOCKET} --no-wait set Open_vSwitch . other_config:vhost-sock-dir\u003d{{ .Values.conf.ovs_dpdk.vhostuser_socket_dir | quote }}"},{"line_number":65,"context_line":"    ovs-vsctl --db\u003dunix:${OVS_SOCKET} --no-wait set Open_vSwitch . other_config:dpdk-init\u003dtrue"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"  # No need to create the cgroup if isolcpus is not in use or pmd_cpu_mask is not set."},{"line_number":68,"context_line":"  if [[ -n ${PMD_CPU_MASK} || -n ${LCORE_MASK} ]]; then"},{"line_number":69,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":70,"context_line":"      mkdir -p /sys/fs/cgroup/cpuset/osh-openvswitch"}],"source_content_type":"text/x-smarty","patch_set":9,"id":"5faad753_c2e36c33","line":67,"range":{"start_line":67,"start_character":33,"end_line":67,"end_character":58},"updated":"2019-09-13 15:29:48.000000000","message":"lcore_mask","commit_id":"2a81e3f46ce0ecf011aff3b1d677304ef4f4f9d5"},{"author":{"_account_id":27589,"name":"Deepak Tiwari","email":"deepak.tiwari@aricent.com","username":"deepak.tiwari"},"change_message_id":"047f6cec0e3159660b6caede27c0970a5a0deaa8","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    ovs-vsctl --db\u003dunix:${OVS_SOCKET} --no-wait set Open_vSwitch . other_config:vhost-sock-dir\u003d{{ .Values.conf.ovs_dpdk.vhostuser_socket_dir | quote }}"},{"line_number":65,"context_line":"    ovs-vsctl --db\u003dunix:${OVS_SOCKET} --no-wait set Open_vSwitch . other_config:dpdk-init\u003dtrue"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"  # No need to create the cgroup if isolcpus is not in use or pmd_cpu_mask is not set."},{"line_number":68,"context_line":"  if [[ -n ${PMD_CPU_MASK} || -n ${LCORE_MASK} ]]; then"},{"line_number":69,"context_line":"      # Setup Cgroups to use when breaking out of Kubernetes defined groups"},{"line_number":70,"context_line":"      mkdir -p /sys/fs/cgroup/cpuset/osh-openvswitch"}],"source_content_type":"text/x-smarty","patch_set":9,"id":"5faad753_283d7f2a","line":67,"range":{"start_line":67,"start_character":33,"end_line":67,"end_character":58},"in_reply_to":"5faad753_c2e36c33","updated":"2019-09-13 17:22:20.000000000","message":"Done","commit_id":"2a81e3f46ce0ecf011aff3b1d677304ef4f4f9d5"}]}
