2003-07-31 15:59:53

by Michael Bakos

[permalink] [raw]
Subject: compile error for Opteron CPU with kernel 2.6.0-test2

Kernel version: 2.6.0-test2
CPU type: x86-64 (Opteron)
Problem: Can not successfuly do: make bzImage

For process.c:
It says that the file asm/local.h is missing, and errors out in module.h
at line 175, parse error before local_t

Michael Bakhos



2003-07-31 22:12:44

by Andrew Morton

[permalink] [raw]
Subject: Re: compile error for Opteron CPU with kernel 2.6.0-test2

Michael Bakos <[email protected]> wrote:
>
> Kernel version: 2.6.0-test2
> CPU type: x86-64 (Opteron)
> Problem: Can not successfuly do: make bzImage
>
> For process.c:
> It says that the file asm/local.h is missing, and errors out in module.h
> at line 175, parse error before local_t

Try test-2-mm2: it has the x86_64 update.

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test2/2.6.0-test2-mm2/2.6.0-test2-mm2.bz2

2003-08-01 01:11:38

by Michael Bakos

[permalink] [raw]
Subject: Re: compile error for Opteron CPU with kernel 2.6.0-test2

(sorry for the previous bad sent)
The patch (2.6.0-test2-mm2) did fix the asm/local.h missing file problem,
but I'm getting another one:

CC arch/x86_64/kernel/asm-offsets.s
In file included from include/linux/topology.h:35,
from include/linux/mmzone.h:294,
from include/linux/gfp.h:4,
from include/linux/slab.h:15,
from include/linux/percpu.h:4,
from include/linux/sched.h:31,
from arch/x86_64/kernel/asm-offsets.c:7:
include/asm/topology.h: In function `pcibus_to_cpumask':
include/asm/topology.h:24: error: invalid operands to binary &
make[1]: *** [arch/x86_64/kernel/asm-offsets.s] Error 1
make: *** [arch/x86_64/kernel/asm-offsets.s] Error 2

I'd also like to thanks thoses that replied to me for the previous
problem.

Michael Bakhos


On Thu, 31 Jul 2003, Andrew Morton wrote:

> Michael Bakos <[email protected]> wrote:
> >
> > Kernel version: 2.6.0-test2
> > CPU type: x86-64 (Opteron)
> > Problem: Can not successfuly do: make bzImage
> >
> > For process.c:
> > It says that the file asm/local.h is missing, and errors out in module.h
> > at line 175, parse error before local_t
>
> Try test-2-mm2: it has the x86_64 update.
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test2/2.6.0-test2-mm2/2.6.0-test2-mm2.bz2
>

2003-08-01 01:08:15

by Michael Bakos

[permalink] [raw]
Subject: Re: compile error for Opteron CPU with kernel 2.6.0-test2

The patch (2.6.0-test2-mm2) did fix the asm/local.h missing file problem,
but I'm getting another one.
















> Michael Bakos <[email protected]> wrote:
> >
> > Kernel version: 2.6.0-test2
> > CPU type: x86-64 (Opteron)
> > Problem: Can not successfuly do: make bzImage
> >
> > For process.c:
> > It says that the file asm/local.h is missing, and errors out in module.h
> > at line 175, parse error before local_t
>
> Try test-2-mm2: it has the x86_64 update.
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test2/2.6.0-test2-mm2/2.6.0-test2-mm2.bz2
>

2003-08-01 01:26:31

by Andrew Morton

[permalink] [raw]
Subject: Re: compile error for Opteron CPU with kernel 2.6.0-test2

Michael Bakos <[email protected]> wrote:
>
> In file included from include/linux/topology.h:35,
> from include/linux/mmzone.h:294,
> from include/linux/gfp.h:4,
> from include/linux/slab.h:15,
> from include/linux/percpu.h:4,
> from include/linux/sched.h:31,
> from arch/x86_64/kernel/asm-offsets.c:7:
> include/asm/topology.h: In function `pcibus_to_cpumask':
> include/asm/topology.h:24: error: invalid operands to binary &
> make[1]: *** [arch/x86_64/kernel/asm-offsets.s] Error 1
> make: *** [arch/x86_64/kernel/asm-offsets.s] Error 2

