* [PATCH 0/4] iopoll fixes + cleanups
@ 2020-06-22 22:16 Pavel Begunkov
2020-06-22 22:16 ` [PATCH 1/4] io_uring: fix hanging iopoll in case of -EAGAIN Pavel Begunkov
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Pavel Begunkov @ 2020-06-22 22:16 UTC (permalink / raw)
To: Jens Axboe, io-uring, linux-kernel
[1] fixes a recent for-stable patch, should be for stable as well.
[2] fixes getting mm from a wrong task in iopoll path.
[3,4] are unrelated cleanups. I don't send them separately because
they may conflict.
Pavel Begunkov (4):
io_uring: fix hanging iopoll in case of -EAGAIN
io_uring: handle EAGAIN iopoll
io-wq: compact io-wq flags numbers
io-wq: return next work from ->do_work() directly
fs/io-wq.c | 8 +++---
fs/io-wq.h | 10 ++++----
fs/io_uring.c | 71 ++++++++++++++++++++++++---------------------------
3 files changed, 41 insertions(+), 48 deletions(-)
--
2.24.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/4] io_uring: fix hanging iopoll in case of -EAGAIN
2020-06-22 22:16 [PATCH 0/4] iopoll fixes + cleanups Pavel Begunkov
@ 2020-06-22 22:16 ` Pavel Begunkov
2020-06-23 2:07 ` Jens Axboe
2020-06-22 22:16 ` [PATCH 2/4] io_uring: handle EAGAIN iopoll Pavel Begunkov
` (2 subsequent siblings)
3 siblings, 1 reply; 11+ messages in thread
From: Pavel Begunkov @ 2020-06-22 22:16 UTC (permalink / raw)
To: Jens Axboe, io-uring, linux-kernel
io_do_iopoll() won't do anything with a request unless
req->iopoll_completed is set. So io_complete_rw_iopoll() has to set
it, otherwise io_do_iopoll() will poll a file again and again even
though the request of interest was completed long ago.
Fixes: bbde017a32b3 ("io_uring: add memory barrier to synchronize
io_kiocb's result and iopoll_completed")
Signed-off-by: Pavel Begunkov <[email protected]>
---
fs/io_uring.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/fs/io_uring.c b/fs/io_uring.c
index c686061c3762..bb0dfc450db5 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -2104,10 +2104,8 @@ static void io_complete_rw_iopoll(struct kiocb *kiocb, long res, long res2)
WRITE_ONCE(req->result, res);
/* order with io_poll_complete() checking ->result */
- if (res != -EAGAIN) {
- smp_wmb();
- WRITE_ONCE(req->iopoll_completed, 1);
- }
+ smp_wmb();
+ WRITE_ONCE(req->iopoll_completed, 1);
}
/*
--
2.24.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/4] io_uring: handle EAGAIN iopoll
2020-06-22 22:16 [PATCH 0/4] iopoll fixes + cleanups Pavel Begunkov
2020-06-22 22:16 ` [PATCH 1/4] io_uring: fix hanging iopoll in case of -EAGAIN Pavel Begunkov
@ 2020-06-22 22:16 ` Pavel Begunkov
2020-06-30 4:01 ` kernel test robot
2020-06-22 22:16 ` [PATCH 3/4] io-wq: compact io-wq flags numbers Pavel Begunkov
2020-06-22 22:16 ` [PATCH 4/4] io-wq: return next work from ->do_work() directly Pavel Begunkov
3 siblings, 1 reply; 11+ messages in thread
From: Pavel Begunkov @ 2020-06-22 22:16 UTC (permalink / raw)
To: Jens Axboe, io-uring, linux-kernel
req->iopoll() is not necessarily called by a task that submitted a
request. Because of that, it's dangerous to grab_env() and punt async
on -EGAIN, potentially grabbinf another task's mm and corrupting its
memory.
Do resubmit from the submitter task context.
Signed-off-by: Pavel Begunkov <[email protected]>
---
fs/io_uring.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/fs/io_uring.c b/fs/io_uring.c
index bb0dfc450db5..595d2bbb31b1 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -884,6 +884,8 @@ enum io_mem_account {
ACCT_PINNED,
};
+static void io_complete_rw_common(struct kiocb *kiocb, long res);
+static bool io_rw_reissue(struct io_kiocb *req, long res);
static void io_wq_submit_work(struct io_wq_work **workptr);
static void io_cqring_fill_event(struct io_kiocb *req, long res);
static void io_put_req(struct io_kiocb *req);
@@ -1756,8 +1758,11 @@ static void io_iopoll_queue(struct list_head *again)
do {
req = list_first_entry(again, struct io_kiocb, list);
list_del(&req->list);
- refcount_inc(&req->refs);
- io_queue_async_work(req);
+
+ if (!io_rw_reissue(req, -EAGAIN)) {
+ io_complete_rw_common(&req->rw.kiocb, -EAGAIN);
+ io_put_req(req);
+ }
} while (!list_empty(again));
}
@@ -1930,6 +1935,8 @@ static int io_iopoll_check(struct io_ring_ctx *ctx, unsigned *nr_events,
*/
if (!(++iters & 7)) {
mutex_unlock(&ctx->uring_lock);
+ if (current->task_works)
+ task_work_run();
mutex_lock(&ctx->uring_lock);
}
@@ -2288,6 +2295,7 @@ static int io_prep_rw(struct io_kiocb *req, const struct io_uring_sqe *sqe,
kiocb->ki_complete = io_complete_rw_iopoll;
req->result = 0;
req->iopoll_completed = 0;
+ io_get_req_task(req);
} else {
if (kiocb->ki_flags & IOCB_HIPRI)
return -EINVAL;
--
2.24.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/4] io-wq: compact io-wq flags numbers
2020-06-22 22:16 [PATCH 0/4] iopoll fixes + cleanups Pavel Begunkov
2020-06-22 22:16 ` [PATCH 1/4] io_uring: fix hanging iopoll in case of -EAGAIN Pavel Begunkov
2020-06-22 22:16 ` [PATCH 2/4] io_uring: handle EAGAIN iopoll Pavel Begunkov
@ 2020-06-22 22:16 ` Pavel Begunkov
2020-06-22 22:16 ` [PATCH 4/4] io-wq: return next work from ->do_work() directly Pavel Begunkov
3 siblings, 0 replies; 11+ messages in thread
From: Pavel Begunkov @ 2020-06-22 22:16 UTC (permalink / raw)
To: Jens Axboe, io-uring, linux-kernel
Renumerate IO_WQ flags, so they take adjacent bits
Signed-off-by: Pavel Begunkov <[email protected]>
---
fs/io-wq.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/fs/io-wq.h b/fs/io-wq.h
index 071f1a997800..04239dfb12b0 100644
--- a/fs/io-wq.h
+++ b/fs/io-wq.h
@@ -5,10 +5,10 @@ struct io_wq;
enum {
IO_WQ_WORK_CANCEL = 1,
- IO_WQ_WORK_HASHED = 4,
- IO_WQ_WORK_UNBOUND = 32,
- IO_WQ_WORK_NO_CANCEL = 256,
- IO_WQ_WORK_CONCURRENT = 512,
+ IO_WQ_WORK_HASHED = 2,
+ IO_WQ_WORK_UNBOUND = 4,
+ IO_WQ_WORK_NO_CANCEL = 8,
+ IO_WQ_WORK_CONCURRENT = 16,
IO_WQ_HASH_SHIFT = 24, /* upper 8 bits are used for hash key */
};
--
2.24.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 4/4] io-wq: return next work from ->do_work() directly
2020-06-22 22:16 [PATCH 0/4] iopoll fixes + cleanups Pavel Begunkov
` (2 preceding siblings ...)
2020-06-22 22:16 ` [PATCH 3/4] io-wq: compact io-wq flags numbers Pavel Begunkov
@ 2020-06-22 22:16 ` Pavel Begunkov
3 siblings, 0 replies; 11+ messages in thread
From: Pavel Begunkov @ 2020-06-22 22:16 UTC (permalink / raw)
To: Jens Axboe, io-uring, linux-kernel
It's easier to return next work from ->do_work() than
having an in-out argument. Looks nicer and easier to compile.
Also, merge io_wq_assign_next() into its only user.
Signed-off-by: Pavel Begunkov <[email protected]>
---
fs/io-wq.c | 8 +++-----
fs/io-wq.h | 2 +-
fs/io_uring.c | 53 ++++++++++++++++++++-------------------------------
3 files changed, 25 insertions(+), 38 deletions(-)
diff --git a/fs/io-wq.c b/fs/io-wq.c
index 47c5f3aeb460..72f759e1d6eb 100644
--- a/fs/io-wq.c
+++ b/fs/io-wq.c
@@ -523,9 +523,8 @@ static void io_worker_handle_work(struct io_worker *worker)
work->flags |= IO_WQ_WORK_CANCEL;
hash = io_get_work_hash(work);
- linked = old_work = work;
- wq->do_work(&linked);
- linked = (old_work == linked) ? NULL : linked;
+ old_work = work;
+ linked = wq->do_work(work);
work = next_hashed;
if (!work && linked && !io_wq_is_hashed(linked)) {
@@ -781,8 +780,7 @@ static void io_run_cancel(struct io_wq_work *work, struct io_wqe *wqe)
struct io_wq_work *old_work = work;
work->flags |= IO_WQ_WORK_CANCEL;
- wq->do_work(&work);
- work = (work == old_work) ? NULL : work;
+ work = wq->do_work(work);
wq->free_work(old_work);
} while (work);
}
diff --git a/fs/io-wq.h b/fs/io-wq.h
index 04239dfb12b0..114f12ec2d65 100644
--- a/fs/io-wq.h
+++ b/fs/io-wq.h
@@ -101,7 +101,7 @@ static inline struct io_wq_work *wq_next_work(struct io_wq_work *work)
}
typedef void (free_work_fn)(struct io_wq_work *);
-typedef void (io_wq_work_fn)(struct io_wq_work **);
+typedef struct io_wq_work *(io_wq_work_fn)(struct io_wq_work *);
struct io_wq_data {
struct user_struct *user;
diff --git a/fs/io_uring.c b/fs/io_uring.c
index 595d2bbb31b1..5282711eeeaf 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -886,7 +886,6 @@ enum io_mem_account {
static void io_complete_rw_common(struct kiocb *kiocb, long res);
static bool io_rw_reissue(struct io_kiocb *req, long res);
-static void io_wq_submit_work(struct io_wq_work **workptr);
static void io_cqring_fill_event(struct io_kiocb *req, long res);
static void io_put_req(struct io_kiocb *req);
static void __io_double_put_req(struct io_kiocb *req);
@@ -1624,20 +1623,6 @@ static void io_free_req(struct io_kiocb *req)
io_queue_async_work(nxt);
}
-static void io_wq_assign_next(struct io_wq_work **workptr, struct io_kiocb *nxt)
-{
- struct io_kiocb *link;
- const struct io_op_def *def = &io_op_defs[nxt->opcode];
-
- if ((nxt->flags & REQ_F_ISREG) && def->hash_reg_file)
- io_wq_hash_work(&nxt->work, file_inode(nxt->file));
-
- *workptr = &nxt->work;
- link = io_prep_linked_timeout(nxt);
- if (link)
- nxt->flags |= REQ_F_QUEUE_TIMEOUT;
-}
-
/*
* Drop reference to request, return next in chain (if there is one) if this
* was the last reference to this request.
@@ -1657,24 +1642,29 @@ static void io_put_req(struct io_kiocb *req)
io_free_req(req);
}
-static void io_steal_work(struct io_kiocb *req,
- struct io_wq_work **workptr)
+static struct io_wq_work *io_steal_work(struct io_kiocb *req)
{
+ struct io_kiocb *link, *nxt = NULL;
+
/*
- * It's in an io-wq worker, so there always should be at least
- * one reference, which will be dropped in io_put_work() just
- * after the current handler returns.
- *
- * It also means, that if the counter dropped to 1, then there is
- * no asynchronous users left, so it's safe to steal the next work.
+ * A ref is owned by io-wq in which context we're. So, if that's the
+ * last one, it's safe to steal next work. False negatives are Ok,
+ * it just will be re-punted async in io_put_work()
*/
- if (refcount_read(&req->refs) == 1) {
- struct io_kiocb *nxt = NULL;
+ if (refcount_read(&req->refs) != 1)
+ return NULL;
- io_req_find_next(req, &nxt);
- if (nxt)
- io_wq_assign_next(workptr, nxt);
- }
+ io_req_find_next(req, &nxt);
+ if (!nxt)
+ return NULL;
+
+ if ((nxt->flags & REQ_F_ISREG) && io_op_defs[nxt->opcode].hash_reg_file)
+ io_wq_hash_work(&nxt->work, file_inode(nxt->file));
+
+ link = io_prep_linked_timeout(nxt);
+ if (link)
+ nxt->flags |= REQ_F_QUEUE_TIMEOUT;
+ return &nxt->work;
}
/*
@@ -5626,9 +5616,8 @@ static void io_arm_async_linked_timeout(struct io_kiocb *req)
io_queue_linked_timeout(link);
}
-static void io_wq_submit_work(struct io_wq_work **workptr)
+static struct io_wq_work *io_wq_submit_work(struct io_wq_work *work)
{
- struct io_wq_work *work = *workptr;
struct io_kiocb *req = container_of(work, struct io_kiocb, work);
int ret = 0;
@@ -5660,7 +5649,7 @@ static void io_wq_submit_work(struct io_wq_work **workptr)
io_put_req(req);
}
- io_steal_work(req, workptr);
+ return io_steal_work(req);
}
static inline struct file *io_file_from_index(struct io_ring_ctx *ctx,
--
2.24.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 1/4] io_uring: fix hanging iopoll in case of -EAGAIN
2020-06-22 22:16 ` [PATCH 1/4] io_uring: fix hanging iopoll in case of -EAGAIN Pavel Begunkov
@ 2020-06-23 2:07 ` Jens Axboe
2020-06-23 2:18 ` Jens Axboe
0 siblings, 1 reply; 11+ messages in thread
From: Jens Axboe @ 2020-06-23 2:07 UTC (permalink / raw)
To: Pavel Begunkov, io-uring, linux-kernel
On 6/22/20 4:16 PM, Pavel Begunkov wrote:
> io_do_iopoll() won't do anything with a request unless
> req->iopoll_completed is set. So io_complete_rw_iopoll() has to set
> it, otherwise io_do_iopoll() will poll a file again and again even
> though the request of interest was completed long ago.
I need to look at this again, because with this change, I previously
got various use-after-free. I haven't seen any issues with it, but
I agree, from a quick look that I'm not quite sure how it's currently
not causing hangs. Yet I haven't seen any, with targeted -EAGAIN
testing.
--
Jens Axboe
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/4] io_uring: fix hanging iopoll in case of -EAGAIN
2020-06-23 2:07 ` Jens Axboe
@ 2020-06-23 2:18 ` Jens Axboe
2020-06-23 11:57 ` Pavel Begunkov
0 siblings, 1 reply; 11+ messages in thread
From: Jens Axboe @ 2020-06-23 2:18 UTC (permalink / raw)
To: Pavel Begunkov, io-uring, linux-kernel
On 6/22/20 8:07 PM, Jens Axboe wrote:
> On 6/22/20 4:16 PM, Pavel Begunkov wrote:
>> io_do_iopoll() won't do anything with a request unless
>> req->iopoll_completed is set. So io_complete_rw_iopoll() has to set
>> it, otherwise io_do_iopoll() will poll a file again and again even
>> though the request of interest was completed long ago.
>
> I need to look at this again, because with this change, I previously
> got various use-after-free. I haven't seen any issues with it, but
> I agree, from a quick look that I'm not quite sure how it's currently
> not causing hangs. Yet I haven't seen any, with targeted -EAGAIN
> testing.
Ah I think I know what it is - if we run into:
if (req->result == -EAGAIN)
return -EAGAIN
in io_issue_sqe() and race with it, we'll reissue twice potentially.
So the above isn't quite enough, we'll need something a bit broader.
--
Jens Axboe
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/4] io_uring: fix hanging iopoll in case of -EAGAIN
2020-06-23 2:18 ` Jens Axboe
@ 2020-06-23 11:57 ` Pavel Begunkov
2020-06-23 19:01 ` Jens Axboe
0 siblings, 1 reply; 11+ messages in thread
From: Pavel Begunkov @ 2020-06-23 11:57 UTC (permalink / raw)
To: Jens Axboe, io-uring, linux-kernel
On 23/06/2020 05:18, Jens Axboe wrote:
> On 6/22/20 8:07 PM, Jens Axboe wrote:
>> On 6/22/20 4:16 PM, Pavel Begunkov wrote:
>>> io_do_iopoll() won't do anything with a request unless
>>> req->iopoll_completed is set. So io_complete_rw_iopoll() has to set
>>> it, otherwise io_do_iopoll() will poll a file again and again even
>>> though the request of interest was completed long ago.
>>
>> I need to look at this again, because with this change, I previously
>> got various use-after-free. I haven't seen any issues with it, but
>> I agree, from a quick look that I'm not quite sure how it's currently
>> not causing hangs. Yet I haven't seen any, with targeted -EAGAIN
>> testing.
Can io_complete_rw_iopoll() get -EAGAIN after being successfully enqueued
(i.e. EIOCBQUEUED)? It's reliably fails for me, because my hacked nullblk
_can_ (i.e. probabilistically returns BLK_STS_AGAIN from ->iopoll()).
>
> Ah I think I know what it is - if we run into:
>
> if (req->result == -EAGAIN)
> return -EAGAIN
>
> in io_issue_sqe() and race with it, we'll reissue twice potentially.
> So the above isn't quite enough, we'll need something a bit broader.
I see, I'll deal with it.
--
Pavel Begunkov
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/4] io_uring: fix hanging iopoll in case of -EAGAIN
2020-06-23 11:57 ` Pavel Begunkov
@ 2020-06-23 19:01 ` Jens Axboe
2020-06-24 16:56 ` Pavel Begunkov
0 siblings, 1 reply; 11+ messages in thread
From: Jens Axboe @ 2020-06-23 19:01 UTC (permalink / raw)
To: Pavel Begunkov, io-uring, linux-kernel
On 6/23/20 5:57 AM, Pavel Begunkov wrote:
> On 23/06/2020 05:18, Jens Axboe wrote:
>> On 6/22/20 8:07 PM, Jens Axboe wrote:
>>> On 6/22/20 4:16 PM, Pavel Begunkov wrote:
>>>> io_do_iopoll() won't do anything with a request unless
>>>> req->iopoll_completed is set. So io_complete_rw_iopoll() has to set
>>>> it, otherwise io_do_iopoll() will poll a file again and again even
>>>> though the request of interest was completed long ago.
>>>
>>> I need to look at this again, because with this change, I previously
>>> got various use-after-free. I haven't seen any issues with it, but
>>> I agree, from a quick look that I'm not quite sure how it's currently
>>> not causing hangs. Yet I haven't seen any, with targeted -EAGAIN
>>> testing.
>
> Can io_complete_rw_iopoll() get -EAGAIN after being successfully enqueued
> (i.e. EIOCBQUEUED)? It's reliably fails for me, because my hacked nullblk
> _can_ (i.e. probabilistically returns BLK_STS_AGAIN from ->iopoll()).
Yes it can. The primary example would be a polled bio that gets split, into
let's say 4 bio's. First one queues fine, but one of the subsequent ones
run into request allocation failures and it gets marked as -EAGAIN.
>> Ah I think I know what it is - if we run into:
>>
>> if (req->result == -EAGAIN)
>> return -EAGAIN
>>
>> in io_issue_sqe() and race with it, we'll reissue twice potentially.
>> So the above isn't quite enough, we'll need something a bit broader.
>
> I see, I'll deal with it.
Thanks!
--
Jens Axboe
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/4] io_uring: fix hanging iopoll in case of -EAGAIN
2020-06-23 19:01 ` Jens Axboe
@ 2020-06-24 16:56 ` Pavel Begunkov
0 siblings, 0 replies; 11+ messages in thread
From: Pavel Begunkov @ 2020-06-24 16:56 UTC (permalink / raw)
To: Jens Axboe, io-uring, linux-kernel
On 23/06/2020 22:01, Jens Axboe wrote:
> On 6/23/20 5:57 AM, Pavel Begunkov wrote:
>> On 23/06/2020 05:18, Jens Axboe wrote:
>>> On 6/22/20 8:07 PM, Jens Axboe wrote:
>>>> On 6/22/20 4:16 PM, Pavel Begunkov wrote:
>>>>> io_do_iopoll() won't do anything with a request unless
>>>>> req->iopoll_completed is set. So io_complete_rw_iopoll() has to set
>>>>> it, otherwise io_do_iopoll() will poll a file again and again even
>>>>> though the request of interest was completed long ago.
>>>>
>>>> I need to look at this again, because with this change, I previously
>>>> got various use-after-free. I haven't seen any issues with it, but
>>>> I agree, from a quick look that I'm not quite sure how it's currently
>>>> not causing hangs. Yet I haven't seen any, with targeted -EAGAIN
>>>> testing.
>>
>> Can io_complete_rw_iopoll() get -EAGAIN after being successfully enqueued
>> (i.e. EIOCBQUEUED)? It's reliably fails for me, because my hacked nullblk
>> _can_ (i.e. probabilistically returns BLK_STS_AGAIN from ->iopoll()).
>
> Yes it can. The primary example would be a polled bio that gets split, into
> let's say 4 bio's. First one queues fine, but one of the subsequent ones
> run into request allocation failures and it gets marked as -EAGAIN.
Right, thanks for the explanation. And that's the case where io_uring fails.
Now I tested all kinds of -EAGAIN to be sure.
--
Pavel Begunkov
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/4] io_uring: handle EAGAIN iopoll
2020-06-22 22:16 ` [PATCH 2/4] io_uring: handle EAGAIN iopoll Pavel Begunkov
@ 2020-06-30 4:01 ` kernel test robot
0 siblings, 0 replies; 11+ messages in thread
From: kernel test robot @ 2020-06-30 4:01 UTC (permalink / raw)
To: Pavel Begunkov, Jens Axboe, io-uring, linux-kernel
Cc: kbuild-all, clang-built-linux
[-- Attachment #1: Type: text/plain, Size: 32302 bytes --]
Hi Pavel,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on next-20200622]
[cannot apply to linus/master v5.8-rc2 v5.8-rc1 v5.7 v5.8-rc3]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Pavel-Begunkov/iopoll-fixes-cleanups/20200623-062127
base: 27f11fea33608cbd321a97cbecfa2ef97dcc1821
config: x86_64-randconfig-a001-20200629-CONFIG_DEBUG_INFO_REDUCED (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project cf1d04484344be52ada8178e41d18fd15a9b880c)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
All warnings (new ones prefixed by >>):
kernel/locking/rwsem.c:295:1: warning: unused function 'rwsem_owner_flags'
rwsem_owner_flags(struct rw_semaphore unsigned long
^
In file included from kernel/cpu.c:26:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item'
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
In file included from kernel/exit.c:53:
In file included from include/linux/tracehook.h:50:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item'
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
kernel/panic.c:85:13: warning: no previous prototype for function 'panic_smp_self_stop'
void __weak panic_smp_self_stop(void)
^
kernel/panic.c:85:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __weak panic_smp_self_stop(void)
^
static
kernel/panic.c:95:13: warning: no previous prototype for function 'nmi_panic_self_stop'
void __weak nmi_panic_self_stop(struct pt_regs
^
kernel/panic.c:95:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __weak nmi_panic_self_stop(struct pt_regs
^
static
kernel/panic.c:106:13: warning: no previous prototype for function 'crash_smp_send_stop'
void __weak crash_smp_send_stop(void)
^
kernel/panic.c:106:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __weak crash_smp_send_stop(void)
^
static
3 warnings generated.
In file included from kernel/fork.c:53:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item'
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
In file included from kernel/power/user.c:10:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item'
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
kernel/cpu.c:101:20: warning: unused function 'cpuhp_lock_acquire'
static inline void cpuhp_lock_acquire(bool bringup) { }
^
kernel/cpu.c:102:20: warning: unused function 'cpuhp_lock_release'
static inline void cpuhp_lock_release(bool bringup) { }
^
1 warning generated.
1 warning generated.
In file included from kernel/power/wakelock.c:23:
In file included from kernel/power/power.h:2:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item'
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
>> kernel/power/wakelock.c:74:20: warning: unused function 'decrement_wakelocks_number'
static inline void decrement_wakelocks_number(void)
^
3 warnings generated.
2 warnings generated.
kernel/cpu.c:56: warning: cannot understand function prototype: 'struct cpuhp_cpu_state '
kernel/cpu.c:113: warning: cannot understand function prototype: 'struct cpuhp_step '
kernel/cpu.c:1884: warning: Function parameter or member 'name' not described in '__cpuhp_setup_state_cpuslocked'
In file included from kernel/sched/core.c:9:
In file included from kernel/sched/sched.h:63:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item'
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
>> kernel/trace/ftrace.c:6859:20: warning: unused function 'ftrace_startup_enable'
static inline void ftrace_startup_enable(int command) { }
^
1 warning generated.
kernel/sched/core.c:4270:35: warning: no previous prototype for function 'schedule_user'
asmlinkage __visible void __sched schedule_user(void)
^
kernel/sched/core.c:4270:22: note: declare 'static' if the function is not intended to be used outside of this translation unit
asmlinkage __visible void __sched schedule_user(void)
^
static
In file included from kernel/power/process.c:14:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item'
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
1 warning generated.
1 warning generated.
In file included from kernel/power/snapshot.c:16:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item'
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
kernel/fork.c:1153: warning: Function parameter or member 'mm' not described in 'set_mm_exe_file'
kernel/fork.c:1153: warning: Function parameter or member 'new_exe_file' not described in 'set_mm_exe_file'
kernel/fork.c:1177: warning: Function parameter or member 'mm' not described in 'get_mm_exe_file'
kernel/fork.c:1197: warning: Function parameter or member 'task' not described in 'get_task_exe_file'
kernel/fork.c:1222: warning: Function parameter or member 'task' not described in 'get_task_mm'
kernel/sched/core.c:227:1: warning: unused function 'rq_csd_init'
rq_csd_init(struct rq call_single_data_t smp_call_func_t func)
^
kernel/sched/core.c:3822:20: warning: unused function 'sched_tick_start'
static inline void sched_tick_start(int cpu) { }
^
kernel/sched/core.c:3823:20: warning: unused function 'sched_tick_stop'
static inline void sched_tick_stop(int cpu) { }
^
kernel/trace/ftrace.c:5350: warning: Function parameter or member 'ops' not described in 'ftrace_set_filter_ip'
kernel/trace/ftrace.c:5350: warning: Function parameter or member 'ip' not described in 'ftrace_set_filter_ip'
kernel/trace/ftrace.c:5350: warning: Function parameter or member 'remove' not described in 'ftrace_set_filter_ip'
kernel/trace/ftrace.c:5350: warning: Function parameter or member 'reset' not described in 'ftrace_set_filter_ip'
kernel/trace/ftrace.c:5364: warning: Function parameter or member 'ops' not described in 'ftrace_ops_set_global_filter'
kernel/trace/ftrace.c:5392: warning: Function parameter or member 'ops' not described in 'ftrace_set_filter'
kernel/trace/ftrace.c:5392: warning: Function parameter or member 'buf' not described in 'ftrace_set_filter'
kernel/trace/ftrace.c:5392: warning: Function parameter or member 'len' not described in 'ftrace_set_filter'
kernel/trace/ftrace.c:5392: warning: Function parameter or member 'reset' not described in 'ftrace_set_filter'
kernel/trace/ftrace.c:5411: warning: Function parameter or member 'ops' not described in 'ftrace_set_notrace'
kernel/trace/ftrace.c:5411: warning: Function parameter or member 'buf' not described in 'ftrace_set_notrace'
kernel/trace/ftrace.c:5411: warning: Function parameter or member 'len' not described in 'ftrace_set_notrace'
kernel/trace/ftrace.c:5411: warning: Function parameter or member 'reset' not described in 'ftrace_set_notrace'
kernel/trace/ftrace.c:5426: warning: Function parameter or member 'buf' not described in 'ftrace_set_global_filter'
kernel/trace/ftrace.c:5426: warning: Function parameter or member 'len' not described in 'ftrace_set_global_filter'
kernel/trace/ftrace.c:5426: warning: Function parameter or member 'reset' not described in 'ftrace_set_global_filter'
kernel/trace/ftrace.c:5442: warning: Function parameter or member 'buf' not described in 'ftrace_set_global_notrace'
kernel/trace/ftrace.c:5442: warning: Function parameter or member 'len' not described in 'ftrace_set_global_notrace'
kernel/trace/ftrace.c:5442: warning: Function parameter or member 'reset' not described in 'ftrace_set_global_notrace'
kernel/trace/ftrace.c:7471: warning: Function parameter or member 'ops' not described in 'register_ftrace_function'
kernel/trace/ftrace.c:7493: warning: Function parameter or member 'ops' not described in 'unregister_ftrace_function'
In file included from kernel/power/main.c:16:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item'
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
In file included from kernel/power/hibernate.c:15:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item'
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
In file included from kernel/power/swap.c:23:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item'
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
In file included from kernel/sched/loadavg.c:9:
In file included from kernel/sched/sched.h:63:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item'
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
kernel/power/snapshot.c:1266:21: warning: unused function 'saveable_highmem_page'
static inline void zone unsigned long p)
^
1 warning generated.
In file included from kernel/sysctl.c:25:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item'
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
1 warning generated.
In file included from kernel/cgroup/cgroup.c:60:
In file included from include/net/sock.h:53:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item'
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
kernel/power/hibernate.c:272:12: warning: no previous prototype for function 'arch_resume_nosmt'
__weak int arch_resume_nosmt(void)
--
In file included from kernel/power/user.c:10:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item' [-Wenum-conversion]
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
1 warning generated.
In file included from kernel/power/wakelock.c:23:
In file included from kernel/power/power.h:2:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item' [-Wenum-conversion]
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
>> kernel/power/wakelock.c:74:20: warning: unused function 'decrement_wakelocks_number' [-Wunused-function]
static inline void decrement_wakelocks_number(void)
^
2 warnings generated.
In file included from kernel/power/process.c:14:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item' [-Wenum-conversion]
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
In file included from kernel/power/snapshot.c:16:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item' [-Wenum-conversion]
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
In file included from kernel/power/main.c:16:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item' [-Wenum-conversion]
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
In file included from kernel/power/hibernate.c:15:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item' [-Wenum-conversion]
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
In file included from kernel/power/swap.c:23:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item' [-Wenum-conversion]
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
kernel/power/snapshot.c:1266:21: warning: unused function 'saveable_highmem_page' [-Wunused-function]
static inline void *saveable_highmem_page(struct zone *z, unsigned long p)
^
1 warning generated.
kernel/power/hibernate.c:272:12: warning: no previous prototype for function 'arch_resume_nosmt' [-Wmissing-prototypes]
__weak int arch_resume_nosmt(void)
^
kernel/power/hibernate.c:272:8: note: declare 'static' if the function is not intended to be used outside of this translation unit
__weak int arch_resume_nosmt(void)
^
static
kernel/power/main.c:593: warning: Function parameter or member 'kobj' not described in 'state_show'
kernel/power/main.c:593: warning: Function parameter or member 'attr' not described in 'state_show'
kernel/power/main.c:593: warning: Function parameter or member 'buf' not described in 'state_show'
2 warnings generated.
kernel/power/snapshot.c:404: warning: Function parameter or member 'gfp_mask' not described in 'alloc_rtree_node'
kernel/power/snapshot.c:404: warning: Function parameter or member 'safe_needed' not described in 'alloc_rtree_node'
kernel/power/snapshot.c:404: warning: Function parameter or member 'ca' not described in 'alloc_rtree_node'
kernel/power/snapshot.c:404: warning: Function parameter or member 'list' not described in 'alloc_rtree_node'
kernel/power/snapshot.c:429: warning: Function parameter or member 'zone' not described in 'add_rtree_block'
kernel/power/snapshot.c:429: warning: Function parameter or member 'gfp_mask' not described in 'add_rtree_block'
kernel/power/snapshot.c:429: warning: Function parameter or member 'safe_needed' not described in 'add_rtree_block'
kernel/power/snapshot.c:429: warning: Function parameter or member 'ca' not described in 'add_rtree_block'
kernel/power/snapshot.c:502: warning: Function parameter or member 'gfp_mask' not described in 'create_zone_bm_rtree'
kernel/power/snapshot.c:502: warning: Function parameter or member 'safe_needed' not described in 'create_zone_bm_rtree'
kernel/power/snapshot.c:502: warning: Function parameter or member 'ca' not described in 'create_zone_bm_rtree'
kernel/power/snapshot.c:502: warning: Function parameter or member 'start' not described in 'create_zone_bm_rtree'
kernel/power/snapshot.c:502: warning: Function parameter or member 'end' not described in 'create_zone_bm_rtree'
kernel/power/snapshot.c:537: warning: Function parameter or member 'zone' not described in 'free_zone_bm_rtree'
kernel/power/snapshot.c:537: warning: Function parameter or member 'clear_nosave_free' not described in 'free_zone_bm_rtree'
kernel/power/snapshot.c:644: warning: Function parameter or member 'bm' not described in 'memory_bm_create'
kernel/power/snapshot.c:644: warning: Function parameter or member 'gfp_mask' not described in 'memory_bm_create'
kernel/power/snapshot.c:644: warning: Function parameter or member 'safe_needed' not described in 'memory_bm_create'
kernel/power/snapshot.c:686: warning: Function parameter or member 'clear_nosave_free' not described in 'memory_bm_free'
kernel/power/snapshot.c:708: warning: Function parameter or member 'bm' not described in 'memory_bm_find_bit'
kernel/power/snapshot.c:708: warning: Function parameter or member 'pfn' not described in 'memory_bm_find_bit'
kernel/power/snapshot.c:708: warning: Function parameter or member 'addr' not described in 'memory_bm_find_bit'
kernel/power/snapshot.c:708: warning: Function parameter or member 'bit_nr' not described in 'memory_bm_find_bit'
kernel/power/snapshot.c:949: warning: Function parameter or member 'start_pfn' not described in '__register_nosave_region'
kernel/power/snapshot.c:949: warning: Function parameter or member 'end_pfn' not described in '__register_nosave_region'
kernel/power/snapshot.c:949: warning: Function parameter or member 'use_kmalloc' not described in '__register_nosave_region'
kernel/power/snapshot.c:1219: warning: Function parameter or member 'zone' not described in 'saveable_highmem_page'
kernel/power/snapshot.c:1219: warning: Function parameter or member 'pfn' not described in 'saveable_highmem_page'
kernel/power/snapshot.c:1283: warning: Function parameter or member 'zone' not described in 'saveable_page'
kernel/power/snapshot.c:1283: warning: Function parameter or member 'pfn' not described in 'saveable_page'
kernel/power/snapshot.c:1354: warning: Function parameter or member 'dst' not described in 'safe_copy_page'
kernel/power/snapshot.c:1354: warning: Function parameter or member 's_page' not described in 'safe_copy_page'
kernel/power/snapshot.c:1567: warning: Function parameter or member 'x' not described in '__fraction'
kernel/power/snapshot.c:1567: warning: Function parameter or member 'multiplier' not described in '__fraction'
kernel/power/snapshot.c:1567: warning: Function parameter or member 'base' not described in '__fraction'
kernel/power/snapshot.c:1858: warning: Function parameter or member 'nr_highmem' not described in 'count_pages_for_highmem'
kernel/power/snapshot.c:1876: warning: Function parameter or member 'nr_pages' not described in 'enough_free_mem'
kernel/power/snapshot.c:1876: warning: Function parameter or member 'nr_highmem' not described in 'enough_free_mem'
kernel/power/snapshot.c:1899: warning: Function parameter or member 'safe_needed' not described in 'get_highmem_buffer'
kernel/power/snapshot.c:1912: warning: Function parameter or member 'bm' not described in 'alloc_highmem_pages'
kernel/power/snapshot.c:1912: warning: Function parameter or member 'nr_highmem' not described in 'alloc_highmem_pages'
kernel/power/snapshot.c:1947: warning: Function parameter or member 'copy_bm' not described in 'swsusp_alloc'
kernel/power/snapshot.c:1947: warning: Function parameter or member 'nr_pages' not described in 'swsusp_alloc'
kernel/power/snapshot.c:1947: warning: Function parameter or member 'nr_highmem' not described in 'swsusp_alloc'
kernel/power/snapshot.c:2160: warning: Function parameter or member 'bm' not described in 'mark_unsafe_pages'
kernel/power/snapshot.c:2195: warning: Function parameter or member 'info' not described in 'load_header'
kernel/power/snapshot.c:2349: warning: Function parameter or member 'page' not described in 'get_highmem_page_buffer'
kernel/power/snapshot.c:2349: warning: Function parameter or member 'ca' not described in 'get_highmem_page_buffer'
kernel/power/snapshot.c:2534: warning: Function parameter or member 'bm' not described in 'get_buffer'
kernel/power/snapshot.c:2534: warning: Function parameter or member 'ca' not described in 'get_buffer'
kernel/power/snapshot.c:2658: warning: Function parameter or member 'handle' not described in 'snapshot_write_finalize'
1 warning generated.
2 warnings generated.
--
>> kernel/trace/ftrace.c:6859:20: warning: unused function 'ftrace_startup_enable' [-Wunused-function]
static inline void ftrace_startup_enable(int command) { }
^
1 warning generated.
kernel/trace/ftrace.c:5350: warning: Function parameter or member 'ops' not described in 'ftrace_set_filter_ip'
kernel/trace/ftrace.c:5350: warning: Function parameter or member 'ip' not described in 'ftrace_set_filter_ip'
kernel/trace/ftrace.c:5350: warning: Function parameter or member 'remove' not described in 'ftrace_set_filter_ip'
kernel/trace/ftrace.c:5350: warning: Function parameter or member 'reset' not described in 'ftrace_set_filter_ip'
kernel/trace/ftrace.c:5364: warning: Function parameter or member 'ops' not described in 'ftrace_ops_set_global_filter'
kernel/trace/ftrace.c:5392: warning: Function parameter or member 'ops' not described in 'ftrace_set_filter'
kernel/trace/ftrace.c:5392: warning: Function parameter or member 'buf' not described in 'ftrace_set_filter'
kernel/trace/ftrace.c:5392: warning: Function parameter or member 'len' not described in 'ftrace_set_filter'
kernel/trace/ftrace.c:5392: warning: Function parameter or member 'reset' not described in 'ftrace_set_filter'
kernel/trace/ftrace.c:5411: warning: Function parameter or member 'ops' not described in 'ftrace_set_notrace'
kernel/trace/ftrace.c:5411: warning: Function parameter or member 'buf' not described in 'ftrace_set_notrace'
kernel/trace/ftrace.c:5411: warning: Function parameter or member 'len' not described in 'ftrace_set_notrace'
kernel/trace/ftrace.c:5411: warning: Function parameter or member 'reset' not described in 'ftrace_set_notrace'
kernel/trace/ftrace.c:5426: warning: Function parameter or member 'buf' not described in 'ftrace_set_global_filter'
kernel/trace/ftrace.c:5426: warning: Function parameter or member 'len' not described in 'ftrace_set_global_filter'
kernel/trace/ftrace.c:5426: warning: Function parameter or member 'reset' not described in 'ftrace_set_global_filter'
kernel/trace/ftrace.c:5442: warning: Function parameter or member 'buf' not described in 'ftrace_set_global_notrace'
kernel/trace/ftrace.c:5442: warning: Function parameter or member 'len' not described in 'ftrace_set_global_notrace'
kernel/trace/ftrace.c:5442: warning: Function parameter or member 'reset' not described in 'ftrace_set_global_notrace'
kernel/trace/ftrace.c:7471: warning: Function parameter or member 'ops' not described in 'register_ftrace_function'
kernel/trace/ftrace.c:7493: warning: Function parameter or member 'ops' not described in 'unregister_ftrace_function'
kernel/trace/ring_buffer.c:1141: warning: Function parameter or member 'cpu_buffer' not described in 'rb_check_list'
kernel/trace/ring_buffer.c:1141: warning: Function parameter or member 'list' not described in 'rb_check_list'
kernel/trace/trace.c:313: warning: Function parameter or member 'this_tr' not described in 'trace_array_put'
kernel/trace/trace.c:392: warning: Function parameter or member 'filtered_no_pids' not described in 'trace_ignore_this_task'
kernel/trace/trace_seq.c:142: warning: Function parameter or member 'args' not described in 'trace_seq_vprintf'
kernel/trace/trace_preemptirq.c:88:16: warning: no previous prototype for function 'trace_hardirqs_on_caller' [-Wmissing-prototypes]
__visible void trace_hardirqs_on_caller(unsigned long caller_addr)
^
kernel/trace/trace_preemptirq.c:88:11: note: declare 'static' if the function is not intended to be used outside of this translation unit
__visible void trace_hardirqs_on_caller(unsigned long caller_addr)
^
static
kernel/trace/trace_preemptirq.c:103:16: warning: no previous prototype for function 'trace_hardirqs_off_caller' [-Wmissing-prototypes]
__visible void trace_hardirqs_off_caller(unsigned long caller_addr)
^
kernel/trace/trace_preemptirq.c:103:11: note: declare 'static' if the function is not intended to be used outside of this translation unit
__visible void trace_hardirqs_off_caller(unsigned long caller_addr)
^
static
2 warnings generated.
In file included from kernel/trace/fgraph.c:10:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
include/linux/memcontrol.h:45:30: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum node_stat_item' [-Wenum-conversion]
return vmstat_item_in_bytes(item);
~~~~~~~~~~~~~~~~~~~~ ^~~~
kernel/trace/fgraph.c:232:15: warning: no previous prototype for function 'ftrace_return_to_handler' [-Wmissing-prototypes]
unsigned long ftrace_return_to_handler(unsigned long frame_pointer)
^
kernel/trace/fgraph.c:232:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
unsigned long ftrace_return_to_handler(unsigned long frame_pointer)
^
static
kernel/trace/fgraph.c:348:6: warning: no previous prototype for function 'ftrace_graph_sleep_time_control' [-Wmissing-prototypes]
void ftrace_graph_sleep_time_control(bool enable)
^
kernel/trace/fgraph.c:348:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void ftrace_graph_sleep_time_control(bool enable)
^
static
3kernel/trace/trace_events_filter.c:1565:1: warningwarning: unused function 'event_set_no_set_filter_flag' [-Wunused-function]s
generated.
event_set_no_set_filter_flag(struct trace_event_file *file)
^
kernel/trace/trace_events_filter.c:1571:1: warning: unused function 'event_clear_no_set_filter_flag' [-Wunused-function]
event_clear_no_set_filter_flag(struct trace_event_file *file)
^
kernel/trace/trace_events_filter.c:1577:1: warning: unused function 'event_no_set_filter_flag' [-Wunused-function]
event_no_set_filter_flag(struct trace_event_file *file)
^
kernel/trace/fgraph.c:298: warning: Function parameter or member 'task' not described in 'ftrace_graph_ret_addr'
kernel/trace/fgraph.c:298: warning: Function parameter or member 'idx' not described in 'ftrace_graph_ret_addr'
kernel/trace/fgraph.c:298: warning: Function parameter or member 'ret' not described in 'ftrace_graph_ret_addr'
kernel/trace/fgraph.c:298: warning: Function parameter or member 'retp' not described in 'ftrace_graph_ret_addr'
kernel/trace/trace_branch.c:205:6: warning: no previous prototype for function 'ftrace_likely_update' [-Wmissing-prototypes]
void ftrace_likely_update(struct ftrace_likely_data *f, int val,
^
kernel/trace/trace_branch.c:205:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void ftrace_likely_update(struct ftrace_likely_data *f, int val,
^
static
1 warning generated.
kernel/trace/trace_events_trigger.c:58: warning: Function parameter or member 'event' not described in 'event_triggers_call'
kernel/trace/trace_events_trigger.c:917: warning: Function parameter or member 'named_data' not described in 'set_named_trigger_data'
3 warnings generated.
kernel/trace/trace_events_filter.c:99: warning: cannot understand function prototype: 'struct prog_entry '
kernel/trace/trace_events_filter.c:118: warning: Function parameter or member 'invert' not described in 'update_preds'
kernel/trace/trace_events_filter.c:118: warning: Excess function parameter 'when_to_branch' description in 'update_preds'
kernel/trace/trace_events_filter.c:1736: warning: Function parameter or member 'tr' not described in 'create_filter'
kernel/trace/trace_events_filter.c:1736: warning: Function parameter or member 'filter_string' not described in 'create_filter'
kernel/trace/trace_events_filter.c:1736: warning: Excess function parameter 'filter_str' description in 'create_filter'
kernel/trace/trace_events_filter.c:1776: warning: Function parameter or member 'dir' not described in 'create_system_filter'
kernel/trace/trace_events_filter.c:1776: warning: Function parameter or member 'tr' not described in 'create_system_filter'
kernel/trace/trace_events_filter.c:1776: warning: Excess function parameter 'system' description in 'create_system_filter'
..
vim +/decrement_wakelocks_number +74 kernel/power/wakelock.c
c73893e2ca731b Rafael J. Wysocki 2012-05-05 73
c73893e2ca731b Rafael J. Wysocki 2012-05-05 @74 static inline void decrement_wakelocks_number(void)
c73893e2ca731b Rafael J. Wysocki 2012-05-05 75 {
c73893e2ca731b Rafael J. Wysocki 2012-05-05 76 number_of_wakelocks--;
c73893e2ca731b Rafael J. Wysocki 2012-05-05 77 }
c73893e2ca731b Rafael J. Wysocki 2012-05-05 78 #else /* CONFIG_PM_WAKELOCKS_LIMIT = 0 */
c73893e2ca731b Rafael J. Wysocki 2012-05-05 79 static inline bool wakelocks_limit_exceeded(void) { return false; }
c73893e2ca731b Rafael J. Wysocki 2012-05-05 80 static inline void increment_wakelocks_number(void) {}
c73893e2ca731b Rafael J. Wysocki 2012-05-05 81 static inline void decrement_wakelocks_number(void) {}
c73893e2ca731b Rafael J. Wysocki 2012-05-05 82 #endif /* CONFIG_PM_WAKELOCKS_LIMIT */
c73893e2ca731b Rafael J. Wysocki 2012-05-05 83
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 36861 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2020-06-30 7:24 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-22 22:16 [PATCH 0/4] iopoll fixes + cleanups Pavel Begunkov
2020-06-22 22:16 ` [PATCH 1/4] io_uring: fix hanging iopoll in case of -EAGAIN Pavel Begunkov
2020-06-23 2:07 ` Jens Axboe
2020-06-23 2:18 ` Jens Axboe
2020-06-23 11:57 ` Pavel Begunkov
2020-06-23 19:01 ` Jens Axboe
2020-06-24 16:56 ` Pavel Begunkov
2020-06-22 22:16 ` [PATCH 2/4] io_uring: handle EAGAIN iopoll Pavel Begunkov
2020-06-30 4:01 ` kernel test robot
2020-06-22 22:16 ` [PATCH 3/4] io-wq: compact io-wq flags numbers Pavel Begunkov
2020-06-22 22:16 ` [PATCH 4/4] io-wq: return next work from ->do_work() directly Pavel Begunkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox