diff --git a/jjb/pipeline/voltha/voltha-2.12/bbsim-tests.groovy b/jjb/pipeline/voltha/voltha-2.12/bbsim-tests.groovy
index 351a22f..efcadf0 100644
--- a/jjb/pipeline/voltha/voltha-2.12/bbsim-tests.groovy
+++ b/jjb/pipeline/voltha/voltha-2.12/bbsim-tests.groovy
@@ -44,7 +44,7 @@
 //   per-script to be sure latest repository changes are being used.
 // -----------------------------------------------------------------------
 String pipelineVer() {
-    String version = '4f87de8f31d588d8277dc5ea6fbb69e714c66079'
+    String version = '757ba9ea12d8d815c10301b7f265f3fcd7c41d26'
     return(version)
 }
 
@@ -440,7 +440,7 @@
 	pkill_proc('kail')
 	println("${iam}: LEAVE")
     }
-    
+
     println("${iam}: ENTER RobotPublisher")
     step([$class: 'RobotPublisher',
 	  disableArchiveOutput: false,
@@ -451,7 +451,7 @@
 	  passThreshold: 100,
 	  reportFileName: '**/*/report*.html',
 	  unstableThreshold: 0,
-	  onlyCritical: true]);
+	  onlyCritical: true])
     println("${iam}: LEAVE RobotPublisher")
 
     println("${iam}: LEAVE (exitStatus=${exitStatus})")
@@ -462,10 +462,9 @@
 // Intent: main
 // -----------------------------------------------------------------------
 pipeline {
-
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.buildNode}"
+	label "${params.buildNode}"
   }
   options {
     timeout(time: "${timeout}", unit: 'MINUTES')
@@ -675,4 +674,4 @@
     }
 } // pipeline
 
-// EOF
+// [EOF]
diff --git a/jjb/pipeline/voltha/voltha-2.12/software-upgrades.groovy b/jjb/pipeline/voltha/voltha-2.12/software-upgrades.groovy
index d7427bb..449e64a 100755
--- a/jjb/pipeline/voltha/voltha-2.12/software-upgrades.groovy
+++ b/jjb/pipeline/voltha/voltha-2.12/software-upgrades.groovy
@@ -144,9 +144,7 @@
       // Currently only testing with ATT workflow
       // TODO: Support for other workflows
       volthaDeploy([bbsimReplica: olts.toInteger(), workflow: 'att', extraHelmFlags: extraHelmFlags, localCharts: localCharts])
-
-        // [TODO] pkill_proc("_TAG=kail-${name}")
-        // stop logging
+      // stop logging
       sh """
         P_IDS="\$(ps e -ww -A | grep "_TAG=kail-${name}" | grep -v grep | awk '{print \$1}')"
         if [ -n "\$P_IDS" ]; then
@@ -233,16 +231,11 @@
         # Run the specified tests
         make -C $WORKSPACE/voltha-system-tests \$TARGET || true
       """