urgh, OK. We're chasing around in circles here. And the cpumask_t patch
still isn't ready for merging.


This might fix it.

arch/x86_64/kernel/mpparse.c | 2 +-
include/asm-x86_64/mpspec.h | 2 +-
include/asm-x86_64/topology.h | 7 +++++--
3 files changed, 7 insertions(+), 4 deletions(-)

diff -puN include/asm-x86_64/topology.h~x86_64-cpumask_t-fix include/asm-x86_64/topology.h
--- 25/include/asm-x86_64/topology.h~x86_64-cpumask_t-fix 2003-07-31 18:20:51.000000000 -0700
+++ 25-akpm/include/asm-x86_64/topology.h 2003-07-31 18:25:11.000000000 -0700
@@ -19,9 +19,12 @@ extern cpumask_t cpu_online_map;
#define node_to_cpu_mask(node) (fake_node ? cpu_online_map : cpumask_of_cpu(node))
#define node_to_memblk(node) (node)

-static inline unsigned long pcibus_to_cpumask(int bus)
+static inline cpumask_t pcibus_to_cpumask(int bus)
{
- return mp_bus_to_cpumask[bus] & cpu_online_map;
+ cpumask_t ret;
+
+ cpus_and(ret, mp_bus_to_cpumask[bus], cpu_online_map);
+ return ret;
}

#define NODE_BALANCE_RATE 30 /* CHECKME */
diff -puN include/asm-x86_64/mpspec.h~x86_64-cpumask_t-fix include/asm-x86_64/mpspec.h
--- 25/include/asm-x86_64/mpspec.h~x86_64-cpumask_t-fix 2003-07-31 18:24:12.000000000 -0700
+++ 25-akpm/include/asm-x86_64/mpspec.h 2003-07-31 18:24:35.000000000 -0700
@@ -166,7 +166,7 @@ enum mp_bustype {
};
extern unsigned char mp_bus_id_to_type [MAX_MP_BUSSES];
extern int mp_bus_id_to_pci_bus [MAX_MP_BUSSES];
-extern unsigned long mp_bus_to_cpumask [MAX_MP_BUSSES];
+extern cpumask_t mp_bus_to_cpumask [MAX_MP_BUSSES];

extern unsigned int boot_cpu_physical_apicid;
extern cpumask_t phys_cpu_present_map;
diff -puN arch/x86_64/kernel/mpparse.c~x86_64-cpumask_t-fix arch/x86_64/kernel/mpparse.c
--- 25/arch/x86_64/kernel/mpparse.c~x86_64-cpumask_t-fix 2003-07-31 18:24:54.000000000 -0700
+++ 25-akpm/arch/x86_64/kernel/mpparse.c 2003-07-31 18:25:45.000000000 -0700
@@ -43,7 +43,7 @@ int acpi_found_madt;
int apic_version [MAX_APICS];
unsigned char mp_bus_id_to_type [MAX_MP_BUSSES] = { [0 ... MAX_MP_BUSSES-1] = -1 };
int mp_bus_id_to_pci_bus [MAX_MP_BUSSES] = { [0 ... MAX_MP_BUSSES-1] = -1 };
-unsigned long mp_bus_to_cpumask [MAX_MP_BUSSES] = { [0 ... MAX_MP_BUSSES-1] = -1UL };
+cpumask_t mp_bus_to_cpumask [MAX_MP_BUSSES] = { [0 ... MAX_MP_BUSSES-1] = CPU_MASK_ALL };

int mp_current_pci_id = 0;
/* I/O APIC entries */

_

2003-08-01 02:39:23

by Michael Bakos

[permalink] [raw]
Subject: Re: compile error for Opteron CPU with kernel 2.6.0-test2

that patch did fix the cpumask_t problem, however another one is present

CC arch/x86_64/kernel/mpparse.o
arch/x86_64/kernel/mpparse.c: In function `mp_parse_prt':
arch/x86_64/kernel/mpparse.c:899: error: too few arguments to function
`acpi_pci_link_get_irq'
make[1]: *** [arch/x86_64/kernel/mpparse.o] Error 1
make: *** [arch/x86_64/kernel] Error 2


