<br><br><div class="gmail_quote">On Wed, Feb 24, 2010 at 12:26 AM, Timothy Pearson <span dir="ltr"><<a href="mailto:tpearson@raptorengineeringinc.com">tpearson@raptorengineeringinc.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">> So two more steps are necessary:<br>
> - check all the downwards links of a device instead of just walking devices<br>
> and checking their type.<br>
> - run recursively in a special case on APIC clusters.<br>
><br>
> This sounds a whole lot like something changed in the way "all_devices"<br>
> works. And if "all_devices" does not mean "all devices" I am sure there are<br>
> more places in our code that need similar fixes.<br>
<br>
</div>This is the crux of the issue.  all_devices does NOT mean "all devices",<br>
it means "all devices attached to the root node, which is all_devices".<br></blockquote><div>You're correct; this is the crux.  Here's a snippet of the fam10 boot log for SimNOW:<br><br>Show all devs...Before Device Enumeration.
<br>Root Device: enabled 1, 0 resources
<br>APIC_CLUSTER: 0: enabled 1, 0 resources
<br>APIC: 00: enabled 1, 0 resources
<br>PCI_DOMAIN: 0000: enabled 1, 0 resources
<br>PCI: 00:18.0: enabled 1, 0 resources
<br>PCI: 00:00.0: enabled 1, 0 resources
<br>PCI: 00:00.1: enabled 1, 0 resources
<br>PCI: 00:01.0: enabled 1, 0 resources
<br>PCI: 00:01.1: enabled 1, 0 resources
<br>PCI: 00:00.0: enabled 1, 0 resources
<br>PCI: 00:00.0: enabled 1, 0 resources
<br>PCI: 00:00.1: enabled 1, 0 resources
<br>PCI: 00:00.2: enabled 0, 0 resources
<br>PCI: 00:01.0: enabled 0, 0 resources
<br>PCI: 00:01.0: enabled 1, 0 resources
<br>PNP: 002e.0: enabled 0, 3 resources
<br>PNP: 002e.1: enabled 0, 2 resources
<br>PNP: 002e.2: enabled 1, 2 resources
<br>PNP: 002e.3: enabled 0, 2 resources
<br>PNP: 002e.5: enabled 1, 4 resources
<br>PNP: 002e.6: enabled 0, 1 resources
<br>PNP: 002e.7: enabled 0, 3 resources
<br>PNP: 002e.8: enabled 0, 0 resources
<br>PNP: 002e.9: enabled 0, 0 resources
<br>PNP: 002e.a: enabled 0, 0 resources
<br>PNP: 002e.b: enabled 1, 2 resources
<br>PCI: 00:01.1: enabled 1, 0 resources
<br>PCI: 00:01.2: enabled 1, 0 resources
<br>PCI: 00:01.3: enabled 1, 0 resources
<br>I2C: 00:18: enabled 1, 0 resources
<br>I2C: 00:50: enabled 1, 0 resources
<br>I2C: 00:51: enabled 1, 0 resources
<br>I2C: 00:52: enabled 1, 0 resources
<br>I2C: 00:53: enabled 1, 0 resources
<br>I2C: 00:50: enabled 1, 0 resources
<br>I2C: 00:51: enabled 1, 0 resources
<br>I2C: 00:52: enabled 1, 0 resources
<br>I2C: 00:53: enabled 1, 0 resources
<br>PCI: 00:01.5: enabled 0, 0 resources
<br>PCI: 00:01.6: enabled 0, 0 resources
<br>PCI: 00:18.1: enabled 1, 0 resources
<br>PCI: 00:18.2: enabled 1, 0 resources
<br>PCI: 00:18.3: enabled 1, 0 resources
<br>PCI: 00:18.4: enabled 1, 0 resources
<br><br><br>Compare with tree...
<br>Root Device: enabled 1, 0 resources
<br> APIC_CLUSTER: 0: enabled 1, 0 resources
<br>  APIC: 00: enabled 1, 0 resources
<br> PCI_DOMAIN: 0000: enabled 1, 0 resources
<br>  PCI: 00:18.0: enabled 1, 0 resources
<br>   PCI: 00:00.0: enabled 1, 0 resources
<br>   PCI: 00:00.1: enabled 1, 0 resources
<br>   PCI: 00:01.0: enabled 1, 0 resources
<br>   PCI: 00:01.1: enabled 1, 0 resources
<br>   PCI: 00:00.0: enabled 1, 0 resources
<br>    PCI: 00:00.0: enabled 1, 0 resources
<br>    PCI: 00:00.1: enabled 1, 0 resources
<br>    PCI: 00:00.2: enabled 0, 0 resources
<br>    PCI: 00:01.0: enabled 0, 0 resources
<br>   PCI: 00:01.0: enabled 1, 0 resources
<br>    PNP: 002e.0: enabled 0, 3 resources
<br>    PNP: 002e.1: enabled 0, 2 resources
<br>    PNP: 002e.2: enabled 1, 2 resources
<br>    PNP: 002e.3: enabled 0, 2 resources
<br>    PNP: 002e.5: enabled 1, 4 resources
<br>    PNP: 002e.6: enabled 0, 1 resources
<br>    PNP: 002e.7: enabled 0, 3 resources
<br>    PNP: 002e.8: enabled 0, 0 resources
<br>    PNP: 002e.9: enabled 0, 0 resources
<br>    PNP: 002e.a: enabled 0, 0 resources
<br>    PNP: 002e.b: enabled 1, 2 resources
<br>   PCI: 00:01.1: enabled 1, 0 resources
<br>   PCI: 00:01.2: enabled 1, 0 resources
<br>   PCI: 00:01.3: enabled 1, 0 resources
<br>    I2C: 00:18: enabled 1, 0 resources
<br>     I2C: 00:50: enabled 1, 0 resources
<br>     I2C: 00:51: enabled 1, 0 resources
<br>     I2C: 00:52: enabled 1, 0 resources
<br>     I2C: 00:53: enabled 1, 0 resources
<br>     I2C: 00:50: enabled 1, 0 resources
<br>     I2C: 00:51: enabled 1, 0 resources
<br>     I2C: 00:52: enabled 1, 0 resources
<br>     I2C: 00:53: enabled 1, 0 resources
<br>   PCI: 00:01.5: enabled 0, 0 resources
<br>   PCI: 00:01.6: enabled 0, 0 resources
<br>  PCI: 00:18.1: enabled 1, 0 resources
<br>  PCI: 00:18.2: enabled 1, 0 resources
<br>  PCI: 00:18.3: enabled 1, 0 resources
<br>  PCI: 00:18.4: enabled 1, 0 resources
<br> <br>There are 44 devices in the tree, and 44 in the all_devices list.  If there is some place that the list is getting broken, we should fix it.<br><br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

As the root node, usually the PCI bus and the APICs are visible.  On my<br>
board, the APICs are all under an APIC cluster, so they are not<br>
immediately visible from the root node.<br></blockquote><div>They're not children of the root node, but they are accessible through the next pointer:<br><br>    for (dev = all_devices; dev; dev = dev->next) {<br>        do_printk(debug_level,<br>
              "%s: enabled %d, %d resources\n",<br>              dev_path(dev), dev->enabled,<br>              dev->resources);<br>    }<br><br><br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

I don't have access to a board that I can generate before/after tables<br>
with at this time.  This behavior is very simple to see though; if you<br>
turn on printk spew and look closely at the printed detected device tables<br></blockquote><div>What are printed detected device tables?<br><br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
If you have any more questions feel free to ask!  Hopefully the root cause<br>
of the problem can be located and solved.<br>
<div><div></div><div class="h5"><br></div></div></blockquote><div>Sure.  Let's make sure it gets taken care of.<br><br>Thanks,<br>Myles<br></div></div><br>