lkml.org 
[lkml]   [2010]   [Oct]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/6] Add nsecs_to_cputime64 interface for asm-generic -v1
    Date
    Add nsecs_to_cputime64 interface. This is used in following patches that
    updates cpu irq stat based on ns granularity info in IRQ_TIME_ACCOUNTING.

    Tested-by: Shaun Ruffell <sruffell@digium.com>

    Signed-off-by: Venkatesh Pallipadi <venki@google.com>
    ---
    include/asm-generic/cputime.h | 3 +++
    include/linux/jiffies.h | 1 +
    kernel/time.c | 23 +++++++++++++++++++++--
    3 files changed, 25 insertions(+), 2 deletions(-)

    diff --git a/include/asm-generic/cputime.h b/include/asm-generic/cputime.h
    index ca0f239..c0f0da0 100644
    --- a/include/asm-generic/cputime.h
    +++ b/include/asm-generic/cputime.h
    @@ -30,6 +30,9 @@ typedef u64 cputime64_t;
    #define cputime64_to_jiffies64(__ct) (__ct)
    #define jiffies64_to_cputime64(__jif) (__jif)
    #define cputime_to_cputime64(__ct) ((u64) __ct)
    +#define cputime64_gt(__a, __b) ((__a) > (__b))
    +
    +#define nsecs_to_cputime64(__ct) nsecs_to_jiffies64(__ct)


    /*
    diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h
    index 6811f4b..922aa31 100644
    --- a/include/linux/jiffies.h
    +++ b/include/linux/jiffies.h
    @@ -307,6 +307,7 @@ extern clock_t jiffies_to_clock_t(long x);
    extern unsigned long clock_t_to_jiffies(unsigned long x);
    extern u64 jiffies_64_to_clock_t(u64 x);
    extern u64 nsec_to_clock_t(u64 x);
    +extern u64 nsecs_to_jiffies64(u64 n);
    extern unsigned long nsecs_to_jiffies(u64 n);

    #define TIMESTAMP_SIZE 30
    diff --git a/kernel/time.c b/kernel/time.c
    index ba9b338..fde4691 100644
    --- a/kernel/time.c
    +++ b/kernel/time.c
    @@ -645,7 +645,7 @@ u64 nsec_to_clock_t(u64 x)
    }

    /**
    - * nsecs_to_jiffies - Convert nsecs in u64 to jiffies
    + * nsecs_to_jiffies64 - Convert nsecs in u64 to jiffies64
    *
    * @n: nsecs in u64
    *
    @@ -657,7 +657,7 @@ u64 nsec_to_clock_t(u64 x)
    * NSEC_PER_SEC = 10^9 = (5^9 * 2^9) = (1953125 * 512)
    * ULLONG_MAX ns = 18446744073.709551615 secs = about 584 years
    */
    -unsigned long nsecs_to_jiffies(u64 n)
    +u64 nsecs_to_jiffies64(u64 n)
    {
    #if (NSEC_PER_SEC % HZ) == 0
    /* Common case, HZ = 100, 128, 200, 250, 256, 500, 512, 1000 etc. */
    @@ -674,6 +674,25 @@ unsigned long nsecs_to_jiffies(u64 n)
    #endif
    }

    +
    +/**
    + * nsecs_to_jiffies - Convert nsecs in u64 to jiffies
    + *
    + * @n: nsecs in u64
    + *
    + * Unlike {m,u}secs_to_jiffies, type of input is not unsigned int but u64.
    + * And this doesn't return MAX_JIFFY_OFFSET since this function is designed
    + * for scheduler, not for use in device drivers to calculate timeout value.
    + *
    + * note:
    + * NSEC_PER_SEC = 10^9 = (5^9 * 2^9) = (1953125 * 512)
    + * ULLONG_MAX ns = 18446744073.709551615 secs = about 584 years
    + */
    +unsigned long nsecs_to_jiffies(u64 n)
    +{
    + return (unsigned long)nsecs_to_jiffies64(n);
    +}
    +
    #if (BITS_PER_LONG < 64)
    u64 get_jiffies_64(void)
    {
    --
    1.7.1


    \
     
     \ /
      Last update: 2010-10-26 00:35    [W:0.048 / U:30.212 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site