All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Zongmin Zhou <min_halo@163.com>
Cc: shuah@kernel.org, valentina.manea.m@gmail.com, i@zenithal.me,
	linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
	zhouzongmin@kylinos.cn
Subject: Re: [PATCH v2] usbip: convert to use faux_device
Date: Fri, 20 Jun 2025 11:27:20 +0200	[thread overview]
Message-ID: <2025062004-navy-emboss-4743@gregkh> (raw)
In-Reply-To: <9d95bb75-586c-48dc-9e34-432cc13fd99f@163.com>

On Fri, Jun 20, 2025 at 05:19:33PM +0800, Zongmin Zhou wrote:
> 
> On 2025/6/20 12:29, Greg KH wrote:
> > On Fri, Jun 20, 2025 at 10:16:16AM +0800, Zongmin Zhou wrote:
> > > On 2025/6/19 19:01, Greg KH wrote:
> > > > On Wed, Jun 04, 2025 at 02:54:10PM +0800, Zongmin Zhou wrote:
> > > > > From: Zongmin Zhou <zhouzongmin@kylinos.cn>
> > > > > 
> > > > > The vhci driver does not need to create a platform device,
> > > > > it only did so because it was simple to do that in order to
> > > > > get a place in sysfs to hang some device-specific attributes.
> > > > > Now the faux device interface is more appropriate,change it
> > > > > over to use the faux bus instead.
> > > > > 
> > > > > Signed-off-by: Zongmin Zhou <zhouzongmin@kylinos.cn>
> > > > > ---
> > > > > Changes in v2:
> > > > > - don't change faux create api,just call probe on vhci_hcd_init.
> > > > > 
> > > > >    drivers/usb/usbip/vhci.h             |  4 +-
> > > > >    drivers/usb/usbip/vhci_hcd.c         | 86 +++++++++++-----------------
> > > > >    drivers/usb/usbip/vhci_sysfs.c       | 68 +++++++++++-----------
> > > > >    tools/usb/usbip/libsrc/vhci_driver.h |  2 +-
> > > > >    4 files changed, 72 insertions(+), 88 deletions(-)
> > > > I get the following build errors from this patch:
> > > > 
> > > > drivers/usb/usbip/vhci_hcd.c:1462:12: error: ‘vhci_hcd_resume’ defined but not used [-Werror=unused-function]
> > > >    1462 | static int vhci_hcd_resume(struct faux_device *fdev)
> > > >         |            ^~~~~~~~~~~~~~~
> > > > drivers/usb/usbip/vhci_hcd.c:1418:12: error: ‘vhci_hcd_suspend’ defined but not used [-Werror=unused-function]
> > > >    1418 | static int vhci_hcd_suspend(struct faux_device *fdev, pm_message_t state)
> > > >         |            ^~~~~~~~~~~~~~~~
> > > > cc1: all warnings being treated as errors
> > > > 
> > > > Are you sure you tested this?
> > > I apologize for not enabling -Werror, which resulted in missing this error
> > > warning.
> > > I have tested usbip feature use the new patch,but not test system
> > > suspend/resume.
> > > The faux bus type don't add pm function,and vhci-hcd driver can't register
> > > it.
> > > Maybe have to add suspend/resume for it.like below:
> > > static const struct bus_type faux_bus_type = {
> > >      .name        = "faux",
> > >      .match        = faux_match,
> > >      .probe        = faux_probe,
> > >      .remove        = faux_remove,
> > >      .resume     = faux_resume,
> > >      .suspend    = faux_suspend,
> > > };
> > > 
> > > Is that right?
> > > Your expertise would be greatly valued.
> > As this is not real hardware, why do you need the suspend/resume
> > callbacks at all?  What is happening here that requires them?
> @greg,
> The vhci_hcd_suspend/vhci_hcd_resume interfaces are not designed for this
> faux device, but rather to
> manipulate the HCD_FLAG_HW_ACCESSIBLE bit in the hcd flags associated with
> the faux device.
> For example:
> During system standby: clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags)
> During system wakeup: set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags)
> 
> Previously, these two functions were registered through platform_driver,
> but faux bus does not have the relevant interface, so they were not called,
> resulting in this compilation warning error.
> 
> This raises the question: Should the faux bus implement PM-related
> interface?
> I'm uncertain whether these functions are essential for the vhci-hcd driver
> or if they can be safely removed.
> 
> However, during system standby/wakeup tests with remote USB devices bound to
> the vhci-hcd driver,
> I observed consistent failure scenarios across both the original platform
> bus and faux bus patch implementations.
> 
> Failure Modes
> a.Failed standby with auto-wakeup(Log excerpt):
> [ 1449.065592][T10238] PM: suspend entry (s2idle)
> [ 1449.106146][T10238] Filesystems sync: 0.040 seconds
> [ 1449.216189][T10238] Freezing user space processes
> [ 1449.219474][T10238] Freezing user space processes completed (elapsed
> 0.002 seconds)
> [ 1449.219887][T10238] OOM killer disabled.
> [ 1449.220090][T10238] Freezing remaining freezable tasks
> [ 1469.222372][T10238] Freezing remaining freezable tasks failed after
> 20.002 seconds (0 tasks refusing to freeze, wq_busy=1):
> [ 1469.225038][T10238] Showing freezable workqueues that are still busy:
> [ 1469.226176][T10238] workqueue events_freezable_pwr_efficient: flags=0x86
> [ 1469.227453][T10238]   pwq 20: cpus=0-3 node=0 flags=0x4 nice=0 active=1
> refcnt=2
> [ 1469.227463][T10238]     in-flight: 268:disk_events_workfn
> [ 1469.233559][T10238] Restarting kernel threads ... done.
> [ 1469.235119][T10238] OOM killer enabled.
> [ 1469.235849][T10238] Restarting tasks ... done.
> [ 1469.240121][T10238] random: crng reseeded on system resumption
> [ 1469.241176][T10238] PM: suspend exit
> 
> b.Failed standby with black screen freeze:
> [ 1820.667073][T11454] PM: suspend entry (s2idle)

