| 
         
xen-devel
Re: [Xen-devel] [PATCH] [Xen] Check FADT's signature
 
 Keir Fraser <keir@xxxxxxxxxxxxx> wrote on 08/10/2007
11:09:43 AM: 
 
> Not by my reading of the code, but your testing shows differently
;-) 
>  
> Have you tried adding tracing to map_pages_to_xen()? That’s the guts 
> of the remapping code.
 
 Now I did...
 
 diff -r 7c5c3aa858cc xen/arch/x86/mm.c 
--- a/xen/arch/x86/mm.c            
    Tue Jul 31 15:09:45 2007 +0100 
+++ b/xen/arch/x86/mm.c            
    Fri Aug 10 11:21:49 2007 -0400 
@@ -3539,6 +3539,7 @@ int map_pages_to_xen( 
             nr_mfns -= 1UL; 
         } 
     } 
+    local_flush_tlb_pge(); 
  
     return 0; 
 }
 
 This might be coarse but it does the trick to locate
the problem. 
 (XEN) (2) Mapped 0x3ffcfec0 to fff9bec0, base = 0xfff9b000 
(XEN) (2) Mapped 0x3ffbe4a8 to fff9b4a8, base = 0xfff9b000 
(XEN) sign: DSDT; name=DSDT 
(XEN) ACPI: DSDT (v001 IBM    SERBLADE 0x00001000 INTL 0x02002025)
@ 0x00000000 
(XEN) NUMA turned off 
(XEN) Faking a node at 0000000000000000-000000003ffb0000 
(XEN) Xen heap: 9MB (10184kB) 
(XEN) Domain heap initialised: DMA width 32 bits 
(XEN) PAE enabled, limit: 16 GB 
(XEN) found SMP MP-table at 0009d540
 (XEN) DMI 2.3 present. 
(XEN) (1) Mapped 0xf601f to ff0f601f 
(XEN) Using APIC driver default 
 (XEN) IN acpi_parse_fadt. 
(XEN) Signature of acpi str. @ fff9bec0 before mapping: A__ADR 
(XEN) (2) Mapped 0x3ffcfec0 to fff9bec0, base = 0xfff9b000 
(XEN) ACPI: PM-Timer IO Port: 0x588 
 success on first attempt :-)
 
 (XEN) (2) Mapped 0x3ffcfd80 to fff9bd80, base = 0xfff9b000 
(XEN) ACPI: ACPI SLEEP INFO: pm1x_cnt[584,0], pm1x_evt[580,0] 
(XEN)                  wakeup_vec[3ffcfd8c],
vec_size[20] 
 
 (XEN) IN acpi_parse_fadt. 
(XEN) Signature of acpi str. @ fff9bec0 before mapping: FACP„ 
(XEN) (2) Mapped 0x3ffcfec0 to fff9bec0, base = 0xfff9b000 
(XEN) ACPI: PM-Timer IO Port: 0x588
 
    Stefan
  
>  
>  -- Keir 
>  
> On 10/8/07 14:58, "Stefan Berger" <stefanb@xxxxxxxxxx>
wrote: 
 >  
> Looking at the signature of the structure BEFORE the mapping happens 
> (with hard coded address 0xfff9bec0)  shows the same signature
 
