[PATCH 05/15] pci: resource assignment based on p2p alignment
Bjorn Helgaas
bhelgaas at google.com
Wed Jul 18 03:14:51 EST 2012
On Tue, Jul 17, 2012 at 4:38 AM, Benjamin Herrenschmidt
<benh at kernel.crashing.org> wrote:
> On Tue, 2012-07-17 at 18:03 +0800, Ram Pai wrote:
>> Lets say we passed that 'type' flag to size the minimum
>> alignment constraints for that b_res. And window_alignment(bus,
>> type) of your platform used that 'type' information to
>> determine whether to use the alignment constraints of 32-bit
>> window or 64-bit window.
>>
>> However, later when the b_res is actually allocated a resource,
>> the pci_assign_resource() has no idea whether to allocate 32-bit
>> window resource or 64-bit window resource, because the 'type'
>> information is not captured anywhere in b_res.
>>
>> You would basically have a disconnect between what is sized and
>> what is allocated. Unless offcourse you pass that 'type' to
>> the b_res->flags, which is currently not the case.
>
> Right, we ideally would need the core to query the alignment once per
> "apertures" it tries as a candidate to allocate a given resource... but
> that's for later.
>
> For now we can probably live with giving out the max of the minimum
> alignment we support for M64 and our M32 segment size.
We already know the aperture we're proposing to allocate from (the
result of find_free_bus_resource()), don't we? What if we passed it
to pcibios_window_alignment() along with the struct pci_bus *, e.g.:
resource_size_t pcibios_window_alignment(struct pci_bus *bus, struct
resource *window)
More information about the Linuxppc-dev
mailing list