lkml.org 
[lkml]   [2009]   [Jan]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: x86: unify genapic code, unify subarchitectures, remove old subarchitecture code

    * Andi Kleen <andi@firstfloor.org> wrote:

    > Also bigsmp is kind of obsolete too, it could be probably
    > merged with default with very tiny impact because it's not
    > all that different.

    i dont think you have understood the driving principle behind this
    restructuring and unification.

    The whole _point_ of the apic driver infrastructure is to use it for
    dissimilar APIC modes.

    In the future we'll create _more_ of them, not less - so that we can
    remove runtime conditionals from the drivers and that we can use the APIC
    driver for the hardware that is the most efficient.

    For example, the apic_default driver (which is used if all APIC IDs are
    between 0 and 7 - which is the majority of current hardware), is more
    efficient at sending IPIs, because it can send a broadcast IPI (used for
    TLB flushes for example) as a single IPI.

    The apic_bigsmp driver on the other hand has to use a 'serialized'
    sequence of IPIs, to each CPU separately. That is less efficient,
    especially for something as performance-sensitive as TLB flushes.

    To "unify" the ability of apic_bigsmp to deal with APIC IDs >= 8 with the
    more efficient logical addressing mode of apc_default is possible but ugly
    - we'd have to add runtime checks and flip between the two methods. What
    So what you call "very tiny impact" is in reality unnecessary and
    avoidable overhead.

    Ingo


    \
     
     \ /
      Last update: 2009-01-29 23:35    [W:4.093 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site