[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Buffers not reachable by PCI
Instrumentation results: [ 0.000000] MFN 0x1c0->0x1c0 [ 0.000000] MFN 0x1ff->0x180 [ 0.000000] MFN 0x1bf->0x140 [ 0.000000] MFN 0x17f->0x100 [ 0.000000] MFN 0x13f->0x3c0 [ 0.000000] MFN 0x3ff->0x380 [ 0.000000] MFN 0x3bf->0x340 [ 0.000000] MFN 0x37f->0x300 [ 0.000000] MFN 0x33f->0x2c0 [ 0.000000] MFN 0x2ff->0x280 [ 0.000000] MFN 0x2bf->0x240 [ 0.000000] MFN 0x27f->0x200 [ 0.000000] MFN 0x23f->0x7c0 [ 0.000000] MFN 0x7ff->0x780 [ 0.000000] MFN 0x7bf->0x740 [ 0.000000] MFN 0x77f->0x700 [ 0.000000] MFN 0x73f->0x6c0 [ 0.000000] MFN 0x6ff->0x680 [ 0.000000] MFN 0x6bf->0x640 [ 0.000000] MFN 0x67f->0x600 [ 0.000000] MFN 0x63f->0x5c0 [ 0.000000] MFN 0x5ff->0x580 [ 0.000000] MFN 0x5bf->0x540 [ 0.000000] MFN 0x57f->0x500 [ 0.000000] MFN 0x53f->0x4c0 [ 0.000000] MFN 0x4ff->0x480 [ 0.000000] MFN 0x4bf->0x440 [ 0.000000] MFN 0x47f->0x400 [ 0.000000] MFN 0x43f->0xfc0 [ 0.000000] MFN 0xfff->0xf80 [ 0.000000] MFN 0xfbf->0xf40 [ 0.000000] MFN 0xf7f->0xf00 [ 0.000000] MFN 0xf3f->0xec0 [ 0.000000] MFN 0xeff->0xe80 [ 0.000000] MFN 0xebf->0xe40 [ 0.000000] MFN 0xe7f->0xe00 [ 0.000000] MFN 0xe3f->0xdc0 [ 0.000000] MFN 0xdff->0xd80 [ 0.000000] MFN 0xdbf->0xd40 [ 0.000000] MFN 0xd7f->0xd00 [ 0.000000] MFN 0xd3f->0xcc0 [ 0.000000] MFN 0xcff->0xc80 [ 0.000000] MFN 0xcbf->0xc40 [ 0.000000] MFN 0xc7f->0xc00 [ 0.000000] MFN 0xc3f->0xbc0 [ 0.000000] MFN 0xbff->0xb80 [ 0.000000] MFN 0xbbf->0xb40 [ 0.000000] MFN 0xb7f->0xb00 [ 0.000000] MFN 0xb3f->0xac0 [ 0.000000] MFN 0xaff->0xa80 [ 0.000000] MFN 0xabf->0xa40 [ 0.000000] MFN 0xa7f->0xa00 [ 0.000000] MFN 0xa3f->0x9c0 [ 0.000000] MFN 0x9ff->0x980 [ 0.000000] MFN 0x9bf->0x940 [ 0.000000] MFN 0x97f->0x900 [ 0.000000] MFN 0x93f->0x8c0 [ 0.000000] MFN 0x8ff->0x880 [ 0.000000] MFN 0x8bf->0x840 [ 0.000000] MFN 0x87f->0x800 [ 0.000000] MFN 0x83f->0x1fc0 [ 0.000000] MFN 0x1fff->0x1f80 [ 0.000000] MFN 0x1fbf->0x1f40 [ 0.000000] MFN 0x1f7f->0x1f00 [ 0.000000] MFN 0x1f3f->0x1ec0 [ 0.000000] MFN 0x1eff->0x1e80 [ 0.000000] MFN 0x1ebf->0x1e40 [ 0.000000] MFN 0x1e7f->0x1e00 [ 0.000000] MFN 0x1e3f->0x1dc0 [ 0.000000] MFN 0x1dff->0x1d80 [ 0.000000] MFN 0x1dbf->0x1d40 [ 0.000000] MFN 0x1d7f->0x1d00 [ 0.000000] MFN 0x1d3f->0x1cc0 [ 0.000000] MFN 0x1cff->0x1c80 [ 0.000000] MFN 0x1cbf->0x1c40 [ 0.000000] MFN 0x1c7f->0x1c00 [ 0.000000] MFN 0x1c3f->0x1bc0 [ 0.000000] MFN 0x1bff->0x1b80 [ 0.000000] MFN 0x1bbf->0x1b40 [ 0.000000] MFN 0x1b7f->0x1b00 [ 0.000000] MFN 0x1b3f->0x1ac0 [ 0.000000] MFN 0x1aff->0x1a80 [ 0.000000] MFN 0x1abf->0x1a40 [ 0.000000] MFN 0x1a7f->0x1a00 [ 0.000000] MFN 0x1a3f->0x19c0 [ 0.000000] MFN 0x19ff->0x1980 [ 0.000000] MFN 0x19bf->0x1940 [ 0.000000] MFN 0x197f->0x1900 [ 0.000000] MFN 0x193f->0x18c0 [ 0.000000] MFN 0x18ff->0x1880 [ 0.000000] MFN 0x18bf->0x1840 [ 0.000000] MFN 0x187f->0x1800 [ 0.000000] MFN 0x183f->0x17c0 [ 0.000000] MFN 0x17ff->0x1780 [ 0.000000] MFN 0x17bf->0x1740 [ 0.000000] MFN 0x177f->0x1700 [ 0.000000] MFN 0x173f->0x16c0 [ 0.000000] MFN 0x16ff->0x1680 [ 0.000000] MFN 0x16bf->0x1640 [ 0.000000] MFN 0x167f->0x1600 [ 0.000000] MFN 0x163f->0x15c0 [ 0.000000] MFN 0x15ff->0x1580 [ 0.000000] MFN 0x15bf->0x1540 [ 0.000000] MFN 0x157f->0x1500 [ 0.000000] MFN 0x153f->0x14c0 [ 0.000000] MFN 0x14ff->0x1480 [ 0.000000] MFN 0x14bf->0x1440 [ 0.000000] MFN 0x147f->0x1400 [ 0.000000] MFN 0x143f->0x13c0 [ 0.000000] MFN 0x13ff->0x1380 [ 0.000000] MFN 0x13bf->0x1340 [ 0.000000] MFN 0x137f->0x1300 [ 0.000000] MFN 0x133f->0x12c0 [ 0.000000] MFN 0x12ff->0x1280 [ 0.000000] MFN 0x12bf->0x1240 [ 0.000000] MFN 0x127f->0x1200 [ 0.000000] MFN 0x123f->0x11c0 [ 0.000000] MFN 0x11ff->0x1180 [ 0.000000] MFN 0x11bf->0x1140 [ 0.000000] MFN 0x117f->0x1100 [ 0.000000] MFN 0x113f->0x10c0 [ 0.000000] MFN 0x10ff->0x1080 [ 0.000000] MFN 0x10bf->0x1040 [ 0.000000] MFN 0x107f->0x1000 [ 0.000000] MFN 0x103f->0x3fc0 [ 0.000000] MFN 0x3fff->0x3f80 [ 0.000000] MFN 0x3fbf->0x3f40 [ 0.000000] MFN 0x3f7f->0x3f00 [ 0.000000] MFN 0x3f3f->0x3ec0 [ 0.000000] MFN 0x3eff->0x3e80 [ 0.000000] MFN 0x3ebf->0x3e40 [ 0.000000] MFN 0x3e7f->0x3e00 [ 0.000000] MFN 0x3e3f->0x3dc0 [ 0.000000] MFN 0x3dff->0x3d80 [ 0.000000] MFN 0x3dbf->0x3d40 [ 0.000000] MFN 0x3d7f->0x3d00 [ 0.000000] MFN 0x3d3f->0x3cc0 [ 0.000000] MFN 0x3cff->0x3c80 [ 0.000000] MFN 0x3cbf->0x3c40 [ 0.000000] MFN 0x3c7f->0x3c00 [ 0.000000] MFN 0x3c3f->0x3bc0 [ 0.000000] MFN 0x3bff->0x3b80 [ 0.000000] MFN 0x3bbf->0x3b40 [ 0.000000] MFN 0x3b7f->0x3b00 [ 0.000000] MFN 0x3b3f->0x3ac0 [ 0.000000] MFN 0x3aff->0x3a80 [ 0.000000] MFN 0x3abf->0x3a40 [ 0.000000] MFN 0x3a7f->0x3a00 [ 0.000000] MFN 0x3a3f->0x39c0 [ 0.000000] MFN 0x39ff->0x3980 [ 0.000000] MFN 0x39bf->0x3940 [ 0.000000] MFN 0x397f->0x3900 [ 0.000000] MFN 0x393f->0x38c0 [ 0.000000] MFN 0x38ff->0x3880 [ 0.000000] MFN 0x38bf->0x3840 [ 0.000000] MFN 0x387f->0x3800 [ 0.000000] MFN 0x383f->0x37c0 [ 0.000000] MFN 0x37ff->0x3780 [ 0.000000] MFN 0x37bf->0x3740 [ 0.000000] MFN 0x377f->0x3700 [ 0.000000] MFN 0x373f->0x36c0 [ 0.000000] MFN 0x36ff->0x3680 [ 0.000000] MFN 0x36bf->0x3640 [ 0.000000] MFN 0x367f->0x3600 [ 0.000000] MFN 0x363f->0x35c0 [ 0.000000] MFN 0x35ff->0x3580 [ 0.000000] MFN 0x35bf->0x3540 [ 0.000000] MFN 0x357f->0x3500 [ 0.000000] MFN 0x353f->0x34c0 [ 0.000000] MFN 0x34ff->0x3480 [ 0.000000] MFN 0x34bf->0x3440 [ 0.000000] MFN 0x347f->0x3400 [ 0.000000] MFN 0x343f->0x33c0 [ 0.000000] MFN 0x33ff->0x3380 [ 0.000000] MFN 0x33bf->0x3340 [ 0.000000] MFN 0x337f->0x3300 [ 0.000000] MFN 0x333f->0x32c0 [ 0.000000] MFN 0x32ff->0x3280 [ 0.000000] MFN 0x32bf->0x3240 [ 0.000000] MFN 0x327f->0x3200 [ 0.000000] MFN 0x323f->0x31c0 [ 0.000000] MFN 0x31ff->0x3180 [ 0.000000] MFN 0x31bf->0x3140 [ 0.000000] MFN 0x317f->0x3100 [ 0.000000] MFN 0x313f->0x30c0 [ 0.000000] MFN 0x30ff->0x3080 [ 0.000000] MFN 0x30bf->0x3040 [ 0.000000] MFN 0x307f->0x3000 [ 0.000000] MFN 0x303f->0x2fc0 [ 0.000000] MFN 0x2fff->0x2f80 [ 0.000000] MFN 0x2fbf->0x2f40 [ 0.000000] MFN 0x2f7f->0x2f00 [ 0.000000] MFN 0x2f3f->0x2ec0 [ 0.000000] MFN 0x2eff->0x2e80 [ 0.000000] MFN 0x2ebf->0x2e40 [ 0.000000] MFN 0x2e7f->0x2e00 [ 0.000000] MFN 0x2e3f->0x2dc0 [ 0.000000] MFN 0x2dff->0x2d80 [ 0.000000] MFN 0x2dbf->0x2d40 [ 0.000000] MFN 0x2d7f->0x2d00 [ 0.000000] MFN 0x2d3f->0x2cc0 [ 0.000000] MFN 0x2cff->0x2c80 [ 0.000000] MFN 0x2cbf->0x2c40 [ 0.000000] MFN 0x2c7f->0x2c00 [ 0.000000] MFN 0x2c3f->0x2bc0 [ 0.000000] MFN 0x2bff->0x2b80 [ 0.000000] MFN 0x2bbf->0x2b40 [ 0.000000] MFN 0x2b7f->0x2b00 [ 0.000000] MFN 0x2b3f->0x2ac0 [ 0.000000] MFN 0x2aff->0x2a80 [ 0.000000] MFN 0x2abf->0x2a40 [ 0.000000] MFN 0x2a7f->0x2a00 [ 0.000000] MFN 0x2a3f->0x29c0 [ 0.000000] MFN 0x29ff->0x2980 [ 0.000000] MFN 0x29bf->0x2940 [ 0.000000] MFN 0x297f->0x2900 [ 0.000000] MFN 0x293f->0x28c0 [ 0.000000] MFN 0x28ff->0x2880 [ 0.000000] MFN 0x28bf->0x2840 [ 0.000000] MFN 0x287f->0x2800 [ 0.000000] MFN 0x283f->0x27c0 [ 0.000000] MFN 0x27ff->0x2780 [ 0.000000] MFN 0x27bf->0x2740 [ 0.000000] MFN 0x277f->0x2700 [ 0.000000] MFN 0x273f->0x26c0 [ 0.000000] MFN 0x26ff->0x2680 [ 0.000000] MFN 0x26bf->0x2640 [ 0.000000] MFN 0x267f->0x2600 [ 0.000000] MFN 0x263f->0x25c0 [ 0.000000] MFN 0x25ff->0x2580 [ 0.000000] MFN 0x25bf->0x2540 [ 0.000000] MFN 0x257f->0x2500 [ 0.000000] MFN 0x253f->0x24c0 [ 0.000000] MFN 0x24ff->0x2480 [ 0.000000] MFN 0x24bf->0x2440 [ 0.000000] MFN 0x247f->0x2400 [ 0.000000] MFN 0x243f->0x23c0 [ 0.000000] MFN 0x23ff->0x2380 [ 0.000000] MFN 0x23bf->0x2340 [ 0.000000] MFN 0x237f->0x2300 [ 0.000000] MFN 0x233f->0x22c0 [ 0.000000] MFN 0x22ff->0x2280 [ 0.000000] MFN 0x22bf->0x2240 [ 0.000000] MFN 0x227f->0x2200 [ 0.000000] MFN 0x223f->0x21c0 [ 0.000000] MFN 0x21ff->0x2180 [ 0.000000] MFN 0x21bf->0x2140 [ 0.000000] MFN 0x217f->0x2100 [ 0.000000] MFN 0x213f->0x20c0 [ 0.000000] MFN 0x20ff->0x2080 [ 0.000000] MFN 0x20bf->0x2040 [ 0.000000] MFN 0x207f->0x2000 [ 0.000000] MFN 0x203f->0x7fc0 [ 0.000000] MFN 0x7fff->0x7f80 [ 0.000000] MFN 0x7fbf->0x7f40 [ 0.000000] MFN 0x7f7f->0x7f00 [ 0.000000] Placing 64MB software IO TLB between d832cf00 - dc32cf00 [ 0.000000] software IO TLB at phys 0x1832cf00 - 0x1c32cf00 [ 0.000000] software IO TLB at bus 0x1c0f00 - 0x120fdff00 [ 0.000000] Initializing HighMem for node 0 (000373fe:001dffc0) [ 0.000000] Memory: 384804k/7864064k available (2338k kernel code, 139036k reserved, 1197k data, 372k init, 0k highmem) Actual code in xen_swiotlb_init after xen_swiotlb_fixup call: { phys_addr_t pstart, pend; unsigned long mfn, next_mfn; int i; pstart = virt_to_phys(xen_io_tlb_start); pend = virt_to_phys(xen_io_tlb_end); mfn= PFN_DOWN(phys_to_machine(XPADDR(pstart)).maddr); for (i = pstart; i < pend;) { next_mfn = PFN_DOWN(phys_to_machine(XPADDR(i)).maddr); if (next_mfn == mfn+1) { mfn++; } else { printk(KERN_INFO "MFN 0x%lx->0x%lx\n", mfn, next_mfn); mfn = next_mfn; } i+=PAGE_SIZE; } } We're not getting so far along as to be running xend yet. That normally gets started remotely and without networks it doesn't happen. I can probably do that tomorrow. -----Original Message----- From: Konrad Rzeszutek Wilk [mailto:konrad.r.wilk@xxxxxxxxx] On Behalf Of Konrad Rzeszutek Wilk Sent: Tuesday, December 13, 2011 3:28 PM To: Taylor, Neal E Cc: xen-devel; Kalev, Leonid; Dave, Tushar N Subject: Re: [Xen-devel] Buffers not reachable by PCI On Tue, Dec 13, 2011 at 10:17:50PM +0000, Taylor, Neal E wrote: > > Is it the translation that's in error? > > Modeled after the translation in xen_swiotlb_dma_supported that's used for > the problematic comparison, I added "the same" translation to swiotlb_print. > I don't understand the results as dend - dstart is vastly larger that pend - > pstart. You might want to instrument the xen_swiotlb_fixup code to get an idea. But basically there are "chunks" of 2MB (I think) of contingous memory that is swizzled in to the memory that starts at io_tlb_start. But all of that memory SHOULD be under the 4GB limit (set by max_dma_bits). Sadly in your case one of those "chunks" ends up being past the 4GB limit - which should never happen. Or if it did happen it would print out "Failed to get contiguous memory for DMA from.." But you don't get any of that. To get a good idea of this, you could do something like this unsigned long mfn, next_mfn; mfn= PFN_DOWN(phys_to_machine(XPADDR(pstart)).maddr); for (i = pstart; i < pend;) { next_mfn = PFN_DOWN(phys_to_machine(XPADDR(i)).maddr); if (next_mfn == mfn+1) { mfn++; } else { printk(KERN_INFO "MFN 0x%lx->0x%lx\n", mfn, next_mfn); mfn = next_mfn; } i+=PAGE_SIZE; } which should print you those "chunks", if my logic here is right. Can you send me your 'xl info' (or 'xl dmesg'), please? I tried to reproduce this with a 3.0.4 kernel on a 8GB and I couldn't reproduce this. Hm, will look in your .config in case there is something funky there. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |