lkml.org 
[lkml]   [2012]   [Sep]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH] PM QoS: Add a metric : Bus Throughput.
Date
On Friday, August 10, 2012, 함명주 wrote:
> > + Myungjoo Ham,
> >
> > It used at devfreq. Mr. Ham can you explain it in detail?
> >
> > Thank you,
> > Kyungmin Park
> > ,
> > On 8/9/12, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > > On Wednesday, August 08, 2012, Jonghwa Lee wrote:
> > >> Bus throughput metric is added to PM QoS in order to control the
> > >> frequency of memory interfaces and busses with PM QoS.
> > >>
> > >> Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
> > >> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> > >
> > > I said some time ago I didn't want any new global PM QoS classes to be
> > > added this way.
> > >
> > > Can you please post a driver patch using this new thing?
> > >
> > > Rafael
>
> It'd be too early for V4L2 device driver QoS patches as they are undergoing
> major updates and the previous QoS patches over they are now obsolete.
>
> However, I've found that one QoS patch is still intact with the current one.
> Here goes the example driver that uses Bus-Throughput for its operation.
> (Fortunately, it is not V4L2, but DRM driver)
>
> It is a G2D (2D graphics acceleration) device driver that gets command lists
> from userspace and then process them via DMA. Many command lists finish even
> before any DVFS mechanism may react while the response time of a command list
> is still important for the user processes.
>
> Here we go:

Well, so my questions are:

> ---
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exynos/exynos_drm_g2d.c
> index d2d88f2..969b2c5 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_g2d.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_g2d.c
> @@ -14,6 +14,7 @@
> #include <linux/interrupt.h>
> #include <linux/io.h>
> #include <linux/platform_device.h>
> +#include <linux/pm_qos.h>
> #include <linux/pm_runtime.h>
> #include <linux/slab.h>
> #include <linux/workqueue.h>
> @@ -135,6 +136,7 @@ struct g2d_data {
> struct workqueue_struct *g2d_workq;
> struct work_struct runqueue_work;
> struct exynos_drm_subdrv subdrv;
> + struct pm_qos_request_list pm_qos;
> bool suspended;
>
> /* cmdlist */
> @@ -314,6 +316,9 @@ static void g2d_dma_start(struct g2d_data *g2d,
> pm_runtime_get_sync(g2d->dev);
> clk_enable(g2d->gate_clk);
>
> + /* 416MHz w/ 64b 30% saturating bus */
> + pm_qos_update_request(&g2d->pm_qos, 1000000);
> +

(1) What's the unit of that number and (2) why is it global?

Rafael
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2012-09-08 23:21    [W:0.277 / U:0.304 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site