Thread (9 messages) 9 messages, 5 authors, 2016-11-22

Re: [PATCH] RFC: mmc: block: replace semaphore with freezing

From: Linus Walleij <hidden>
Date: 2016-11-22 08:54:18
Also in: linux-mmc

On Wed, Nov 16, 2016 at 5:32 PM, Arnd Bergmann [off-list ref] wrote:
On Wednesday, November 16, 2016 4:20:47 PM CET Linus Walleij wrote:
quoted
On Wed, Nov 16, 2016 at 1:46 PM, Rafael J. Wysocki [off-list ref] wrote:
quoted
Well, we had a session at the KS regarding usage of the freezer on
kernel threads and the conclusion was to get rid of that (as opposed
to freezing user space, which is necessary IMO).  So this change would
go in the opposite direction.
Aha so I should not make this thread look like everyone else, instead
everyone else should look like this thread, haha

Ah well, I'll just drop it.
It would still be good to remove the semaphore and do something else,
as we also want to remove all semaphores. ;-)

We could check "mq->flags & MMC_QUEUE_SUSPENDED" in the kthread to see
if the queue is currently suspended, and otherwise go to sleep there,
and then call wake_up() in the resume function.
Hm... so simply:

if (mq->flags & MMC_QUEUE_SUSPENDED)
  schedule();

?

This whole kthread business is pretty messy. I would prefer if I could
just convert it to a workqueue. Just that it's not very simple the way
it speculates around in the request queue from the block layer.
While looking at that code, I just noticed that access to
mq->flags is racy and should be fixed as well.
I guess we should take the queue lock &q->lock around accessing
the flags.

Yours,
Linus Walleij
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help