[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <e59af0cb-8930-ff79-3d05-f075442ca5ff@roeck-us.net>
Date: Tue, 18 Aug 2020 06:39:03 -0700
From: Guenter Roeck <linux@...ck-us.net>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Badhri Jagan Sridharan <badhri@...gle.com>
Cc: Heikki Krogerus <heikki.krogerus@...ux.intel.com>,
linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org,
Hans de Goede <hdegoede@...hat.com>
Subject: Re: [PATCH v5] usb: typec: tcpm: Migrate workqueue to RT priority for
processing events
On 8/18/20 3:58 AM, Greg Kroah-Hartman wrote:
> On Thu, Jul 30, 2020 at 11:58:30PM -0700, Badhri Jagan Sridharan wrote:
>> "tReceiverResponse 15 ms Section 6.6.2
>> The receiver of a Message requiring a response Shall respond
>> within tReceiverResponse in order to ensure that the
>> sender’s SenderResponseTimer does not expire."
>>
>> When the cpu complex is busy running other lower priority
>> work items, TCPM's work queue sometimes does not get scheduled
>> on time to meet the above requirement from the spec.
>> Moving to kthread_work apis to run with real time priority.
>> Just lower than the default threaded irq priority,
>> MAX_USER_RT_PRIO/2 + 1. (Higher number implies lower priority).
>>
>> Further, as observed in 1ff688209e2e, moving to hrtimers to
>> overcome scheduling latency while scheduling the delayed work.
>>
>> TCPM has three work streams:
>> 1. tcpm_state_machine
>> 2. vdm_state_machine
>> 3. event_work
>>
>> tcpm_state_machine and vdm_state_machine both schedule work in
>> future i.e. delayed. Hence each of them have a corresponding
>> hrtimer, tcpm_state_machine_timer & vdm_state_machine_timer.
>>
>> When work is queued right away kthread_queue_work is used.
>> Else, the relevant timer is programmed and made to queue
>> the kthread_work upon timer expiry.
>>
>> kthread_create_worker only creates one kthread worker thread,
>> hence single threadedness of workqueue is retained.
>>
>> Signed-off-by: Badhri Jagan Sridharan <badhri@...gle.com>
>> Reviewed-by: Guenter Roeck <linux@...ck-us.net>
>> Reviewed-by: Heikki Krogerus <heikki.krogerus@...ux.intel.com>
>> ---
>
> With this patch applied I get the following build breakage:
>
> ERROR: modpost: "sched_setscheduler" [drivers/usb/typec/tcpm/tcpm.ko] undefined!
>
Needs to call sched_set_fifo() now. See upstream commit 94beddacb53cd
("sched,watchdog: Convert to sched_set_fifo()").
Guenter
> Please fix up and resend against 5.9-rc1.
>
> thanks,
>
> greg k-h
>
Powered by blists - more mailing lists