> before and after the mapping - at least on first try.  
> Hm, does the mapping code maybe not do the mapping again if it  
> thinks that the memory has already been mapped, but the code for  
> that testing has a bug? Otherwise a caching problem?  
>  
>  Stefan  
>  
> [...]  
> (XEN) PAE enabled, limit: 16 GB 
> (XEN) found SMP MP-table at 0009d540 
> (XEN) DMI 2.3 present. 
> (XEN) (1) Mapped 0xf601f to ff0f601f 
> (XEN) Using APIC driver default 
>  
>  
> (XEN) IN acpi_parse_fadt. 
> (XEN) Signature of acpi str. @ fff9bec0 before mapping: A__ADR 
> (XEN) (2) Mapped 0x3ffcfec0 to fff9bec0, base = 0xfff9b000 
> (XEN) ACPI: Invalid FADT signature A__ADR 
>  
>  
> (XEN) IN acpi_parse_fadt. 
> (XEN) Signature of acpi str. @ fff9bec0 before mapping: A__ADR 
> (XEN) (2) Mapped 0x3ffcfec0 to fff9bec0, base = 0xfff9b000 
> (XEN) ACPI: PM-Timer IO Port: 0x588 
>  
>  
> (XEN) (2) Mapped 0x3ffcfd80 to fff9bd80, base = 0xfff9b000 
> (XEN) ACPI: ACPI SLEEP INFO: pm1x_cnt[584,0], pm1x_evt[580,0] 
> (XEN)                  wakeup_vec[3ffcfd8c],
vec_size[20] 
> (XEN) IN acpi_parse_fadt. 
> (XEN) Signature of acpi str. @ fff9bec0 before mapping: FACP„ 
> (XEN) (2) Mapped 0x3ffcfec0 to fff9bec0, base = 0xfff9b000 
> (XEN) ACPI: PM-Timer IO Port: 0x588 
> (XEN) (2) Mapped 0x3ffcfd80 to fff9bd80, base = 0xfff9b000 
> (XEN) ACPI: ACPI SLEEP INFO: pm1x_cnt[584,0], pm1x_evt[580,0] 
> (XEN)                  wakeup_vec[3ffcfd8c],
vec_size[20] 
> (XEN) IN acpi_parse_fadt.  
>  
>  
> "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote on 08/10/2007
04:51:57 AM: 
>  
> > A TLB flushing issue (perhaps not even in software, as map_pages_to_xen() 
> > appears to not have any problems in that respect)? Can you check
what 
> > is at the offset into the mapped page after mapping the DSDT
(which is the 
> > one place where the virtual page fff9bXXX gets associated with
a different 
> > physical one; all other mappings map the same physical page),
but before 
> > (re-)mapping the FADT? If that's not the data you observe, any
chance 
> > you can find out (e.g. under native Linux) where the observed
data really 
> > lives, to get an understanding where else such a broken translation
could 
> > come from? 
> >  
> > Jan 
> >  
> > >>> Stefan Berger <stefanb@xxxxxxxxxx> 09.08.07
19:54 >>> 
> > Keir Fraser <keir@xxxxxxxxxxxxx> wrote on 08/09/2007 09:33:01
AM: 
> >  
> > > I'll wait for the real root cause to be discovered. 
> >  
> > We have two blades of different type where we saw the problem
with the  
> > time going backwards.  
> >  
> > I used one of them to find out what is going on and where also
the  
> > previous xm dmesg dumps are coming. I gave that blade a BIOS
update two  
> > days ago. On this one Xen parsed the DSDT as the FADT (see posted
xm  
> > dmesg), but in the meantime this has corrected itself (no idea
what  
> > triggered this) and now the correct table is parsed and the correct
 
> > PM-Timer port is picked up - the same as Linux has found out.
So the first  
> > blade has become useless for this type of debugging. 
> >  
> > The second blade is up-to-date in terms of BIOS and I even went
into the  
> > BIOS setup to give it a chance to maybe correct some things from
a  
> > previous update. On this one the allegded FADT's signature is
'A_AD' and a  
> > bogus timer port is still picked up there (0x4000 0837), while
Linux  
> > (2.6.20) gets the port right (0x588) as it seems. 
> >  
> >  
> > On this second blade I now call the function parsing the fadt
multiple  
> > times, and here is what happens: 
> >  
> >  
> > (XEN) System RAM: 1023MB (1047860kB) 
> > (XEN) (1) Mapped 0xfdfc0 to ff0fdfc0 
> > (XEN) ACPI: RSDP (v000 IBM          
                     
) @  
> > 0x000fdfc0 
> > (XEN) (2) Mapped 0x3ffcff80 to fff9bf80 
> > (XEN) (2) Mapped 0x3ffcff80 to fff9bf80 
> > (XEN) sdt_entry[0].pa = 0x3ffcfec0 
> > (XEN) sdt_entry[1].pa = 0x3ffcfe00 
> > (XEN) sdt_entry[2].pa = 0x3ffcfdc0 
> > (XEN) sign: RSDT; name=RSDT0 
> > (XEN) ACPI: RSDT (v001 IBM    SERBLADE 0x00001000 IBM
 0x45444f43) @  
> > 0x3ffcff80 
> > (XEN) (2) Mapped 0x3ffcfec0 to fff9bec0 
> > (XEN) (2) Mapped 0x3ffcfec0 to fff9bec0 
> > (XEN) sign: FACP; name=FADT 
> > (XEN) ACPI: FADT (v002 IBM    SERBLADE 0x00001000 IBM
 0x45444f43) @  
> > 0x3ffcfec0 
> > (XEN) std_entry[0].id = 7,matches sign FACP 
> > (XEN) (2) Mapped 0x3ffcfe00 to fff9be00 
> > (XEN) (2) Mapped 0x3ffcfe00 to fff9be00 
> > (XEN) sign: APIC; name=MADT 
> > (XEN) ACPI: MADT (v001 IBM    SERBLADE 0x00001000 IBM
 0x45444f43) @  
> > 0x3ffcfe00 
> > (XEN) std_entry[1].id = 1,matches sign APIC 
> > (XEN) (2) Mapped 0x3ffcfdc0 to fff9bdc0 
> > (XEN) (2) Mapped 0x3ffcfdc0 to fff9bdc0 
> > (XEN) sign: MCFG; name=MCFG< 
> > (XEN) ACPI: MCFG (v001 IBM    SERBLADE 0x00001000 IBM
 0x45444f43) @  
