[patch(?)] question wrt context switching during disk i/o

From: Bill Wendling (wendling@ganymede.isdn.uiuc.edu)
Date: Sat Oct 21 2000 - 13:43:29 EDT

  • Next message: Rik van Riel: "Re: test10-pre3"

    Also sprach Mike Galbraith:
    } On Fri, 20 Oct 2000, Mark Hahn wrote:
    }
    } > > This is something that has been bugging me for a while. I notice
    } > > on my system that during disk write we do much context switching,
    } > > but not during disk read. Why is that?
    } >
    } > bdflush is broken in current kernels. I posted to linux-mm about this,
    } > but Rik et al haven't shown any interest. I normally see bursts of
    } > up to around 40K cs/second when doing writes; I hacked a little
    } > premption counter into the kernel and verified that they're practially
    } > all bdflush...
    }
    There's some strangness in bdflush(). The comment says:

                    /*
                     * If there are still a lot of dirty buffers around,
                     * skip the sleep and flush some more. Otherwise, we
                     * go to sleep waiting a wakeup.
                     */
                    if (!flushed || balance_dirty_state(NODEV) < 0) {
                            run_task_queue(&tq_disk);
                            schedule();
                    }

    but the comment for balance_dirty_state() says:

    /* -1 -> no need to flush
        0 -> async flush
        1 -> sync flush (wait for I/O completation) */
    int balance_dirty_state(kdev_t dev)
    {

    Which leads me to believe that the `<' should be either `==' or `<='. I
    tried it with the `<=' and it doesn't seem to be so bad...Here's a patch
    to see if it helps you?

    -- 
    || Bill Wendling			wendling@ganymede.isdn.uiuc.edu
    


    - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/



    This archive was generated by hypermail 2b29 : Sat Oct 21 2000 - 13:46:08 EDT