Bug 1126990

Summary: 9p virtio mount stalls after S4 resume
Product: [openSUSE] openSUSE Tumbleweed Reporter: Takashi Iwai <tiwai>
Component: KVMAssignee: Liang Yan <lyan>
Status: RESOLVED WONTFIX QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: lyan
Version: Current   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Takashi Iwai 2019-02-26 11:05:38 UTC
I tested the S4 (hibernate) with a KVM image, and noticed that mounting 9p virtio hangs up after PM resume.

% systemctl hibernate
  (or echo disk > /sys/power/state)

... then reboot, the system resumes.
On the resumed syetem,

% mount -t 9p shared /shared

This stalls (while the machine is running).

The kernel stack trace (via /proc) shows that it gets stuck at
  v9fs_mount() -> v9fs_session_init() -> p9_client_create() -> p9_client_rpc()

The bug seems present for long time, I could reproduce with all kernels I tested (from SLE12-SP3 until 5.0-rc).
Comment 1 Liang Yan 2019-03-01 16:50:58 UTC
Did some investigation, it looks there is no PM implementation in driver at all.

https://elixir.bootlin.com/linux/v5.0-rc8/source/net/9p/trans_virtio.c


static unsigned int features[] = {
	VIRTIO_9P_MOUNT_TAG,
};

/* The standard "struct lguest_driver": */
static struct virtio_driver p9_virtio_drv = {
	.feature_table  = features,
	.feature_table_size = ARRAY_SIZE(features),
	.driver.name    = KBUILD_MODNAME,
	.driver.owner	= THIS_MODULE,
	.id_table	= id_table,
	.probe		= p9_virtio_probe,
	.remove		= p9_virtio_remove,
};
Comment 2 Liang Yan 2022-01-05 20:46:45 UTC
There is still no implementation in the latest kernel. Considering 9p virtio is not a supported feature, close the bug here. Feel free to file a feature request if it is a blocker, thanks for the report.