> > 0x3ffcfdc0 
> > (XEN) std_entry[2].id = 18,matches sign MCFG 
> > (XEN) (2) Mapped 0x3ffcfec0 to fff9bec0 
> > (XEN) (2) Mapped 0x3ffbe4a8 to fff9b4a8 
> > (XEN) sign: DSDT; name=DSDT 
> > (XEN) ACPI: DSDT (v001 IBM    SERBLADE 0x00001000 INTL
0x02002025) @  
> > 0x00000000 
> > (XEN) NUMA turned off 
> > (XEN) Faking a node at 0000000000000000-000000003ffb0000 
> > (XEN) Xen heap: 9MB (10184kB) 
> > (XEN) Domain heap initialised: DMA width 32 bits 
> > (XEN) PAE enabled, limit: 16 GB 
> > (XEN) found SMP MP-table at 0009d540 
> > (XEN) DMI 2.3 present. 
> > (XEN) (1) Mapped 0xf601f to ff0f601f 
> > (XEN) Using APIC driver default 
> > (XEN) (2) Mapped 0x3ffcfec0 to fff9bec0 
> > (XEN) ACPI: Invalid FADT signature A__ADR 
> >  
> > That one is bad. It has a bad signature! First call. 
> >  
> >  
> > (XEN) (2) Mapped 0x3ffcfec0 to fff9bec0 
> > (XEN) ACPI: PM-Timer IO Port: 0x588 
> >  
> > 2nd call. This one is good! POrt is also good. 
> >  
> > (XEN) (2) Mapped 0x3ffcfd80 to fff9bd80 
> > (XEN) ACPI: ACPI SLEEP INFO: pm1x_cnt[584,0], pm1x_evt[580,0] 
> > (XEN)                
 wakeup_vec[3ffcfd8c], vec_size[20] 
> > (XEN) (2) Mapped 0x3ffcfec0 to fff9bec0 
> > (XEN) ACPI: PM-Timer IO Port: 0x588 
> >  
> > 3rd call. This one is also good! 
> >  
> > Looks like the mapping does not work correctly. 
> >  
> >    Stefan 
> >  
> > >  
> > >  -- Keir 
> > >  
> > > On 9/8/07 14:35, "Stefan Berger" <stefanb@xxxxxxxxxx>
wrote: 
> > >  
> > > > Check the signature of the alleged FADT and only parse
it if it really 
> > > > is the FADT and not something else. I understand that
this is not the 
> > > > real solution, but prevents other bad things from happening,
like the 
> > > > timer going backwards if a bogus PM-Timer port is picked
up. 
> > > >  
> > > > Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxx> 
> > > >  
> > > > _______________________________________________ 
> > > > Xen-devel mailing list 
> > > > Xen-devel@xxxxxxxxxxxxxxxxxxx  
> > > > http://lists.xensource.com/xen-devel  
> > >  
>  
> _______________________________________________ 
> Xen-devel mailing list 
> Xen-devel@xxxxxxxxxxxxxxxxxxx 
> http://lists.xensource.com/xen-devel_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
 |   
 
| <Prev in Thread] | 
Current Thread | 
[Next in Thread>
 |  
- [Xen-devel] [PATCH] [Xen] Check FADT's signature, Stefan Berger
- Re: [Xen-devel] [PATCH] [Xen] Check FADT's signature, Keir Fraser
 
- Re: [Xen-devel] [PATCH] [Xen] Check FADT's signature, Jan Beulich
 - Re: [Xen-devel] [PATCH] [Xen] Check FADT's signature, Stefan Berger
 - Re: [Xen-devel] [PATCH] [Xen] Check FADT's signature, Keir Fraser
 - Re: [Xen-devel] [PATCH] [Xen] Check FADT's signature,
Stefan Berger <=
 - Re: [Xen-devel] [PATCH] [Xen] Check FADT's signature, Keir Fraser
 - Re: [Xen-devel] [PATCH] [Xen] Check FADT's signature, Stefan Berger
 - Re: [Xen-devel] [PATCH] [Xen] Check FADT's signature, Keir Fraser
 - Re: [Xen-devel] [PATCH] [Xen] Check FADT's signature, Stefan Berger
 - Re: [Xen-devel] [PATCH] [Xen] Check FADT's signature, Keir Fraser
 - Re: [Xen-devel] [PATCH] [Xen] Check FADT's signature, Keir Fraser
 - Re: [Xen-devel] [PATCH] [Xen] Check FADT's signature, Stefan Berger
 - Re: [Xen-devel] [PATCH] [Xen] Check FADT's signature, Jan Beulich
 - Re: [Xen-devel] [PATCH] [Xen] Check FADT's signature, Keir Fraser
 
  
- Re: [Xen-devel] [PATCH] [Xen] Check FADT's signature, Keir Fraser
 
 
 |  
  
 | 
    |