[lkml]   [2002]   [Aug]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH]: fix 32bits integer overflow in loops_per_jiffy calculation
    	Hi Ben,

    > None of the above can happen in the domain of application of this
    > function. It's used to scale up/down the loops_per_jiffy value when
    > scaling the CPU frequency. Anyway, the above isn't worse than the
    > original function. Ideally, we would want 64 bits arithmetics, but we
    > decided long ago not to bring the libcc support routines for that in
    > the kernel.

    Well, first on sane archs which have an easily accessible, fixed
    frequency time counter, loops_per_jiffy should never have existed :-)

    Second, putting this code there means that one day somebody will
    inevitably try to use it outside of its domain of operation (like it
    happened for div64 a few months ago when I pointed out that it would not
    work for divisors above 65535 or so).

    Finally, I agree that we should not import libgcc, but for example on
    PPC32 the double lengths shifts (__ashrdi3, __ashldi3, and __lshsldi3)
    are implemented somewhere, and the assembly implementation (directly
    taken from some appendix in PPC documentation, I just slightly twisted
    __ashrdi3 to make it branchless AFAIR) is actually way faster than the
    one in libgcc ;-), and less than half the size.

    Adding a few subroutines that implement a subset of libgcc's
    functionality is necessary for most archs (which functions are needed is
    arch, and sometimes compiler's, dependent).

    In this case a generic scaling function, while not a standard libgcc/C
    library feature has potentially more applications than this simple
    cpufreq approximation. But I don't see very much the need for scaling a
    long (64 bit on 64 bit archs) value, 32 bit would be sufficient.


    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 13:28    [W:0.027 / U:64.676 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site