Re: [PATCH 6/7] psi: pressure stall information for CPU, memory, and IO

From: kbuild test robot
Date: Mon May 07 2018 - 23:04:41 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: x86_64-randconfig-x012-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=x86_64

All errors (new ones prefixed by >>):

In file included from kernel/livepatch/../sched/sched.h:1317:0,
from kernel/livepatch/transition.c:27:
>> kernel/livepatch/../sched/stats.h:126:1: error: expected identifier or '(' before '{' token
{
^

vim +126 kernel/livepatch/../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