From: Kees Cook <keescook@chromium.org>
To: Jens Axboe <axboe@kernel.dk>
Cc: "Gustavo A. R. Silva" <gustavo@embeddedor.com>,
linux-next@vger.kernel.org
Subject: Re: Coverity: io_wqe_worker(): Program hangs
Date: Tue, 29 Oct 2019 09:11:13 -0700 [thread overview]
Message-ID: <201910290910.29320BE326@keescook> (raw)
In-Reply-To: <7fdaef1a-6c7a-46df-f84b-4d05cca16fca@kernel.dk>
On Mon, Oct 28, 2019 at 05:35:15PM -0600, Jens Axboe wrote:
> On 10/28/19 5:30 PM, Kees Cook wrote:
> > On Mon, Oct 28, 2019 at 05:27:59PM -0600, Jens Axboe wrote:
> >> On 10/28/19 5:05 PM, coverity-bot wrote:
> >>> Hello!
> >>>
> >>> This is an experimental automated report about issues detected by Coverity
> >>> from a scan of next-20191025 as part of the linux-next weekly scan project:
> >>> https://scan.coverity.com/projects/linux-next-weekly-scan
> >>>
> >>> You're getting this email because you were associated with the identified
> >>> lines of code (noted below) that were touched by recent commits:
> >>>
> >>> 46134db8fdc5 ("io-wq: small threadpool implementation for io_uring")
> >>>
> >>> Coverity reported the following:
> >>>
> >>> *** CID 1487365: Program hangs (LOCK)
> >>> /fs/io-wq.c: 349 in io_wqe_worker()
> >>> 343 io_worker_handle_work(worker);
> >>> 344 else
> >>> 345 spin_unlock(&wqe->lock);
> >>> 346 }
> >>> 347
> >>> 348 io_worker_exit(worker);
> >>> vvv CID 1487365: Program hangs (LOCK)
> >>> vvv Returning without unlocking "(*wqe).lock".
> >>> 349 return 0;
> >>> 350 }
> >>> 351
> >>> 352 /*
> >>> 353 * Check head of free list for an available worker. If one isn't available,
> >>> 354 * caller must wake up the wq manager to create one.
> >>>
> >>> If this is a false positive, please let us know so we can mark it as
> >>> such, or teach the Coverity rules to be smarter. If not, please make
> >>> sure fixes get into linux-next. :) For patches fixing this, please
> >>> include:
> >>
> >> It's a false positive, lock is dropped on non-zero return.
> >
> > Does that happen in the caller side? I'll see if I can figure out how to
> > teach coverity about that... Hmmm
>
> I was trying to use the right incantations of __release() etc to shut up
> the checker as well. So if there are things I could be improving on that
> side, do let me know.
>
> As mentioned in other emails, the linux-next version is somewhat outdated
> at this point. My for-next branch has the latest version.
Yeah, I think I see Coverity's confusion: this code is the work queue
runner, IIUC, so the locking is pretty special. I'll try to see if there
is a way to improve this.
--
Kees Cook
prev parent reply other threads:[~2019-10-29 16:11 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-28 23:05 Coverity: io_wqe_worker(): Program hangs coverity-bot
2019-10-28 23:27 ` Jens Axboe
2019-10-28 23:30 ` Kees Cook
2019-10-28 23:35 ` Jens Axboe
2019-10-29 16:11 ` Kees Cook [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201910290910.29320BE326@keescook \
--to=keescook@chromium.org \
--cc=axboe@kernel.dk \
--cc=gustavo@embeddedor.com \
--cc=linux-next@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).