Messages in this thread |  | | Date | Sat, 6 Sep 2008 23:38:20 +0400 | | From | Cyrill Gorcunov <> | | Subject | Re: [patch 3/3] x86: io-apic - code style cleaning for setup_IO_APIC_irqs |
| |
[Yinghai Lu - Sat, Sep 06, 2008 at 12:16:28PM -0700] | On Sat, Sep 6, 2008 at 12:04 PM, Cyrill Gorcunov <gorcunov@gmail.com> wrote: | > [Maciej W. Rozycki - Sat, Sep 06, 2008 at 07:45:08PM +0100] | > | On Sat, 6 Sep 2008, Cyrill Gorcunov wrote: | > | | > | > Ingo, how about the following approach? We don't introduce new | > | > functions but rather srink the code by new printout form. | > | | > | Honestly, this one should probably use sprintf() or suchlike to avoid the | > | mess of printk() calls building a line of output from pieces. It's quite | > | easy to calculate here what the maximum size of the buffer required could | > | be and automatic arrays can have variable size, so no need for the hassle | > | of heap management. Calls to printk() without a trailing newline should | > | be avoided where possible as it messes up logging priority if a message | > | pops up from an interrupt inbetween. | > | | > | Maciej | > | | > | > The easiest way would be just print this info on separate | > lines like | > | > IO-APIC (apicid-pin) 1-1 not connected | > | > and just drop all this troubles :) | > | > I'm not sure how much memory we need for every io-apic | > pins - iirc there only 32 redirection entry so it could | > be about 32 bytes from stack would be enough. Will take | > a look. Thanks Maciej! Ingo? | | no. some system could have 3 or 4 ioapic controller, and every one | have 24...(like three mcp55/io55) | 4*24 | | or old system have 1 8111 and 7 8132. will have 32 + 7*2*7 | | YH |
Didn't really understand all numbers :) We have 24 io-apic route entries 128 io-apic maximum in quantity
so the worst (hardly possible if ever) is when on last io-apic all pins are wrong. So for this case we would need
(3 + 1) * ((10 + 1) + (13 + 1)) = 100
where 3 - strlen("127") - max io-apic number 10 - Sum(strlen(0)+...+strlen(9)) - pin numbers 13 - same sum for two-digit numbers +1 number - either "-" sign or " "
100 bytes to print not connected pins. Ugh :-)
- Cyrill -
|  |