Re: [RFC PATCH 2/8] vhost/vhost_task: Hook vhost layer into signal handler

From: Christian Brauner
Date: Thu May 18 2023 - 04:16:46 EST


On Wed, May 17, 2023 at 08:01:45PM -0500, Mike Christie wrote:
> On 5/17/23 7:16 PM, Linus Torvalds wrote:
> > On Wed, May 17, 2023 at 5:09 PM Mike Christie
> > <michael.christie@xxxxxxxxxx> wrote:
> >>
> >> + __set_current_state(TASK_RUNNING);
> >> + rc = get_signal(&ksig);
> >> + set_current_state(TASK_INTERRUPTIBLE);
> >> + return rc;
> >
> > The games with current_state seem nonsensical.
> >
> > What are they all about? get_signal() shouldn't care, and no other
> > caller does this thing. This just seems completely random.
>
> Sorry. It's a leftover.
>
> I was originally calling this from vhost_task_should_stop where before
> calling that function we do a:
>
> set_current_state(TASK_INTERRUPTIBLE);
>
> So, I was hitting get_signal->try_to_freeze->might_sleep->__might_sleep
> and was getting the "do not call blocking ops when !TASK_RUNNING"
> warnings.

Also seems you might want to check the return value of you new helper...