Re: [PATCH 3/4] cputime/powerpc/s390: make scaled cputime arch specific

From: kbuild test robot
Date: Mon Oct 31 2016 - 10:14:14 EST


Hi Stanislaw,

[auto build test ERROR on powerpc/next]
[also build test ERROR on v4.9-rc3 next-20161028]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on]
[Check https://git-scm.com/docs/git-format-patch for more information]

url: https://github.com/0day-ci/linux/commits/Stanislaw-Gruszka/cputime-powerpc-remove-cputime_last_delta-global-variable/20161031-204221
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: s390-default_defconfig (attached as .config)
compiler: s390x-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=s390

All errors (new ones prefixed by >>):

arch/s390/kernel/vtime.c: In function 'do_account_vtime':
>> arch/s390/kernel/vtime.c:141:5: error: 'struct task_struct' has no member named 'utimescaled'
tsk->utimescaled += user_scaled;
^~
>> arch/s390/kernel/vtime.c:143:2: error: expected ';' before 'tsk'
tsk->stimescaled += system_scaled;
^~~
arch/s390/kernel/vtime.c: In function 'vtime_account_irq_enter':
>> arch/s390/kernel/vtime.c:208:5: error: 'struct task_struct' has no member named 'stimescaled'
tsk->stimescaled += system_scaled;
^~

vim +141 arch/s390/kernel/vtime.c

135 u64 div = __this_cpu_read(mt_scaling_div);
136
137 user_scaled = (user_scaled * mult) / div;
138 system_scaled = (system_scaled * mult) / div;
139 }
140 account_user_time(tsk, user);
> 141 tsk->utimescaled += user_scaled;
142 account_system_time(tsk, hardirq_offset, system)
> 143 tsk->stimescaled += system_scaled;
144
145 steal = S390_lowcore.steal_timer;
146 if ((s64) steal > 0) {
147 S390_lowcore.steal_timer = 0;
148 account_steal_time(steal);
149 }
150
151 return virt_timer_forward(user + system);
152 }
153
154 void vtime_task_switch(struct task_struct *prev)
155 {
156 struct thread_info *ti;
157
158 do_account_vtime(prev, 0);
159 ti = task_thread_info(prev);
160 ti->user_timer = S390_lowcore.user_timer;
161 ti->system_timer = S390_lowcore.system_timer;
162 ti = task_thread_info(current);
163 S390_lowcore.user_timer = ti->user_timer;
164 S390_lowcore.system_timer = ti->system_timer;
165 }
166
167 /*
168 * In s390, accounting pending user time also implies
169 * accounting system time in order to correctly compute
170 * the stolen time accounting.
171 */
172 void vtime_account_user(struct task_struct *tsk)
173 {
174 if (do_account_vtime(tsk, HARDIRQ_OFFSET))
175 virt_timer_expire();
176 }
177
178 /*
179 * Update process times based on virtual cpu times stored by entry.S
180 * to the lowcore fields user_timer, system_timer & steal_clock.
181 */
182 void vtime_account_irq_enter(struct task_struct *tsk)
183 {
184 struct thread_info *ti = task_thread_info(tsk);
185 u64 timer, system, system_scaled;
186
187 timer = S390_lowcore.last_update_timer;
188 S390_lowcore.last_update_timer = get_vtimer();
189 S390_lowcore.system_timer += timer - S390_lowcore.last_update_timer;
190
191 /* Update MT utilization calculation */
192 if (smp_cpu_mtid &&
193 time_after64(jiffies_64, this_cpu_read(mt_scaling_jiffies)))
194 update_mt_scaling();
195
196 system = S390_lowcore.system_timer - ti->system_timer;
197 S390_lowcore.steal_timer -= system;
198 ti->system_timer = S390_lowcore.system_timer;
199 system_scaled = system;
200 /* Do MT utilization scaling */
201 if (smp_cpu_mtid) {
202 u64 mult = __this_cpu_read(mt_scaling_mult);
203 u64 div = __this_cpu_read(mt_scaling_div);
204
205 system_scaled = (system_scaled * mult) / div;
206 }
207 account_system_time(tsk, 0, system);
> 208 tsk->stimescaled += system_scaled;
209
210 virt_timer_forward(system);
211 }

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip