diff mbox series

time: export nsec_to_clock_t

Message ID 20180328141205.2954245-1-arnd@arndb.de
State New
Headers show
Series time: export nsec_to_clock_t | expand

Commit Message

Arnd Bergmann March 28, 2018, 2:11 p.m. UTC
nsec_to_clock_t was traditionally used only in the core kernel, now we
have a sysfs file that needs it from a loadable module, causing a
link-time error:

ERROR: "nsec_to_clock_t" [drivers/thermal/thermal_sys.ko] undefined!

This exports the function the same way that we do for related interfaces.

Fixes: 96cea33badc5 ("thermal: Add cooling device's statistics in sysfs")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 kernel/time/time.c | 1 +
 1 file changed, 1 insertion(+)

-- 
2.9.0

Comments

Zhang Rui March 29, 2018, 2:58 p.m. UTC | #1
On 三, 2018-03-28 at 16:11 +0200, Arnd Bergmann wrote:
> nsec_to_clock_t was traditionally used only in the core kernel, now

> we

> have a sysfs file that needs it from a loadable module, causing a

> link-time error:

> 

> ERROR: "nsec_to_clock_t" [drivers/thermal/thermal_sys.ko] undefined!

> 

> This exports the function the same way that we do for related

> interfaces.

> 

> Fixes: 96cea33badc5 ("thermal: Add cooling device's statistics in

> sysfs")

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Thanks for the fix.
can I take this patch through thermal tree?

thanks,
rui
> ---

>  kernel/time/time.c | 1 +

>  1 file changed, 1 insertion(+)

> 

> diff --git a/kernel/time/time.c b/kernel/time/time.c

> index 6fa99213fc72..97a262531f68 100644

> --- a/kernel/time/time.c

> +++ b/kernel/time/time.c

> @@ -768,6 +768,7 @@ u64 nsec_to_clock_t(u64 x)

>  	return div_u64(x * 9, (9ull * NSEC_PER_SEC + (USER_HZ / 2))

> / USER_HZ);

>  #endif

>  }

> +EXPORT_SYMBOL(nsec_to_clock_t);

>  

>  u64 jiffies64_to_nsecs(u64 j)

>  {
Thomas Gleixner March 29, 2018, 7:11 p.m. UTC | #2
On Thu, 29 Mar 2018, Zhang Rui wrote:
> On 三, 2018-03-28 at 16:11 +0200, Arnd Bergmann wrote:

> > nsec_to_clock_t was traditionally used only in the core kernel, now

> > we

> > have a sysfs file that needs it from a loadable module, causing a

> > link-time error:

> > 

> > ERROR: "nsec_to_clock_t" [drivers/thermal/thermal_sys.ko] undefined!

> > 

> > This exports the function the same way that we do for related

> > interfaces.

> > 

> > Fixes: 96cea33badc5 ("thermal: Add cooling device's statistics in

> > sysfs")

> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> 

> Thanks for the fix.

> can I take this patch through thermal tree?


Well, the question is what's the point of that?

Why does a new interface expose time in state in clock_t instead in normal
time units, e.g. nsec/usec/msec ?

That makes no sense whatsoever.

Thanks,

	tglx
Viresh Kumar April 2, 2018, 10:25 a.m. UTC | #3
On 29-03-18, 21:11, Thomas Gleixner wrote:
> On Thu, 29 Mar 2018, Zhang Rui wrote:

> > On 三, 2018-03-28 at 16:11 +0200, Arnd Bergmann wrote:

> > > nsec_to_clock_t was traditionally used only in the core kernel, now

> > > we

> > > have a sysfs file that needs it from a loadable module, causing a

> > > link-time error:

> > > 

> > > ERROR: "nsec_to_clock_t" [drivers/thermal/thermal_sys.ko] undefined!

> > > 

> > > This exports the function the same way that we do for related

> > > interfaces.

> > > 

> > > Fixes: 96cea33badc5 ("thermal: Add cooling device's statistics in

> > > sysfs")

> > > Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> > 

> > Thanks for the fix.

> > can I take this patch through thermal tree?

> 

> Well, the question is what's the point of that?

> 

> Why does a new interface expose time in state in clock_t instead in normal

> time units, e.g. nsec/usec/msec ?


The initial patch was displaying the values in msec, but eduardo asked the units
to be consistent with how cpufreq shows it, i.e. clock_t.

https://lkml.kernel.org/r/20180112174606.GA11076@localhost.localdomain 

Anyway I will resend the patch and move back to msec. Thanks.

-- 
viresh
diff mbox series

Patch

diff --git a/kernel/time/time.c b/kernel/time/time.c
index 6fa99213fc72..97a262531f68 100644
--- a/kernel/time/time.c
+++ b/kernel/time/time.c
@@ -768,6 +768,7 @@  u64 nsec_to_clock_t(u64 x)
 	return div_u64(x * 9, (9ull * NSEC_PER_SEC + (USER_HZ / 2)) / USER_HZ);
 #endif
 }
+EXPORT_SYMBOL(nsec_to_clock_t);
 
 u64 jiffies64_to_nsecs(u64 j)
 {