[lkml]   [2004]   [Nov]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectMore linux-2.6.9 module problems

    I have a memory-test procedure that tests
    memory on a board, accessed via the PCI bus.
    There is a lot of RAM and it's bank-switched
    into some 64k windows so it takes a lot of
    time to test, about 60 seconds.

    This is in a module, therefore inside the kernel.
    When it is invoked via an ioctl() call, the
    kernel is frozen for the whole test-time. The
    test procedure does not use any spin-locks nor
    does it even use any semaphores. It just does a
    bunch of read/write operations over the PCI/Bus.

    I thought that I could enable the preemptible-
    kernel option and the machine would then respond
    normally. Not so. Even with 4 CPUs, when one
    ioctl() is busy in the kernel, nothing else
    happens until its done. Even keyboard activity
    is gone, no Caps Lock and no Num Lock, no `ping`
    response over the network. However, the machine
    comes back to life when the memory-test is done.

    This is kernel version 2.6.9. Is it possible that
    somebody left on the BKL when calling a module
    ioctl() on this version? If not, what do I do
    to be able to execute a time-consuming procedure
    from inside the kernel? Do I break it up into
    sections and execute schedule() periodically
    (temporary work-around --works)??

    Dick Johnson
    Penguin : Linux version 2.6.9 on an i686 machine (5537.79 BogoMips).
    Notice : All mail here is now cached for review by John Ashcroft.
    98.36% of all statistics are fiction.
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 14:07    [W:0.020 / U:10.404 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site