[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-ia64-devel] [Patch][RFC] allocate all memory to dom0
Akio, Isaku > > The original motivation is to get modular vnif work. > > Now xencomm has been merged, this isn't an issue anymore. > > Akio, Is this right? > > > Yes, you are right. > I have not tried to check modular vnif yet. > But I have checked it with cset 11635 + Tristan's xen-xcom-[a-c]3. diffs. > The results is good work. I'm a bit confused. I thought Akio's issue is related to vnif backend's allocation failure (order=8 request), so, I don't understand why xencom patch resolved the issue. Could you explain why?, sorry for my ignorance. Thanks, Yoshi Akio Takebe <takebe_akio@xxxxxxxxxxxxxx> wrote: > Hi, Isaku and Tristan > > Thank you for your comments. > > > >On Thu, Oct 05, 2006 at 04:55:07PM +0900, Isaku Yamahata wrote: > >> On Thu, Oct 05, 2006 at 04:00:20PM +0900, Akio Takebe wrote: > >> > Hi, > >> > > >> > Also in the case of current Xen-ia64-unstable(cset:11721), > >> > this panic is occured by specified dom0_mem=4G. > >> > (without my patch) > >> > > >> > I think the following error message is hint of this bug. > >> > (XEN) Warning: UC to WB for mpaddr=f9ff0000 > >> > > >> > I checked the arch/ia64/xen/mm.c > >> > Why changing pteval2 from UC to WB is OK? > >> > If pteval2 is WB and pteval is UC, should pteval2 be changed to UC? > >> > > >> > >> Because it's RAM. not I/O. > >> >From your log > >> > (XEN) dom mem: type= 7, attr=0x0000000000000008, range= > >> > [0x0000000080000000-0x00000000fe000000) (2016MB) > >> Probably ioremap hypercall failed. > >> Please check it by adding debug message assign_domain_same_page(). > >> I suppose it should complain somehow. > >> > >> > >> The warning message is the result of Linux tries to use the addresses > >> for I/O which is RAM. > >> Then the next question is why/how Linux decided to use the addresses > >> to map I/O. > >> iomem_resource manages those regions so that such a overlap > >> shouldn't happen. > > > >This is wrong. Linux doesn't complain. > >Dom0 builder assigns RAM which overlaps with PCI I/O so that > >dom0Linux can't access PCI devices. > >So far no one has assigned so much memory to dom0, > >this wasn't an issue. > > Thank you for your infomation!. > I checked Linux /proc/iomem. You are right. > # cat /proc/iomem > [snip..] > f8e00000-f8efffff : 0000:06:02.1 > f8fc0000-f8fcffff : 0000:06:02.0 > f8fd0000-f8fdffff : 0000:06:02.0 > f8fe0000-f8feffff : 0000:06:02.1 > f8ff0000-f8ffffff : 0000:06:02.1 > f9000000-fbffffff : PCI Bus 0000:00 <-----------this > f9ff0000-f9ff03ff : 0000:00:1d.7 > f9ff0000-f9ff03ff : ehci_hcd > fa000000-fbffffff : PCI Bus #01 > fa000000-faffffff : 0000:01:01.0 > > > And the below is dom0 map at dom0_mem=2G and dom0_mem=4G. > dom0_mem=4G > (XEN) dom mem: type=13, attr=0x8000000000000008, range= [0x0000000000000000-0x0000000000001000) (4KB) > (XEN) dom mem: type=10, attr=0x8000000000000008, range= [0x0000000000001000-0x0000000000002000) (4KB) > (XEN) dom mem: type= 6, attr=0x8000000000000008, range= [0x0000000000002000-0x0000000000003000) (4KB) > (XEN) dom mem: type= 7, attr=0x0000000000000009, range= [0x0000000000003000-0x0000000000007000) (16KB) > (XEN) dom mem: type= 7, attr=0x0000000000000009, range= [0x0000000000007000-0x0000000000009000) (8KB) > (XEN) dom mem: type= 7, attr=0x0000000000000009, range= [0x0000000000009000-0x0000000000082000) (484KB) > (XEN) dom mem: type= 6, attr=0x8000000000000009, range= [0x0000000000082000-0x0000000000084000) (8KB) > (XEN) dom mem: type= 7, attr=0x0000000000000009, range= [0x0000000000084000-0x0000000000085000) (4KB) > (XEN) dom mem: type= 7, attr=0x0000000000000009, range= [0x0000000000085000-0x00000000000a0000) (108KB) > (XEN) dom mem: type= 5, attr=0x8000000000000009, range= [0x00000000000c0000-0x0000000000100000) (256KB) > (XEN) dom mem: type= 7, attr=0x0000000000000008, range= [0x0000000000100000-0x000000007f708000) (2038MB) > (XEN) dom mem: type= 5, attr=0x8000000000000009, range= [0x000000007f70a000-0x000000007fb00000) (3MB) > (XEN) dom mem: type= 7, attr=0x0000000000000008, range= [0x000000007fb00000-0x000000007fe00000) (3MB) > (XEN) dom mem: type= 5, attr=0x8000000000000009, range= [0x000000007fe00000-0x000000007fe58000) (352KB) > (XEN) dom mem: type= 7, attr=0x0000000000000008, range= [0x000000007fe58000-0x000000007feb8000) (384KB) > (XEN) dom mem: type= 6, attr=0x8000000000000009, range= [0x000000007feba000-0x0000000080000000) (1MB) > (XEN) dom mem: type= 7, attr=0x0000000000000008, range= [0x0000000080000000-0x00000000fe000000) (2016MB) > (XEN) dom mem: type=11, attr=0x0000000000000001, range= [0x00000000fe000000-0x00000000ff000000) (16MB) > (XEN) dom mem: type= 6, attr=0x8000000000000001, range= [0x00000000ff000000-0x0000000100000000) (16MB) > (XEN) dom mem: type= 6, attr=0x8000000000000009, range= [0x00000001ffffe000-0x0000000200000000) (8KB) > (XEN) dom mem: type= 5, attr=0x8000000000000009, range= [0x00000002ffe14000-0x00000002ffe80000) (432KB) > (XEN) dom mem: type= 6, attr=0x8000000000000009, range= [0x00000002fffb8000-0x0000000300000000) (288KB) > (XEN) dom mem: type=11, attr=0x8000000000000001, range= [0x00000ffff8000000-0x00000ffffc000000) (64MB) > (XEN) dom mem: type=12, attr=0x8000000000000001, range= [0x00000ffffc000000-0x0000100000000000) (64MB) > > > dom0_mem=2G > (XEN) dom mem: type=13, attr=0x8000000000000008, range= [0x0000000000000000-0x0000000000001000) (4KB) > (XEN) dom mem: type=10, attr=0x8000000000000008, range= [0x0000000000001000-0x0000000000002000) (4KB) > (XEN) dom mem: type= 6, attr=0x8000000000000008, range= [0x0000000000002000-0x0000000000003000) (4KB) > (XEN) dom mem: type= 7, attr=0x0000000000000009, range= [0x0000000000003000-0x0000000000007000) (16KB) > (XEN) dom mem: type= 7, attr=0x0000000000000009, range= [0x0000000000007000-0x0000000000009000) (8KB) > (XEN) dom mem: type= 7, attr=0x0000000000000009, range= [0x0000000000009000-0x0000000000082000) (484KB) > (XEN) dom mem: type= 6, attr=0x8000000000000009, range= [0x0000000000082000-0x0000000000084000) (8KB) > (XEN) dom mem: type= 7, attr=0x0000000000000009, range= [0x0000000000084000-0x0000000000085000) (4KB) > (XEN) dom mem: type= 7, attr=0x0000000000000009, range= [0x0000000000085000-0x00000000000a0000) (108KB) > (XEN) dom mem: type= 5, attr=0x8000000000000009, range= [0x00000000000c0000-0x0000000000100000) (256KB) > (XEN) dom mem: type= 7, attr=0x0000000000000008, range= [0x0000000000100000-0x000000007f708000) (2038MB) > (XEN) dom mem: type= 5, attr=0x8000000000000009, range= [0x000000007f70a000-0x000000007fb00000) (3MB) > (XEN) dom mem: type= 7, attr=0x0000000000000008, range= [0x000000007fb00000-0x000000007fe00000) (3MB) > (XEN) dom mem: type= 5, attr=0x8000000000000009, range= [0x000000007fe00000-0x000000007fe58000) (352KB) > (XEN) dom mem: type= 7, attr=0x0000000000000008, range= [0x000000007fe58000-0x000000007feb8000) (384KB) > (XEN) dom mem: type= 6, attr=0x8000000000000009, range= [0x000000007feba000-0x0000000080000000) (1MB) > (XEN) dom mem: type=11, attr=0x0000000000000001, range= [0x00000000fe000000-0x00000000ff000000) (16MB) > (XEN) dom mem: type= 6, attr=0x8000000000000001, range= [0x00000000ff000000-0x0000000100000000) (16MB) > (XEN) dom mem: type= 6, attr=0x8000000000000009, range= [0x00000001ffffe000-0x0000000200000000) (8KB) > (XEN) dom mem: type= 5, attr=0x8000000000000009, range= [0x00000002ffe14000-0x00000002ffe80000) (432KB) > (XEN) dom mem: type= 6, attr=0x8000000000000009, range= [0x00000002fffb8000-0x0000000300000000) (288KB) > (XEN) dom mem: type=11, attr=0x8000000000000001, range= [0x00000ffff8000000-0x00000ffffc000000) (64MB) > (XEN) dom mem: type=12, attr=0x8000000000000001, range= [0x00000ffffc000000-0x0000100000000000) (64MB) > > > > > > > >I think there are two right way. > >A avoid overlap somehow > > A.0 fake up ACPI table and assign pci somewhere. > > A.1 detect pci bridge > > To detect the region of pci bridge, it is necessary to parse > > ACPI table. But xen doesn't have such a ACPI parser. > > A.2 As a temporal work around, we can introduce xen boot option to > > indicate pci io area. > > A.3 assign RAM following the original MD. > > This might be easy. > > The current complete_dom0_memmap() seeks a gap and fill it > > with RAM. modify it so that it only assigns RAM only when > > a found gap is in baremetal's RAM. > >B modify ioremap hypercall and linux ioremap somehow > > to not use ram region. > > Probably Linux ioremap() wouldn't return __IA64_UNCACHED_OFFSET| offset > > so that iounmap() might need to be implemented. > >C don't give so much memory to dom0 > > The original motivation is to get modular vnif work. > > Now xencomm has been merged, this isn't an issue anymore. > > Akio, Is this right? > > > Yes, you are right. > I have not tried to check modular vnif yet. > But I have checked it with cset 11635 + Tristan's xen-xcom-[a-c]3. diffs. > The results is good work. > > > >Option C or A.3 is preferable. I don't think those are > >ery good, though. Any ideas? > > > I also prefer A.3 to others. > > Best Regards, > > Akio Takebe > > > _______________________________________________ > Xen-ia64-devel mailing list > Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-ia64-devel _______________________________________________ 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 |