Re: [PATCH 6/7] psi: pressure stall information for CPU, memory, and IO
From: kbuild test robot
Date: Mon May 07 2018 - 21:36:42 EST
Hi Johannes,
I love your patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v4.17-rc4]
[cannot apply to next-20180507]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Johannes-Weiner/mm-workingset-don-t-drop-refault-information-prematurely/20180508-081214
config: i386-randconfig-x073-201818 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
All errors (new ones prefixed by >>):
In file included from kernel/sched/sched.h:1317:0,
from kernel/sched/core.c:8:
>> kernel/sched/stats.h:126:1: error: expected identifier or '(' before '{' token
{
^
vim +126 kernel/sched/stats.h
57
58 #ifdef CONFIG_PSI
59 /*
60 * PSI tracks state that persists across sleeps, such as iowaits and
61 * memory stalls. As a result, it has to distinguish between sleeps,
62 * where a task's runnable state changes, and requeues, where a task
63 * and its state are being moved between CPUs and runqueues.
64 */
65 static inline void psi_enqueue(struct task_struct *p, u64 now)
66 {
67 int clear = 0, set = TSK_RUNNING;
68
69 if (p->state == TASK_RUNNING || p->sched_psi_wake_requeue) {
70 if (p->flags & PF_MEMSTALL)
71 set |= TSK_MEMSTALL;
72 p->sched_psi_wake_requeue = 0;
73 } else {
74 if (p->in_iowait)
75 clear |= TSK_IOWAIT;
76 }
77
78 psi_task_change(p, now, clear, set);
79 }
80 static inline void psi_dequeue(struct task_struct *p, u64 now)
81 {
82 int clear = TSK_RUNNING, set = 0;
83
84 if (p->state == TASK_RUNNING) {
85 if (p->flags & PF_MEMSTALL)
86 clear |= TSK_MEMSTALL;
87 } else {
88 if (p->in_iowait)
89 set |= TSK_IOWAIT;
90 }
91
92 psi_task_change(p, now, clear, set);
93 }
94 static inline void psi_ttwu_dequeue(struct task_struct *p)
95 {
96 /*
97 * Is the task being migrated during a wakeup? Make sure to
98 * deregister its sleep-persistent psi states from the old
99 * queue, and let psi_enqueue() know it has to requeue.
100 */
101 if (unlikely(p->in_iowait || (p->flags & PF_MEMSTALL))) {
102 struct rq_flags rf;
103 struct rq *rq;
104 int clear = 0;
105
106 if (p->in_iowait)
107 clear |= TSK_IOWAIT;
108 if (p->flags & PF_MEMSTALL)
109 clear |= TSK_MEMSTALL;
110
111 rq = __task_rq_lock(p, &rf);
112 update_rq_clock(rq);
113 psi_task_change(p, rq_clock(rq), clear, 0);
114 p->sched_psi_wake_requeue = 1;
115 __task_rq_unlock(rq, &rf);
116 }
117 }
118 #else /* CONFIG_PSI */
119 static inline void psi_enqueue(struct task_struct *p, u64 now)
120 {
121 }
122 static inline void psi_dequeue(struct task_struct *p, u64 now)
123 {
124 }
125 static inline void psi_ttwu_dequeue(struct task_struct *p) {}
> 126 {
127 }
128 #endif /* CONFIG_PSI */
129
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip