hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/arch/ia64/kernel/time.c
....@@ -138,8 +138,12 @@
138138 struct thread_info *ti = task_thread_info(tsk);
139139 __u64 stime = vtime_delta(tsk);
140140
141
- if (tsk->flags & PF_VCPU)
141
+ if ((tsk->flags & PF_VCPU) && !irq_count())
142142 ti->gtime += stime;
143
+ else if (hardirq_count())
144
+ ti->hardirq_time += stime;
145
+ else if (in_serving_softirq())
146
+ ti->softirq_time += stime;
143147 else
144148 ti->stime += stime;
145149 }
....@@ -150,20 +154,6 @@
150154 struct thread_info *ti = task_thread_info(tsk);
151155
152156 ti->idle_time += vtime_delta(tsk);
153
-}
154
-
155
-void vtime_account_softirq(struct task_struct *tsk)
156
-{
157
- struct thread_info *ti = task_thread_info(tsk);
158
-
159
- ti->softirq_time += vtime_delta(tsk);
160
-}
161
-
162
-void vtime_account_hardirq(struct task_struct *tsk)
163
-{
164
- struct thread_info *ti = task_thread_info(tsk);
165
-
166
- ti->hardirq_time += vtime_delta(tsk);
167157 }
168158
169159 #endif /* CONFIG_VIRT_CPU_ACCOUNTING_NATIVE */