lkml.org 
[lkml]   [2016]   [Feb]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v10 55/59] PCI: Add debug print out for min_align and alt_size
    Date
    Put all print out for all children align/size and result align/size
    together.

    We can print out device name at same time with min_align/alt_size
    calculation.

    So we can shut off debug print out from get_res_add_size() and
    get_res_add_align().

    Signed-off-by: Yinghai Lu <yinghai@kernel.org>
    ---
    drivers/pci/setup-bus.c | 76 ++++++++++++++++++++++++++++++++++++-------------
    1 file changed, 56 insertions(+), 20 deletions(-)

    diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
    index 7b89bf5..ff4c5c4 100644
    --- a/drivers/pci/setup-bus.c
    +++ b/drivers/pci/setup-bus.c
    @@ -159,11 +159,6 @@ static resource_size_t get_res_add_size(struct list_head *head,
    if (!dev_res || !dev_res->add_size)
    return 0;

    - dev_printk(KERN_DEBUG, &dev_res->dev->dev,
    - "BAR %d: %pR get_res_add_size add_size %#llx\n",
    - (int)(res - &dev_res->dev->resource[0]),
    - res, (unsigned long long)dev_res->add_size);
    -
    return dev_res->add_size;
    }

    @@ -176,11 +171,6 @@ static resource_size_t get_res_add_align(struct list_head *head,
    if (!dev_res || !dev_res->min_align)
    return 0;

    - dev_printk(KERN_DEBUG, &dev_res->dev->dev,
    - "BAR %d: %pR get_res_add_align min_align %#llx\n",
    - (int)(res - &dev_res->dev->resource[0]),
    - res, (unsigned long long)dev_res->min_align);
    -
    return dev_res->min_align;
    }

    @@ -1271,6 +1261,8 @@ struct align_test_res {
    struct resource res;
    resource_size_t size;
    resource_size_t align;
    + struct device *dev;
    + int idx;
    };

    static void free_align_test_list(struct list_head *head)
    @@ -1284,7 +1276,8 @@ static void free_align_test_list(struct list_head *head)
    }

    static int add_to_align_test_list(struct list_head *head,
    - resource_size_t align, resource_size_t size)
    + resource_size_t align, resource_size_t size,
    + struct device *dev, int idx)
    {
    struct align_test_res *tmp;

    @@ -1294,6 +1287,8 @@ static int add_to_align_test_list(struct list_head *head,

    tmp->align = align;
    tmp->size = size;
    + tmp->dev = dev;
    + tmp->idx = idx;

    list_add_tail(&tmp->list, head);

    @@ -1359,6 +1354,19 @@ static resource_size_t calculate_mem_align(struct list_head *head,
    resource_size_t min_align, good_align, aligned_size, start;
    int count = 0;

    + list_for_each_entry(p, head, list)
    + count++;
    +
    + printk(KERN_DEBUG " ===========BEGIN===calculate_mem_align========\n");
    + if (count) {
    + printk(KERN_DEBUG " align/size:\n");
    + list_for_each_entry(p, head, list)
    + dev_printk(KERN_DEBUG, p->dev,
    + "BAR %d: %08llx/%08llx\n", p->idx,
    + (unsigned long long)p->align,
    + (unsigned long long)p->size);
    + }
    +
    if (max_align <= align_low) {
    good_align = align_low;
    goto out;
    @@ -1366,9 +1374,6 @@ static resource_size_t calculate_mem_align(struct list_head *head,

    good_align = max_align;

    - list_for_each_entry(p, head, list)
    - count++;
    -
    if (count <= 1)
    goto out;

    @@ -1393,6 +1398,11 @@ static resource_size_t calculate_mem_align(struct list_head *head,
    } while (min_align > align_low);

    out:
    + printk(KERN_DEBUG " min_align/aligned_size: %08llx/%08llx\n",
    + (unsigned long long)good_align,
    + (unsigned long long)ALIGN(size, good_align));
    + printk(KERN_DEBUG " ===========END===calculate_mem_align==========\n");
    +
    return good_align;
    }

    @@ -1410,6 +1420,16 @@ static resource_size_t calculate_mem_alt_size(struct list_head *head,
    list_for_each_entry(p, head, list)
    count++;

    + printk(KERN_DEBUG " ===========BEGIN===calculate_mem_alt_size=====\n");
    + if (count) {
    + printk(KERN_DEBUG " align/size:\n");
    + list_for_each_entry(p, head, list)
    + dev_printk(KERN_DEBUG, p->dev,
    + "BAR %d: %08llx/%08llx\n", p->idx,
    + (unsigned long long)p->align,
    + (unsigned long long)p->size);
    + }
    +
    if (count <= 1)
    goto out;

    @@ -1434,6 +1454,11 @@ static resource_size_t calculate_mem_alt_size(struct list_head *head,
    }

    out:
    + printk(KERN_DEBUG " alt_align/alt_size: %08llx/%08llx\n",
    + (unsigned long long)max_align,
    + (unsigned long long)good_size);
    + printk(KERN_DEBUG " ===========END===calculate_mem_alt_size=======\n");
    +
    return good_size;
    }

    @@ -1516,7 +1541,7 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask,
    /* put SRIOV/ROM res to realloc list */
    if (realloc_head && is_optional(i)) {
    add_to_align_test_list(&align_test_add_list,
    - align, r_size);
    + align, r_size, &dev->dev, i);
    r->end = r->start - 1;
    __add_to_list(realloc_head, dev, r,
    r_size, align, 0, 0);
    @@ -1535,7 +1560,7 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask,

    if (r_size > 1) {
    add_to_align_test_list(&align_test_list,
    - align, r_size);
    + align, r_size, &dev->dev, i);
    size += r_size;
    if (align > max_align)
    max_align = align;
    @@ -1552,7 +1577,8 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask,
    add_align = align;
    add_to_align_test_list(&align_test_add_list,
    add_align,
    - r_size + add_r_size);
    + r_size + add_r_size,
    + &dev->dev, i);
    sum_add_size += r_size + add_r_size;
    if (add_align > max_add_align)
    max_add_align = add_align;
    @@ -1562,14 +1588,14 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask,
    add_to_align_test_list(
    &align_test_alt_list,
    dev_res->alt_align,
    - dev_res->alt_size);
    + dev_res->alt_size, &dev->dev, i);
    alt_size += dev_res->alt_size;
    if (alt_align < dev_res->alt_align)
    alt_align = dev_res->alt_align;
    } else if (r_size > 1) {
    add_to_align_test_list(
    &align_test_alt_list,
    - align, r_size);
    + align, r_size, &dev->dev, i);
    alt_size += r_size;
    if (alt_align < align)
    alt_align = align;
    @@ -1580,6 +1606,9 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask,

    max_align = max(max_align, window_align);
    if (size || min_size) {
    + dev_printk(KERN_DEBUG, &bus->self->dev,
    + "BAR %d: bridge window %pR to %pR calculate_mem for MUST\n",
    + (int)(b_res - &bus->self->resource[0]), b_res, &bus->busn_res);
    min_align = calculate_mem_align(&align_test_list, max_align,
    size, window_align);
    size0 = calculate_size(size, min_size,
    @@ -1589,6 +1618,9 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask,

    if (size0 && realloc_head) {
    alt_align = max(alt_align, window_align);
    + dev_printk(KERN_DEBUG, &bus->self->dev,
    + "BAR %d: bridge window %pR to %pR calculate_mem for ALT\n",
    + (int)(b_res - &bus->self->resource[0]), b_res, &bus->busn_res);
    /* need to increase size to fit more alt */
    alt_size = calculate_mem_alt_size(&align_test_alt_list,
    alt_align, alt_size,
    @@ -1604,6 +1636,9 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask,
    if (sum_add_size < min_sum_size)
    sum_add_size = min_sum_size;
    if (sum_add_size > size && realloc_head) {
    + dev_printk(KERN_DEBUG, &bus->self->dev,
    + "BAR %d: bridge window %pR to %pR calculate_mem for ADD\n",
    + (int)(b_res - &bus->self->resource[0]), b_res, &bus->busn_res);
    min_add_align = calculate_mem_align(&align_test_add_list,
    max_add_align, sum_add_size,
    window_align);
    @@ -1661,7 +1696,8 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask,
    final_add_size, min_add_align,
    alt_size, alt_align);
    dev_printk(KERN_DEBUG, &bus->self->dev,
    - "bridge window %pR to %pR add_size %llx add_align %llx alt_size %llx alt_align %llx req_size %llx req_align %llx\n",
    + "BAR %d: bridge window %pR to %pR add_size %llx add_align %llx alt_size %llx alt_align %llx req_size %llx req_align %llx\n",
    + (int)(b_res - &bus->self->resource[0]),
    b_res, &bus->busn_res,
    (unsigned long long)final_add_size,
    (unsigned long long)min_add_align,
    --
    1.8.4.5
    \
     
     \ /
      Last update: 2016-02-25 04:01    [W:7.813 / U:0.204 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site