-
-        pkill_proc('port-forw')
-	    // remove port-forwarding
-	    /*
+      // remove port-forwarding
       sh """
         # remove orphaned port-forward from different namespaces
         ps aux | grep port-forw | grep -v grep | awk '{print \$2}' | xargs --no-run-if-empty kill -9 || true
       """
-	     */
-
       // collect pod details
       get_pods_info("$WORKSPACE/${name}")
       sh """
@@ -298,15 +291,16 @@
 
     // -----------------------------------------------------------------------
     // -----------------------------------------------------------------------
-    stage('Install Tools') {
-        steps              {
-            script         {
-                String branchName = branchName()
+    stage('Install Tools')
+    {
+        steps
+        {
+            script
+            {
                 String iam = getIam('Install Kind')
-
-                println("${iam}: ENTER (branch=$branch)")
-                installKind(branch)   // needed early by stage(Cleanup)
-                println("${iam}: LEAVE (branch=$branch)")
+                println("${iam}: ENTER")
+                installKind("$branch")   // needed early by stage(Cleanup)
+                println("${iam}: LEAVE")
 	    } // script
 	} // steps
     } // stage
@@ -314,21 +308,37 @@
     // -----------------------------------------------------------------------
     // -----------------------------------------------------------------------
     stage('Cleanup') {
-        steps        {
-            script   {
-                pgrep_proc('port-forw')
-                pkill_proc('port-forw')
-            } // script
-            helmTeardown(['infra', 'voltha'])
-        } // steps
-    } // stage
-	
-    stage('Create K8s Cluster') {
         steps {
-            createKubernetesCluster([nodes: 3])
-        }
+
+	script {
+            println('''
+** -----------------------------------------------------------------------
+** Raw process listing
+** -----------------------------------------------------------------------
+''')
+        sh(''' ps faaux ''')
+
+            println('''
+** -----------------------------------------------------------------------
+** pgrep --list-full port
+** -----------------------------------------------------------------------
+''')
+        sh(''' set +euo pipefail && pgrep --list-full 'port' ''')
+		}
+
+        // remove port-forwarding
+        sh """
+          # remove orphaned port-forward from different namespaces
+          ps aux | grep port-forw | grep -v grep | awk '{print \$2}' | xargs --no-run-if-empty kill -9 || true
+        """
+        helmTeardown(['infra', 'voltha'])
+      }
     }
-	
+    stage('Create K8s Cluster') {
+      steps {
+        createKubernetesCluster([nodes: 3])
+      }
+    }
     stage('Run Test') {
       steps {
         test_software_upgrade("onos-app-upgrade")
@@ -362,5 +372,3 @@
     }
   }
 }
-
-// [EOF]
diff --git a/makefiles/lint/groovy/include.mk b/makefiles/lint/groovy/include.mk
index 1d39bcb..5959fe0 100644
--- a/makefiles/lint/groovy/include.mk
+++ b/makefiles/lint/groovy/include.mk
@@ -35,10 +35,10 @@
 
 ## -----------------------------------------------------------------------
 ## All or on-demand
-##   make lint-groovy BYSRC="a/b/c.groovy d/e/f.groovy"
+##   make lint-groovy BY_SRC="a/b/c.groovy d/e/f.groovy"
 ## -----------------------------------------------------------------------
-ifdef BYSRC
-  lint-groovy : lint-groovy-bysrc
+ifdef LINT_SRC
+  lint-groovy : lint-groovy-src
 else
   lint-groovy : lint-groovy-all
 endif
@@ -55,15 +55,31 @@
 ## -----------------------------------------------------------------------
 ## Intent: Perform lint check on a named list of files
 ## -----------------------------------------------------------------------
-lint-groovy-bysrc:
+BY_SRC ?= $(error $(MAKE) $@ BY_SRC= is required)
+lint-groovy-src:
 	$(groovy-check) --version
 	@echo
-	$(foreach fyl,$(BYSRC),$(groovy-check) $(groovy-check-args) $(fyl))
+#	$(foreach fyl,$(BY_SRC),$(groovy-check) $(groovy-check-args) $(fyl))
+	$(groovy-check) $(groovy-check-args) $(BY_SRC)
+
+## -----------------------------------------------------------------------
+## Intent: Perform lint check on a named list of files
+## -----------------------------------------------------------------------
+BYGIT = $(shell git diff --name-only HEAD | grep '\.groovy')
+lint-groovy-mod:
+	$(groovy-check) --version
+	@echo
+	$(foreach fyl,$(BYGIT),$(groovy-check) $(groovy-check-args) $(fyl))
 
 ## -----------------------------------------------------------------------
 ## Intent: Display command help
 ## -----------------------------------------------------------------------
 help-summary ::
-	@echo '  lint-groovy          Syntax check groovy sources'
-
+	@echo '  lint-groovy          Conditionally lint groovy source'
+	@echo '      BY_SRC=a/b/c.groovy d/e/f.groovy'
+  ifdef VERBOSE
+	@echo '  lint-groovy-all    Lint all available sources'
+	@echo '  lint-groovy-mod    Lint locally modified (git status)'
+	@echo '  lint-groovy-src    Lint individually (BY_SRC=list-of-files)'
+  endif
 # [EOF]
