[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] xen and agpgart

On Sat, Sep 04, 2004 at 05:47:36AM +0100, Keir Fraser wrote:
> Somehow you are ending up in the following code in the following code
> in __change_page_attr (arch/i386/mm/pageattr.c):
>       if (cpu_has_pse && (page_count(kpte_page) == 1)) {
>               list_add(&kpte_page->lru, &df_list);
>               revert_page(kpte_page, address);
>       } 
> This ought to be impossible, as cpu_has_pse should be 0.
> Add some debug printing around that code -- e.g., print the value of
> cpu_has_pse, and also the contents of e.g.,
> boot_cpu_data.x86_capability[0], boot_cpu_data.x86_capability[1].

I've confirmed that this is infact the codepath that's executing.
I also catted /proc/cpuinfo and the "pse" flag is listed there.

If it helps, my setup here is an IBM Thinkpad T40p which has a Pentium M
1600MHz in it (cpuinfo is included below).

> Perhaps the capability flags are getting corrupted - I think the value
> must be correct at boot time or you would crash while booting!

I examined the values in /proc/cpuinfo after boot, I'll dump the flags
earlier in the boot process and see if it's correct then...

I tested for PSE immediately after the memcpy() at the top of setup_arch()
and it is set there.

Here is the cpuinfo from within Xen:

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 9
model name      : Intel(R) Pentium(R) M processor 1600MHz
stepping        : 5
cpu MHz         : 1594.870
cache size      : 1024 KB
fdiv_bug        : no
hlt_bug         : yes
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat 
clflush dts acpi mmx fxsr sse sse2 tm pbe tm2 est
bogomips        : 3185.04

Outside of Xen, the differences I see are "hlt_bug : no" instead of yes,
and outside I lack the flags "apic sep"

> Meanwhile I've checked in a fix for wbinvd. I've fixed the wbinvd()
> macro in system.h, but agp.h uses the instruction directly. You'll
> have to patch that file yourself -- really a patch ought to be sent to
> the maintainer, but I'll wait until I've fixed the broken uses of
> ioremap_nocache in various GART drivers.

This sounds good to me.

                                -- Gerald

This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.