While I was waiting for the cpumask_t fix, I tried to just comment out the
structure that caused the problem, it also got past the cpumask_t compile
error (however I didn't want to use a kernel with such a quick fix...).
When I did that I also stumbled on the mpparse problem and tried to fix
it. I don't know if it's a good fix but here's what I've done (I'd still
like some sort of patch since I'm not sure what are the exact effects):
I added stuff from the arch/i386/kernel/mpparse.c file
in void __init mp_parse_prt (void) in arch/x86_64/kernel/mpparse.c
I added the variables:
int edge_level
int active_high_low

modified the acpi_pci_link_get_ifq call to add the 2 variables at the end
and I also changed the else part of that if to reflect the one in the i386
mpparse.c file.

Michael Bakhos


On Thu, 31 Jul 2003, Andrew Morton wrote:

> urgh, OK. We're chasing around in circles here. And the cpumask_t patch
> still isn't ready for merging.
>
>
> This might fix it.
>
<< patch sniped out>>

2003-08-01 04:20:21

by Andrew Morton

[permalink] [raw]
Subject: Re: compile error for Opteron CPU with kernel 2.6.0-test2

Michael Bakos <[email protected]> wrote:
>
> that patch did fix the cpumask_t problem, however another one is present
>
> CC arch/x86_64/kernel/mpparse.o
> arch/x86_64/kernel/mpparse.c: In function `mp_parse_prt':
> arch/x86_64/kernel/mpparse.c:899: error: too few arguments to function
> `acpi_pci_link_get_irq'
> make[1]: *** [arch/x86_64/kernel/mpparse.o] Error 1
> make: *** [arch/x86_64/kernel] Error 2

OK, I'd be doing this:

arch/x86_64/kernel/mpparse.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletion(-)

diff -puN arch/x86_64/kernel/mpparse.c~nforce2-acpi-fixes-fix arch/x86_64/kernel/mpparse.c
--- 25/arch/x86_64/kernel/mpparse.c~nforce2-acpi-fixes-fix 2003-07-31 21:18:45.000000000 -0700
+++ 25-akpm/arch/x86_64/kernel/mpparse.c 2003-07-31 21:18:59.000000000 -0700
@@ -896,7 +896,8 @@ void __init mp_parse_prt (void)

/* Need to get irq for dynamic entry */
if (entry->link.handle) {
- irq = acpi_pci_link_get_irq(entry->link.handle, entry->link.index);
+ irq = acpi_pci_link_get_irq(entry->link.handle,
+ entry->link.index, NULL, NULL);
if (!irq)
continue;
}

_

2003-08-01 14:36:37

by Andrew de Quincey

[permalink] [raw]
Subject: Re: compile error for Opteron CPU with kernel 2.6.0-test2


> OK, I'd be doing this:
>
> arch/x86_64/kernel/mpparse.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletion(-)
>
> diff -puN arch/x86_64/kernel/mpparse.c~nforce2-acpi-fixes-fix
> arch/x86_64/kernel/mpparse.c ---
> 25/arch/x86_64/kernel/mpparse.c~nforce2-acpi-fixes-fix 2003-07-31
> 21:18:45.000000000 -0700 +++
> 25-akpm/arch/x86_64/kernel/mpparse.c 2003-07-31 21:18:59.000000000 -0700 @@
> -896,7 +896,8 @@ void __init mp_parse_prt (void)
>
> /* Need to get irq for dynamic entry */
> if (entry->link.handle) {
> - irq = acpi_pci_link_get_irq(entry->link.handle, entry->link.index);
> + irq = acpi_pci_link_get_irq(entry->link.handle,
> + entry->link.index, NULL, NULL);
> if (!irq)
> continue;
> }
>
> _

Great, thanks very much.

2003-08-01 18:01:24

by Bryan O'Sullivan

[permalink] [raw]
Subject: Re: compile error for Opteron CPU with kernel 2.6.0-test2

m> (sorry for the previous bad sent)
m> The patch (2.6.0-test2-mm2) did fix the asm/local.h missing file problem,
m> but I'm getting another one:

You should subscribe to the mailing lists at x86-64.org - that's where
most Opteron problems get covered.

<b