2003-07-29 23:07:25

by Stephen Hemminger

[permalink] [raw]
Subject: 2.6.0-test2-osdl1

http://developer.osdl.org/~shemminger/patches/patch-2.6.0-test2-osdl1.bz2
PLM http://www.osdl.org/cgi-bin/getpatch?id=2023

Added some new patches (from -mm) that relate to large machines.

o Support for >32 cpu's (Bill Irwin)
- had to fix perfctr to handle this
o 64 bit device number's (Andries Brower)

Older patches included:
o Relayfs (Tom Zanussi)
o Performance Counters (Mikael Pettersson)
o NUMA text replication (Dave Hansen)
o Kexec (Eric Biederman, Andy Pfiffer)
o Linux Trace Toolkit (LTT) (Karim Yaghmour)
o Lockmeter (John Hawkes)
o Kernel Config (ikconfig) (Randy Dunlap)
o RCU statistics (Dipankar Sarma)
o Scheduler tunables (Robert Love)




2003-07-30 00:04:33

by dacin

[permalink] [raw]
Subject: Re: 2.6.0-test2-osdl1

Stephen Hemminger wrote:

> http://developer.osdl.org/~shemminger/patches/patch-2.6.0-test2-osdl1.bz2
> PLM http://www.osdl.org/cgi-bin/getpatch?id=2023
>
>
But it's not there....

>Added some new patches (from -mm) that relate to large machines.
>
>o Support for >32 cpu's (Bill Irwin)
> - had to fix perfctr to handle this
>o 64 bit device number's (Andries Brower)
>
>Older patches included:
>o Relayfs (Tom Zanussi)
>o Performance Counters (Mikael Pettersson)
>o NUMA text replication (Dave Hansen)
>o Kexec (Eric Biederman, Andy Pfiffer)
>o Linux Trace Toolkit (LTT) (Karim Yaghmour)
>o Lockmeter (John Hawkes)
>o Kernel Config (ikconfig) (Randy Dunlap)
>o RCU statistics (Dipankar Sarma)
>o Scheduler tunables (Robert Love)
>
>
>
>-
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to [email protected]
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.tux.org/lkml/
>
>
>




2003-07-30 00:19:43

by Stephen Hemminger

[permalink] [raw]
Subject: Re: 2.6.0-test2-osdl1

On Wed, 30 Jul 2003 05:30:01 +0530
dacin <[email protected]> wrote:

> Stephen Hemminger wrote:
>
> > http://developer.osdl.org/~shemminger/patches/patch-2.6.0-test2-osdl1.bz2

Try now, I copied it to the wrong place.

2003-07-30 23:01:04

by Stephen Hemminger

[permalink] [raw]
Subject: Re: 2.6.0-test2-osdl1

On 30 Jul 2003 12:07:27 -0300
Luiz Capitulino <[email protected]> wrote:

> Stephen,
>
> Em Ter, 2003-07-29 ?s 20:07, Stephen Hemminger escreveu:
>
> > o Performance Counters (Mikael Pettersson)
>
> CC drivers/perfctr/x86.o
> drivers/perfctr/x86.c: In function `p4_write_control':
> drivers/perfctr/x86.c:806: request for member `mask' in something
> not a structure or union
> drivers/perfctr/x86.c: In function `finalise_backpatching':
> drivers/perfctr/x86.c:1139: incompatible types in assignment
> drivers/perfctr/x86.c:1140: warning: statement with no effect
> drivers/perfctr/x86.c: In function `perfctr_cpu_init':
> drivers/perfctr/x86.c:1680: incompatible types in assignment
> make[2]: ** [drivers/perfctr/x86.o] Error 1
> make[1]: ** [drivers/perfctr] Error 2
> make: ** [drivers] Error 2

I had to redo the cpu bit mask code for perfctr to make it work with
the patch to allow greater than 32 cpu's. This should work:

diff -Nru a/drivers/perfctr/x86.c b/drivers/perfctr/x86.c
--- a/drivers/perfctr/x86.c Wed Jul 30 15:52:07 2003
+++ b/drivers/perfctr/x86.c Wed Jul 30 15:52:07 2003
@@ -9,6 +9,7 @@
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/fs.h>
+#include <linux/cpumask.h>
#include <linux/perfctr.h>

#include <asm/msr.h>
@@ -797,6 +798,8 @@
}
#endif /* PERFCTR_INTERRUPT_SUPPORT */

+cpumask_t perfctr_cpus_forbidden_mask;
+
static void p4_write_control(const struct perfctr_cpu_state *state)
{
struct per_cpu_cache *cache;
@@ -1122,23 +1125,15 @@
* *
****************************************************************/

-static inline void set_perfctr_cpus_forbidden_mask(cpumask_t mask)
-{
-#if !defined(perfctr_cpus_forbidden_mask)
- perfctr_cpus_forbidden_mask = mask;
-#endif
-}
-
/* see comment above at redirect_call() */
static void __init finalise_backpatching(void)
{
struct per_cpu_cache *cache;
struct perfctr_cpu_state state;
- cpumask_t old_mask, new_mask;
+ cpumask_t old_mask;

old_mask = perfctr_cpus_forbidden_mask;
- cpus_empty(new_mask);
- set_perfctr_cpus_forbidden_mask(new_mask);
+ cpus_clear(perfctr_cpus_forbidden_mask);

cache = &per_cpu_cache[smp_processor_id()];
memset(cache, 0, sizeof *cache);
@@ -1151,7 +1146,7 @@
perfctr_cpu_resume(&state);
perfctr_cpu_suspend(&state);

- set_perfctr_cpus_forbidden_mask(old_mask);
+ perfctr_cpus_forbidden_mask = old_mask;

redirect_call_disable = 1;
}
@@ -1167,8 +1162,6 @@
}
#else

-cpumask_t perfctr_cpus_forbidden_mask;
-
static inline int __init p4_ht_finalise(cpumask_t forbidden)
{
int cpu;
@@ -1214,7 +1207,7 @@
}
if( nr_siblings < 2 )
return 0;
- cpus_empty(forbidden);
+ cpus_clear(forbidden);
smp_call_function(p4_ht_mask_setup_cpu, &forbidden, 1, 1);
p4_ht_mask_setup_cpu(&forbidden);
if( !any_online_cpu(forbidden))
diff -Nru a/include/asm-i386/perfctr.h b/include/asm-i386/perfctr.h
--- a/include/asm-i386/perfctr.h Wed Jul 30 15:52:07 2003
+++ b/include/asm-i386/perfctr.h Wed Jul 30 15:52:07 2003
@@ -164,14 +164,9 @@
static inline void perfctr_cpu_set_ihandler(perfctr_ihandler_t x) { }
#endif

-#if defined(CONFIG_SMP) && LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,15)
/* CPUs in `perfctr_cpus_forbidden_mask' must not use the
performance-monitoring counters. TSC use is unrestricted. */
extern cpumask_t perfctr_cpus_forbidden_mask;
-#else
-#define perfctr_cpus_forbidden_mask (0UL)
-#endif
-
#endif /* CONFIG_PERFCTR */

#if defined(CONFIG_KPERFCTR) && PERFCTR_INTERRUPT_SUPPORT