OSDN Git Service

soc: qcom: hab: run the dispatcher's tasklet w/ high priority
authorYong Ding <yongding@codeaurora.org>
Fri, 29 Nov 2019 02:58:05 +0000 (10:58 +0800)
committerGerrit - the friendly Code Review server <code-review@localhost>
Fri, 29 Nov 2019 06:24:07 +0000 (22:24 -0800)
HAB uses tasklets as the bottom half to receive message from the
remote side. Even when the whole system is overloaded, HAB clients
(e.g., audio, display, gfx) still expect low latency for good user
experience. So here, tasklet_hi_schedule() is used.

Change-Id: I0b8ed281f090e9c251eb62fe5e78900ea2e9dc8d
Signed-off-by: Yong Ding <yongding@codeaurora.org>
drivers/soc/qcom/hab/hab_ghs.c
drivers/soc/qcom/hab/hab_qvm.c

index f479d69..57c4513 100644 (file)
@@ -86,7 +86,7 @@ static void ghs_irq_handler(void *cookie)
                (struct ghs_vdev *) (pchan ? pchan->hyp_data : NULL);
 
        if (dev)
-               tasklet_schedule(&dev->task);
+               tasklet_hi_schedule(&dev->task);
 }
 
 static int get_dt_name_idx(int vmid_base, int mmid,
index f9f72fc..6f1cf26 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 and
@@ -80,7 +80,7 @@ static irqreturn_t shm_irq_handler(int irq, void *_pchan)
 
                if (status & 0xffff) {/*source bitmask indicator*/
                        rc = IRQ_HANDLED;
-                       tasklet_schedule(&dev->task);
+                       tasklet_hi_schedule(&dev->task);
                }
        }
        return rc;