Messages in this thread | | | Date | Tue, 9 Dec 2014 12:08:03 +1100 | From | Gavin Shan <> | Subject | Re: [PATCH] PCI: Clear bridge MEM_64 flag if one child does not support it |
| |
On Mon, Dec 08, 2014 at 03:59:54PM -0800, Yinghai Lu wrote: >On Mon, Dec 8, 2014 at 2:56 PM, Benjamin Herrenschmidt ><benh@kernel.crashing.org> wrote: >> On Mon, 2014-12-08 at 13:52 -0800, Yinghai Lu wrote: >>> 2. or scan the children resource other than ROM to clear bridge MEM_64 >>> for mmio pref. >>> >>> The patch is using second way so will keep child mmio pref into bridge >>> mmio pref range. >> >> That means that having a single ROM BAR that is 32-bit and prefetchable >> will downgrade the entire window to 32-bit ? That's not going to work >> either. > >the ROM BAR get skipped during the checking. > >+ if (i != PCI_ROM_RESOURCE) >+ mem64_mask &= r->flags & IORESOURCE_MEM_64; >+ } > >> >> I have GPUs with 16G BARs for example... suddenly they don't fit >> anaymore because we downgraded the window to 32 bit because somewhere >> there's a 32-bit pref resource ? >> >> That will break more than it fixes... > >Please check if this patch break your platform. I tried on my setup on >x86. and it is still >working on 64 bit resource allocation. >
Yinghai, With the patch, the Power8 machine boots up and have resources assigned properly: 64-bits pref BARs are covered by 64-bits pref windows and left memory BARs are covered by 32-bits non-pref windows. Note that I didn't find an 32-bits-pref BAR on the system.
For SRIOV case, Richard still need test.
Thanks, Gavin
>Thanks > >Yinghai >
| |