lkml.org 
[lkml]   [2010]   [Apr]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: start_kernel(): bug: interrupts were enabled early
    From
    Date
    On Wed, 2010-03-31 at 23:33 -0400, Andrew Morton wrote:
    > Just a few instructions, I guess. But we can do it with zero.
    >
    > And from a design POV, pretending that down_read()/down_write() can be
    > called with interrupts disabled is daft - they cannot! Why muck up
    > the
    > usual code paths with this startup-specific hack?

    Because we the problem of when interrupts are enabled for the first time
    is a nasty one, and having entire layer of things not usable at the
    right level of init because somewhere something might do an irq enable
    due to calling generic code that down's a semaphore is a PITA.

    Seriously, Andrew, I don't see a clean solution... Something -somewhere-
    will have to be ugly.

    Allocation is a pretty basic service that a lot of stuff expect
    especially when booting.

    We went through that discussion before when we moved the SLAB init
    earlier during boot, because it makes no sense to have tons of code to
    have to figure out what allocator to call depending on what phase of the
    moon it's called from (especially when said code can also be called
    later during boot, say for hotplug reasons).

    So we moved sl*b init earlier, thus we ought to be able to also
    kmem_cache_alloc() earlier. We -fixed- that problem already afaik.

    Cheers,
    Ben.




    \
     
     \ /
      Last update: 2010-04-01 08:53    [from the cache]
    ©2003-2014 Jasper Spaans. Advertise on this site