On Friday 29 January 2016 03:12:37 Zengtao wrote: > > -----Original Message----- > > From: Arnd Bergmann [mailto:a...@arndb.de] > > Sent: Thursday, January 28, 2016 7:52 PM > > To: Thomas Gleixner > > Cc: Zengtao (B); LKML; Frederic Weisbecker > > Subject: Re: [PATCH] cputime: Fix timeval-->cputime conversion > > > > On Thursday 28 January 2016 09:22:04 Thomas Gleixner wrote: > > > Cc'ing Arnd > > > > > > On Thu, 28 Jan 2016, zengtao wrote: > > > > > > > The structure: > > > > struct timeval { > > > > __kernel_time_t tv_sec; /* seconds */ > > > > __kernel_suseconds_t tv_usec; /* microseconds */ > > > > }; > > > > both __kernel_time_t and __kernel_suseconds_t are short than u64 > > > > when it is 32bit platform, so force u64 conversion here. > > > > > > > > Signed-off-by: zengtao <prime.z...@huawei.com> > > > > > > Reviewed-by: Thomas Gleixner <t...@linutronix.de> > > > > This seems to miss timespec_to_cputime(), which has the same problem, > > so only setitimer() is fixed, but not nanosleep() or timer_settime(). > Yes, I have checked the code just now, the timespec_to_cputime() has the > same problem.I found the origin issue through setitimer().And I think the > timespec_to_cputime() only affects timer_settime(),by which means it affects > nanosleep?
Reading that code again, I think it does not affect sys_nanosleep, but it does affect sys_clock_nanosleep(CLOCK_PROCESS_CPUTIME_ID, ...) along with timer_create/timer_settime with CLOCK_PROCESS_CPUTIME_ID. Arnd