From: Jesse Barnes on
This looks like a different issue, I think the PAT code tracks memtypes
like this.

Suresh, any changes in this area that might explain this?

Jesse

On Wed, 7 Jul 2010 14:28:47 +1000
Andrew Hendry <andrew.hendry(a)gmail.com> wrote:

> Is this the same or related issue?
>
> http://lkml.org/lkml/2010/7/6/108
> New messages since -rc4, X and graphics really slow after.
>
> [ 1.387013] swapper:1 freeing invalid memtype bf788000-bf789000
> [ 1.387409] swapper:1 freeing invalid memtype bf789000-bf78a000
> [ 5.999675] modprobe:548 freeing invalid memtype d0000000-d0040000
> [ 6.068347] modprobe:548 freeing invalid memtype d0140000-d0150000
> [ 6.068647] modprobe:548 freeing invalid memtype d0150000-d0160000
> [ 6.069661] modprobe:548 freeing invalid memtype d0170000-d01f0000
> [ 6.085969] modprobe:548 freeing invalid memtype d01f0000-d0200000
> [ 6.087673] modprobe:548 freeing invalid memtype d0210000-d0220000
> [ 6.087900] modprobe:548 freeing invalid memtype d0220000-d0230000
> [ 6.088092] modprobe:548 freeing invalid memtype d0230000-d0240000
> [ 6.088317] modprobe:548 freeing invalid memtype d0240000-d0250000
>
>
> On Wed, Jul 7, 2010 at 10:49 AM, Yinghai Lu <yinghai(a)kernel.org> wrote:
> > On 07/06/2010 04:58 PM, Linus Torvalds wrote:
> >> On Tue, Jul 6, 2010 at 4:13 PM, Yinghai Lu <yinghai(a)kernel.org> wrote:
> >>>
> >>> So you want to use pci=override_bios to reallocate all bios assigned resource include
> >>> peer root buses resources and pci bridge resource and pci devices BAR?
> >>
> >> In a perfect world, we'd never need this at all, but sicne that's not
> >> an option, the second-best alternative might be something like the
> >> following:
> >>
> >>   pci=override=off # default
> >>   pci=override=conflict # override only on conflicts
> >>   pci=override=<device> # clear BIOS allocations for <device> (and any
> >> children, if it's a bus)
> >
> > current:
> > if there is conflict, like pci bridge resources or pci devices resources is not in the scope of peer root bus resource range.
> > or pci devices is not in pci bridge resources range.
> > kernel would reject the resource and try to get new range in parent resource for the children.
> >
> > so current default is overriding the conflicts already.
> >
> > Maybe your conflicts have other meaning? like pci bridge resource size is not big enough?
> >
> > or we can have use
> >
> > pci=override=small_bridge
> >
> > or
> >
> > pci=override=bridges
> >
> > instead?
> >
> > Thanks
> >
> > Yinghai
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > the body of a message to majordomo(a)vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at  http://www.tux.org/lkml/
> >
>


--
Jesse Barnes, Intel Open Source Technology Center
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Jesse Barnes on
On Tue, 06 Jul 2010 17:49:32 -0700
Yinghai Lu <yinghai(a)kernel.org> wrote:

> On 07/06/2010 04:58 PM, Linus Torvalds wrote:
> > On Tue, Jul 6, 2010 at 4:13 PM, Yinghai Lu <yinghai(a)kernel.org> wrote:
> >>
> >> So you want to use pci=override_bios to reallocate all bios assigned resource include
> >> peer root buses resources and pci bridge resource and pci devices BAR?
> >
> > In a perfect world, we'd never need this at all, but sicne that's not
> > an option, the second-best alternative might be something like the
> > following:
> >
> > pci=override=off # default
> > pci=override=conflict # override only on conflicts
> > pci=override=<device> # clear BIOS allocations for <device> (and any
> > children, if it's a bus)
>
> current:
> if there is conflict, like pci bridge resources or pci devices resources is not in the scope of peer root bus resource range.
> or pci devices is not in pci bridge resources range.
> kernel would reject the resource and try to get new range in parent resource for the children.
>
> so current default is overriding the conflicts already.
>
> Maybe your conflicts have other meaning? like pci bridge resource size is not big enough?
>
> or we can have use
>
> pci=override=small_bridge
>
> or
>
> pci=override=bridges
>
> instead?

Changing the default (and fairly old) behavior at this point will
probably cause a lot of trouble; we have machines where reallocating
conflicting or apparently mis-programmed resources is needed.

But we can still add the pci=override= option. Your patch will need
some changes though; a user needing a specific bus/bridge reallocated
can just pass the bridge id. And rather than walking its way up,
freeing and trying to re-allocate, it could just free everything below
the given device and let the normal paths allocate it.

--
Jesse Barnes, Intel Open Source Technology Center
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/