greybus: loopback: masked out threads should sleep
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>
Wed, 23 Sep 2015 16:31:32 +0000 (09:31 -0700)
committerGreg Kroah-Hartman <gregkh@google.com>
Wed, 23 Sep 2015 19:46:16 +0000 (12:46 -0700)
If a thread is masked out it should not consume CPU cycles during a test.
We set an arbitrary 100 millisecond sleep time for each masked out thread.
Reasonably blunt instrument to ensure threads with nothing to do don't end
up thrashing the acquisition/release of mutexes.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Patrick Titiano <ptitiano@baylibre.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/loopback.c

index 3151876a717c39b23676e9231c63380596c16905..764ee83df082b10d7e8f07ff1a0e0a83fb2f9863 100644 (file)
@@ -693,8 +693,10 @@ static int gb_loopback_fn(void *data)
                        break;
 
                mutex_lock(&gb_dev.mutex);
-               if (!gb_loopback_active(gb))
+               if (!gb_loopback_active(gb)) {
+                       ms_wait = 100;
                        goto unlock_continue;
+               }
                if (gb_dev.iteration_max) {
                        /* Determine overall lowest count */
                        low_count = gb->iteration_count;