On Mon, Dec 08, 2014 at 11:20:59PM -0800, Yinghai Lu wrote: >On Mon, Dec 8, 2014 at 6:26 PM, Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx> wrote: >> On Tue, Dec 09, 2014 at 11:11:19AM +1100, Gavin Shan wrote: >>> >>>I'm going to give it a spin and Richard, could you please apply Yinghai's >>>patch to see if your SRIOV code can work properly? >>> >> >> I did a quick test on my machine. This patch doesn't affect the MMIO >> allocation on out platform, so SRIOV works fine. >> >> I will spend more time to read the patch to get more understanding about the >> problem. > >Hi Marek, > >Can you boot following branch with "debug ignore_loglevel pci=realloc" >on your setup? > >git://git.kernel.org/pub/scm/linux/kernel/git/yinghai/linux-yinghai.git >for-pci-allocate-fit-3.18 > >it has >8f74af9: PCI, x86: Allocate mmio near end of free range >1ff91c1: PCI: Don't allocate small resource in big free space. >108b43b: resources: Add allocate_resource_fit() >b6a22f0: resources: Make find_resource could return just fit resource >cf50e16: resources: Split out __allocate_resource() > >on top the v3.18, and it will allocate resource in fit way. Hi, Yinghai Just spent some time to understand the problem and your patch. Two comments to this patch: 1. realloc_head is not necessary here 2. In case we have two MEM BAR under a bus, one is MEM64|PREF and one is PREF, after this patch, the MEM64 flag will be cleared, right? If so, this may fall back to the same situation in bug 74151. I am looking at the bugzilla and try to understand the root cause for this allocation failure. Currently I don't get the reason. In my mind, the resource will be sized in the non-pref bridge window. But seems not. I have asked more info in the bugzilla, so that I could understand the problem. (Yeah, maybe I am not that smart, if one of you would help me understand the problem, I am happy to offer you a cup of coffee :-) ) Bjorin, As you mentioned in another thread, "5b28541552ef is taking the wrong approach". (http://www.spinics.net/lists/linux-pci/msg37374.html) Maybe I don't catch it clearly. Put a 32bit prefetchable resource in a 32bit non-prefetchable bridge window is a bad idea? But in my mind, if the bridge prefetchable window is 64bit, we can't put a 32bit prefetchable resource in it. I am trying to catch up with the updates of the bug, if I missed something just let me know. > >Thanks > >Yinghai -- Richard Yang Help you, Help me -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html