Skip to contentSkip to conversation

ondemand: updated tune for hardware coordination

PATCH In review Alexey Starikovskiy 2 participants 5 messages Jul 31, 2006 – Aug 1, 2006 CPU frequency scaling framework

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 ondemand: updated tune for hardware coordination

cpufreq_ondemand.c | 13 ++++++++-----

1 file changed, 8 insertions(+), 5 deletions(-)

Try to make dbs_check_cpu() call on all CPUs at the same jiffy. This will help when multiple cores share P-states via Hardware Coordination.

Signed-off-by Venkatesh Pallipadi <venkatesh.pallipadi at intel.com>
Signed-off-by Alexey Starikovskiy <alexey.y.starikovskiy at intel.com>
drivers/cpufreq/cpufreq_ondemand.c +0 -0
Index: linux-2.6.15.1/drivers/cpufreq/cpufreq_ondemand.c
===================================================================
@@ -305,6 +305,9 @@
{
	unsigned int cpu = smp_processor_id();
	struct cpu_dbs_info_s *dbs_info = &per_cpu(cpu_dbs_info, cpu);

+ /* We want all CPUs to do sampling nearly on same jiffy */
+ int delay = usecs_to_jiffies(dbs_tuners_ins.sampling_rate);
+ delay -= jiffies % delay;

	if (!dbs_info->enable)
		return;
@@ -312,18 +315,18 @@
	lock_cpu_hotplug();
	dbs_check_cpu(dbs_info);
	unlock_cpu_hotplug();

- queue_delayed_work_on(cpu, kondemand_wq, &dbs_info->work,
- usecs_to_jiffies(dbs_tuners_ins.sampling_rate));
+ queue_delayed_work_on(cpu, kondemand_wq, &dbs_info->work, delay);
}

static inline void dbs_timer_init(unsigned int cpu)

{
	struct cpu_dbs_info_s *dbs_info = &per_cpu(cpu_dbs_info, cpu);

+ /* We want all CPUs to do sampling nearly on same jiffy */
+ int delay = usecs_to_jiffies(dbs_tuners_ins.sampling_rate);
+ delay -= jiffies % delay;

	INIT_WORK(&dbs_info->work, do_dbs_timer, 0);

- queue_delayed_work_on(cpu, kondemand_wq, &dbs_info->work,
- usecs_to_jiffies(dbs_tuners_ins.sampling_rate));
- return;
+ queue_delayed_work_on(cpu, kondemand_wq, &dbs_info->work, delay);
}

static inline void dbs_timer_exit(struct cpu_dbs_info_s *dbs_info)

#1 lore raw
Quoted 9 lines · Alexey Starikovskiy

cpufreq_ondemand.c | 13 ++++++++-----

1 file changed, 8 insertions(+), 5 deletions(-)

Try to make dbs_check_cpu() call on all CPUs at the same jiffy. This will help when multiple cores share P-states via Hardware Coordination.

Signed-off-by Venkatesh Pallipadi <venkatesh.pallipadi at intel.com>
Signed-off-by Alexey Starikovskiy <alexey.y.starikovskiy at intel.com>

Still doesn't apply..

error: patch failed: drivers/cpufreq/cpufreq_ondemand.c:303
error: drivers/cpufreq/cpufreq_ondemand.c: patch does not apply

Quoted 1 line

Index: linux-2.6.15.1/drivers/cpufreq/cpufreq_ondemand.c

                ^^^^^^^^

Hmmm?

Dave

Signature · 1 line
http://www.codemonkey.org.uk
#2 lore raw
Quoted 8 lines · Dave Jones
Quoted 7 lines · Alexey Starikovskiy

cpufreq_ondemand.c | 13 ++++++++-----

1 file changed, 8 insertions(+), 5 deletions(-)

Try to make dbs_check_cpu() call on all CPUs at the same jiffy. This will help when multiple cores share P-states via Hardware Coordination.

Quoted 7 lines
Quoted 2 lines
Signed-off-by Venkatesh Pallipadi <venkatesh.pallipadi at intel.com>
Signed-off-by Alexey Starikovskiy <alexey.y.starikovskiy at intel.com>

Still doesn't apply..

error: patch failed: drivers/cpufreq/cpufreq_ondemand.c:303
error: drivers/cpufreq/cpufreq_ondemand.c: patch does not apply

It requires Arjan's patch to cpufreq, sitting in Linus tree for 3 days already.

Quoted 5 lines
Quoted 3 lines

Index: linux-2.6.15.1/drivers/cpufreq/cpufreq_ondemand.c

                ^^^^^^^^

Hmmm?

Read it as 2.6.18-rc3...

Quoted 3 lines

Dave

#3 lore raw
Quoted 9 lines · Alexey Starikovskiy
Quoted 8 lines · Dave Jones
Quoted 7 lines · Alexey Starikovskiy

cpufreq_ondemand.c | 13 ++++++++-----

1 file changed, 8 insertions(+), 5 deletions(-)

Try to make dbs_check_cpu() call on all CPUs at the same jiffy. This will help when multiple cores share P-states via Hardware Coordination.

Quoted 8 lines
Quoted 7 lines
Quoted 2 lines
Signed-off-by Venkatesh Pallipadi <venkatesh.pallipadi at intel.com>
Signed-off-by Alexey Starikovskiy <alexey.y.starikovskiy at intel.com>

Still doesn't apply..

error: patch failed: drivers/cpufreq/cpufreq_ondemand.c:303
error: drivers/cpufreq/cpufreq_ondemand.c: patch does not apply

It requires Arjan's patch to cpufreq, sitting in Linus tree for 3 days already.

This was after I'd rebased the cpufreq.git tree to Linus' latest yesterday.

Dave

Signature · 1 line
http://www.codemonkey.org.uk
#4 lore raw
Quoted 15 lines · Dave Jones
Quoted 14 lines · Alexey Starikovskiy
Quoted 13 lines · Dave Jones
Quoted 9 lines · Alexey Starikovskiy

cpufreq_ondemand.c | 13 ++++++++-----

1 file changed, 8 insertions(+), 5 deletions(-)

Try to make dbs_check_cpu() call on all CPUs at the same jiffy. This will help when multiple cores share P-states via Hardware Coordination.

Signed-off-by Venkatesh Pallipadi <venkatesh.pallipadi at intel.com>
Signed-off-by Alexey Starikovskiy <alexey.y.starikovskiy at intel.com>

Still doesn't apply..

Quoted 8 lines
Quoted 3 lines
Quoted 2 lines

error: patch failed: drivers/cpufreq/cpufreq_ondemand.c:303
error: drivers/cpufreq/cpufreq_ondemand.c: patch does not apply

It requires Arjan's patch to cpufreq, sitting in Linus tree for 3 days already.

This was after I'd rebased the cpufreq.git tree to Linus' latest yesterday.

Dave

Just checked once again. Version I've sent yesterday cleanly applies to your just updated cpufreq.git tree.