From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Thomas Renninger <trenn@suse.de>, lenb@kernel.org
Cc: mingo@elte.hu, linux-kernel@vger.kernel.org, mgross@linux.intel.com
Subject: Re: [PATCH] pm_qos: Make pm_qos settings readable
Date: Mon, 28 Feb 2011 22:08:42 +0100 [thread overview]
Message-ID: <201102282208.42637.rjw@sisk.pl> (raw)
In-Reply-To: <1298842606-55712-4-git-send-email-trenn@suse.de>
On Sunday, February 27, 2011, Thomas Renninger wrote:
> I have a machine where entering deep C-states broke.
> pm_qos was a hot candidate, but I couldn't find any way to double
> check without the need of recompiling.
>
> While in this case it was a driver bug (ath9k):
> https://bugzilla.kernel.org/show_bug.cgi?id=27532
>
> powertop or others may want to read out cpu_dma_latency
> restrictions which could be the cause of preventing a machine
> entering deeper C-states.
>
> Output with this patch:
>
> # default value of 2000 * USEC_PER_SEC (0x77359400)
> cat /dev/network_latency |hexdump
> 0000000 9400 7735
> 0000004
>
> # value of 55 us which is the reason for not entering C2
> cat /dev/cpu_dma_latency |hexdump
> 0000000 0037 0000
> 0000004
>
> There is no reason to hide this info -> make pm_qos files readable.
>
> Signed-off-by: Thomas Renninger <trenn@suse.de>
> CC: mgross@linux.intel.com
> CC: mingo@elte.hu
Applied to suspend-2.6/linux-next.
Thanks,
Rafael
> ---
> kernel/pm_qos_params.c | 24 ++++++++++++++++++++++++
> 1 files changed, 24 insertions(+), 0 deletions(-)
>
> diff --git a/kernel/pm_qos_params.c b/kernel/pm_qos_params.c
> index aeaa7f8..0da058b 100644
> --- a/kernel/pm_qos_params.c
> +++ b/kernel/pm_qos_params.c
> @@ -103,11 +103,14 @@ static struct pm_qos_object *pm_qos_array[] = {
>
> static ssize_t pm_qos_power_write(struct file *filp, const char __user *buf,
> size_t count, loff_t *f_pos);
> +static ssize_t pm_qos_power_read(struct file *filp, char __user *buf,
> + size_t count, loff_t *f_pos);
> static int pm_qos_power_open(struct inode *inode, struct file *filp);
> static int pm_qos_power_release(struct inode *inode, struct file *filp);
>
> static const struct file_operations pm_qos_power_fops = {
> .write = pm_qos_power_write,
> + .read = pm_qos_power_read,
> .open = pm_qos_power_open,
> .release = pm_qos_power_release,
> .llseek = noop_llseek,
> @@ -376,6 +379,27 @@ static int pm_qos_power_release(struct inode *inode, struct file *filp)
> }
>
>
> +static ssize_t pm_qos_power_read(struct file *filp, char __user *buf,
> + size_t count, loff_t *f_pos)
> +{
> + s32 value;
> + unsigned long flags;
> + struct pm_qos_object *o;
> + struct pm_qos_request_list *pm_qos_req = filp->private_data;;
> +
> + if (!pm_qos_req)
> + return -EINVAL;
> + if (!pm_qos_request_active(pm_qos_req))
> + return -EINVAL;
> +
> + o = pm_qos_array[pm_qos_req->pm_qos_class];
> + spin_lock_irqsave(&pm_qos_lock, flags);
> + value = pm_qos_get_value(o);
> + spin_unlock_irqrestore(&pm_qos_lock, flags);
> +
> + return simple_read_from_buffer(buf, count, f_pos, &value, sizeof(s32));
> +}
> +
> static ssize_t pm_qos_power_write(struct file *filp, const char __user *buf,
> size_t count, loff_t *f_pos)
> {
>
next prev parent reply other threads:[~2011-02-28 21:08 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-27 21:36 [PATCH] Several riskless, tiny fixes Thomas Renninger
2011-02-27 21:36 ` [PATCH] shmobile: Rename cpuidle states to fit to general conventions Thomas Renninger
2011-03-11 3:40 ` Paul Mundt
2011-02-27 21:36 ` [PATCH] intel_idle: Rename cpuidle states Thomas Renninger
2011-02-28 16:04 ` Len Brown
2011-02-27 21:36 ` [PATCH] pm_qos: Make pm_qos settings readable Thomas Renninger
2011-02-28 21:08 ` Rafael J. Wysocki [this message]
2011-02-27 21:36 ` [PATCH] perf: timechart: fix black idle boxes in the title Thomas Renninger
2011-02-28 8:22 ` [tip:perf/urgent] perf timechart: Fix " tip-bot for Thomas Renninger
2011-02-27 21:36 ` [PATCH] perf: timechart -> fix max number of cpus Thomas Renninger
2011-02-28 8:23 ` [tip:perf/urgent] perf timechart: Fix " tip-bot for Thomas Renninger
2011-02-28 7:54 ` [PATCH] Several riskless, tiny fixes Ingo Molnar
2011-02-28 20:43 ` Rafael J. Wysocki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201102282208.42637.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=lenb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mgross@linux.intel.com \
--cc=mingo@elte.hu \
--cc=trenn@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®