lkml.org 
[lkml]   [2015]   [Nov]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 22/71] ncr5380: Eliminate selecting state
    From
    Hi Finn,

    On Thu, Nov 26, 2015 at 11:32 PM, Finn Thain <fthain@telegraphics.com.au> wrote:
    >> The timekeeping warning does not appear when all 71 patches are applied.
    >> Reverse-bisected it - the warning disappears after:
    >> [PATCH 50/71] ncr5380: Change instance->host_lock to hostdata->lock
    >>
    >
    > Makes sense. I think that this should solve the problem:
    >
    > Index: linux/drivers/scsi/NCR5380.c
    > ===================================================================
    > --- linux.orig/drivers/scsi/NCR5380.c 2015-11-27 09:21:40.000000000 +1100
    > +++ linux/drivers/scsi/NCR5380.c 2015-11-27 09:25:36.000000000 +1100
    > @@ -230,7 +230,7 @@ static int NCR5380_poll_politely2(struct
    > unsigned long n;
    >
    > /* Busy-wait for up to 1 jiffy */
    > - n = loops_per_jiffy;
    > + n = 1 + loops_per_jiffy / 10;
    > do {
    > if ((NCR5380_read(reg1) & bit1) == val1)
    > return 0;

    This still heavily depends on the processing time spent in NCR5380_read().
    You should never use a value derived from loops_per_jiffy for a non-empty loop,
    as it may take much longer. Always compare with an maximum end time instead.

    E.g.:

    end = jiffies + 2; /* 1 jiffie + 1 safeguard */
    do {
    if ((NCR5380_read(reg1) & bit1) == val1)
    return 0;
    cpu_relax();
    } while (time_before(jiffies, end);

    And a similar loop for "Busy-wait for up to 20 ms".

    Gr{oetje,eeting}s,

    Geert

    --
    Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

    In personal conversations with technical people, I call myself a hacker. But
    when I'm talking to journalists I just say "programmer" or something like that.
    -- Linus Torvalds


    \
     
     \ /
      Last update: 2015-11-29 11:01    [W:5.278 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site