[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-ia64-devel] [PATCH][RFC][TAKE4] the P2M/VP patches
On Fri, 2006-04-07 at 13:16 +0900, Isaku Yamahata wrote: > 9512:f5d0a531cb58_dom0_vp_model_xen_part.patch I'm having trouble with the legacy VGA memory descriptor section of this patch. It's a big assumption that the platform has VGA. Shouldn't we be relying on the EFI MDT passed into Xen to provide the mappings for I/O devices? I believe there's some descrepancy between firmware implementations on how the VGA range is identified in the MDT, but I think we need to do more than assume it's there. I added a test in dom_fw_dom0_passthrough() to ignore MMIO ranges larger than 4GB to get over the inital boot problem, but I still get bad mpa faults when booting dom0. My dom0 MDT appears to look like this: (XEN) domain mem: type=2, attr=0x8, range=[0x0000000000000000-0x00000000000b8000) (0MB) (XEN) domain mem: type=2, attr=0x8, range=[0x00000000000b0000-0x0000000000100000) (0MB) (XEN) domain mem: type=13, attr=0x8, range=[0x0000000000100000-0x0000000000200000) (1MB) (XEN) domain mem: type=7, attr=0x8, range=[0x0000000000200000-0x000000001f044000) (494MB) (XEN) domain mem: type=5, attr=0x8000000000000001, range=[0x00000000000c0000-0x0000000000100000) (0MB) (XEN) domain mem: type=5, attr=0x8000000000000008, range=[0x000000003f5e4000-0x000000003fac0000) (4MB) (XEN) domain mem: type=5, attr=0x8000000000000008, range=[0x00000040ffd6a000-0x00000040ffda6000) (0MB) (XEN) domain mem: type=5, attr=0x8000000000000008, range=[0x00000040ffe12000-0x00000040ffe80000) (0MB) (XEN) __assign_domain_page: mpaddr 3fb38000 already mapped! (XEN) domain mem: type=6, attr=0x8000000000000008, range=[0x000000003fb38000-0x0000000040000000) (4MB) (XEN) domain mem: type=6, attr=0x8000000000000008, range=[0x000000027fffe000-0x0000000280000000) (0MB) (XEN) domain mem: type=6, attr=0x8000000000000008, range=[0x00000040fffc0000-0x0000004100000000) (0MB) (XEN) __assign_domain_page: mpaddr a0000 already mapped! (XEN) __assign_domain_page: mpaddr a4000 already mapped! (XEN) __assign_domain_page: mpaddr a8000 already mapped! (XEN) __assign_domain_page: mpaddr ac000 already mapped! (XEN) __assign_domain_page: mpaddr b8000 already mapped! (XEN) __assign_domain_page: mpaddr bc000 already mapped! (XEN) domain mem: type=11, attr=0x3, range=[0x00000000000a0000-0x00000000000c0000) (0MB) (XEN) domain mem: type=11, attr=0x1, range=[0x0000000080000000-0x00000000fe000000) (2016MB) (XEN) domain mem: type=11, attr=0x8000000000000001, range=[0x00000000fed00000-0x0000000100000000) (19MB) (XEN) domain mem: type=12, attr=0x8000000000000001, range=[0x0003fffffc000000-0x0004000000000000) (64MB) This includes numerous overlapping and unordered entries. Linux expects the MDT to be sorted by address and ranges should not overlap. We can't know where firmware is going to place the ranges in physical memory, so I think we need to do something more to make sure this table is sorted, cleaned up, and we don't have firmware tables overlapping the range we claim is usable system memory. Thanks, Alex -- Alex Williamson HP Linux & Open Source Lab _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |