lkml.org 
[lkml]   [2007]   [Apr]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH] Correctly prevent IDE timer expiry function to run if request was already handled
    Date

    On Friday 06 April 2007, Sergei Shtylyov wrote:
    > Hello.
    >
    > Suleiman Souhlal wrote:

    > > The reason the timer could have been active at that point, before applying
    > > this patch, is that we try to dispatch a new request after handling one.
    > > The new request will then have its own expiry timer, along with a handler.
    > > Since before this patch ide_timer_expiry() only looked at whether or not
    > > a handler was present, it would incorrectly think the request had not been
    > > handled already, and incorrectly tried to restart the timer.
    >
    > Hm, I'm still not sure why this happens at all, probably need to try
    > reproducing it (unless you post a stack trace :-).

    not a stack trace but should explain the issue a bit:

    ...
    ide_timer_expiry
    -> just before taking ide_lock IRQ happens
    ...
    ide_intr
    -> completes the command and queues the next one
    ...
    ide_timer_expiry (resumed)
    -> takes ide_lock
    -> the bug happens ;)

    should be even easier to trigger it on SMP since ide_timer_expiry
    may be running at the same time as ide_intr

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

    \
     
     \ /
      Last update: 2007-04-06 23:29    [W:0.022 / U:209.560 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site