Are you sure this is the usbip driver causing suspend to not work?  If
you unbind the usbip devices does suspend/resume work?

I would think that we would have gotten some reports by now if this
didn't work at all :)

thanks,

greg k-h

  reply	other threads:[~2025-06-20  9:28 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-08  9:11 [PATCH 0/2] some changes based on faux bus Zongmin Zhou
2025-05-08  9:11 ` [PATCH 1/2] driver core:add device's platform_data set for faux device Zongmin Zhou
2025-05-08  9:45   ` Greg KH
2025-05-09  2:41     ` Zongmin Zhou
2025-05-21 10:51       ` Greg KH
2025-05-28  9:21         ` Zongmin Zhou
2025-05-08  9:11 ` [PATCH 2/2] usbip: convert to use faux_device Zongmin Zhou
2025-05-09 10:42   ` kernel test robot
2025-06-04  6:54   ` [PATCH v2] " Zongmin Zhou
2025-06-10 15:15     ` Shuah Khan
2025-06-19 11:02       ` Greg KH
2025-06-19 11:01     ` Greg KH
2025-06-20  2:16       ` Zongmin Zhou
2025-06-20  4:29         ` Greg KH
2025-06-20  9:19           ` Zongmin Zhou
2025-06-20  9:27             ` Greg KH [this message]
2025-06-20 17:26               ` Shuah Khan
2025-06-24  3:21                 ` Zongmin Zhou
2025-07-01 22:56                   ` Shuah Khan
2025-07-02  2:12                     ` Zongmin Zhou
2025-07-02 23:54                       ` Shuah Khan
2025-07-03  6:04                         ` Zongmin Zhou
2025-07-08 18:16                           ` Shuah Khan
2025-07-09  9:07                             ` Zongmin Zhou
2025-07-09 10:06                               ` Greg KH
2025-07-09 14:20                                 ` Alan Stern
2025-07-09 21:49                                   ` Shuah Khan
2025-07-09 21:57                                     ` Shuah Khan
2025-07-10 14:06                                       ` Alan Stern
2025-07-10 20:33                                         ` Shuah Khan
2025-07-11  5:56                                           ` Greg KH
2025-07-14  5:31                                           ` Zongmin Zhou
2025-07-09 21:33                               ` Shuah Khan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2025062004-navy-emboss-4743@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=i@zenithal.me \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=min_halo@163.com \
    --cc=shuah@kernel.org \
    --cc=valentina.manea.m@gmail.com \
    --cc=zhouzongmin@kylinos.cn \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.