[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <b8ac5a69-22e0-4581-85cb-e8a8130e005e@kylinos.cn>
Date: Fri, 31 Oct 2025 16:31:37 +0800
From: Hongyu Xie <xiehongyu1@...inos.cn>
To: mathias.nyman@...ux.intel.com,
mathias.nyman@...el.com
Cc: gregkh@...uxfoundation.org,
linux-kernel@...r.kernel.org,
linux-usb@...r.kernel.org,
xiehongyu1@...inos.cn
Subject: Re: [PATCH v1] usb: xhci: limit run_graceperiod for only usb 3.0
devices
Hello,
Anything new about this patch?
在 2025/10/20 19:20, Mathias Nyman 写道:
> On 10/17/25 15:12, Hongyu Xie wrote:
>> run_graceperiod blocks usb 2.0 devices from auto suspending after
>> xhci_start for 500ms.
>>
>> Log shows:
>> [ 13.387170] xhci_hub_control:1271: xhci-hcd PNP0D10:03: Get port
>> status 7-1 read: 0x2a0, return 0x100
>> [ 13.387177] hub_event:5779: hub 7-0:1.0: state 7 ports 1 chg 0000
>> evt 0000
>> [ 13.387182] hub_suspend:3903: hub 7-0:1.0: hub_suspend
>> [ 13.387188] hcd_bus_suspend:2250: usb usb7: bus auto-suspend, wakeup 1
>> [ 13.387191] hcd_bus_suspend:2279: usb usb7: suspend raced with
>> wakeup event
>> [ 13.387193] hcd_bus_resume:2303: usb usb7: usb auto-resume
>> [ 13.387296] hub_event:5779: hub 3-0:1.0: state 7 ports 1 chg 0000
>> evt 0000
>> [ 13.393343] handle_port_status:2034: xhci-hcd PNP0D10:02:
>> handle_port_status: starting usb5 port polling.
>> [ 13.393353] xhci_hub_control:1271: xhci-hcd PNP0D10:02: Get port
>> status 5-1 read: 0x206e1, return 0x10101
>> [ 13.400047] hub_suspend:3903: hub 3-0:1.0: hub_suspend
>> [ 13.403077] hub_resume:3948: hub 7-0:1.0: hub_resume
>> [ 13.403080] xhci_hub_control:1271: xhci-hcd PNP0D10:03: Get port
>> status 7-1 read: 0x2a0, return 0x100
>> [ 13.403085] hub_event:5779: hub 7-0:1.0: state 7 ports 1 chg 0000
>> evt 0000
>> [ 13.403087] hub_suspend:3903: hub 7-0:1.0: hub_suspend
>> [ 13.403090] hcd_bus_suspend:2250: usb usb7: bus auto-suspend, wakeup 1
>> [ 13.403093] hcd_bus_suspend:2279: usb usb7: suspend raced with
>> wakeup event
>> [ 13.403095] hcd_bus_resume:2303: usb usb7: usb auto-resume
>> [ 13.405002] handle_port_status:1913: xhci-hcd PNP0D10:04: Port
>> change event, 9-1, id 1, portsc: 0x6e1
>> [ 13.405016] hub_activate:1169: usb usb5-port1: status 0101 change 0001
>> [ 13.405026] xhci_clear_port_change_bit:658: xhci-hcd PNP0D10:02:
>> clear port1 connect change, portsc: 0x6e1
>> [ 13.413275] hcd_bus_suspend:2250: usb usb3: bus auto-suspend, wakeup 1
>> [ 13.419081] hub_resume:3948: hub 7-0:1.0: hub_resume
>> [ 13.419086] xhci_hub_control:1271: xhci-hcd PNP0D10:03: Get port
>> status 7-1 read: 0x2a0, return 0x100
>> [ 13.419095] hub_event:5779: hub 7-0:1.0: state 7 ports 1 chg 0000
>> evt 0000
>> [ 13.419100] hub_suspend:3903: hub 7-0:1.0: hub_suspend
>> [ 13.419106] hcd_bus_suspend:2250: usb usb7: bus auto-suspend, wakeup 1
>> [ 13.419110] hcd_bus_suspend:2279: usb usb7: suspend raced with
>> wakeup event
>> [ 13.419112] hcd_bus_resume:2303: usb usb7: usb auto-resume
>> [ 13.420455] handle_port_status:2034: xhci-hcd PNP0D10:04:
>> handle_port_status: starting usb9 port polling.
>> [ 13.420493] handle_port_status:1913: xhci-hcd PNP0D10:05: Port
>> change event, 10-1, id 1, portsc: 0x6e1
>> [ 13.425332] hcd_bus_suspend:2279: usb usb3: suspend raced with
>> wakeup event
>> [ 13.431931] handle_port_status:2034: xhci-hcd PNP0D10:05:
>> handle_port_status: starting usb10 port polling.
>> [ 13.435080] hub_resume:3948: hub 7-0:1.0: hub_resume
>> [ 13.435084] xhci_hub_control:1271: xhci-hcd PNP0D10:03: Get port
>> status 7-1 read: 0x2a0, return 0x100
>> [ 13.435092] hub_event:5779: hub 7-0:1.0: state 7 ports 1 chg 0000
>> evt 0000
>> [ 13.435096] hub_suspend:3903: hub 7-0:1.0: hub_suspend
>> [ 13.435102] hcd_bus_suspend:2250: usb usb7: bus auto-suspend, wakeup 1
>> [ 13.435106] hcd_bus_suspend:2279: usb usb7: suspend raced with
>> wakeup event
>>
>> usb7 and other usb 2.0 root hub were rapidly toggling between suspend
>> and resume states. More, "suspend raced with wakeup event" confuses
>> people.
>>
>> So, limit run_graceperiod for only usb 3.0 devices
>>
>> Signed-off-by: Hongyu Xie <xiehongyu1@...inos.cn>
>
> Sounds reasonable. I don't recall USB 2.0 devices needing this.
>
> Hub driver has also changed a bit since the xhci run_graceperiod was added.
> USB 3 hubs are no longer aggressively runtime suspending after resume. See:
> 8f5b7e2bec1c usb: hub: fix detection of high tier USB3 devices behind
> suspended hubs
>
> We could possibly get rid of the whole xhci run_graceperiod by extending
> the hub driver
> change to cover both init and resume paths.
>
> This patch is a good step in that direction
>
> Thanks
> Mathias
Powered by blists - more mailing lists