Project

General

Profile

Actions

Bug #10684

closed

usbkbm: implement usbkbm_rsrv() to get out of interrupt context

Added by Toomas Soome over 4 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
driver - device drivers
Start date:
2019-04-03
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
External Bug:

Description

The usbkbm is streams driver and does push the (translated) key to stream with putnext() call. Since putnext() is commonly used method (it will reduce latency) to pass messages to next module in queue, this will end up with deep stack and in case of usbkbm, the whole chain is executing in interrupt context. In worst case this means we are drawing the console FB from interrupt context of usbkbm.

We would like to have interrupt routine done fast, so we should putq the message to our read queue and let STREAMS scheduler to handle the queue by calling usbkbm_rsrv().

Actions #1

Updated by Electric Monk over 4 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 0 to 100

git commit 100e26fc80bc137237733b254a52de636d52c80e

commit  100e26fc80bc137237733b254a52de636d52c80e
Author: Toomas Soome <tsoome@me.com>
Date:   2019-04-26T16:14:19.000Z

    10684 usbkbm: implement usbkbm_rsrv() to get out of interrupt context
    Reviewed by: Gergő Doma <domag02@gmail.com>
    Reviewed by: Randy Fishel <randyf@sibernet.com>
    Approved by: Dan McDonald <danmcd@joyent.com>

Actions

Also available in: Atom PDF