linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] xen: cleanup detection of non-essential pv devices
@ 2021-10-22  6:47 Juergen Gross
  2021-10-22  6:47 ` [PATCH 1/5] xen: add "not_essential" flag to struct xenbus_driver Juergen Gross
                   ` (6 more replies)
  0 siblings, 7 replies; 16+ messages in thread
From: Juergen Gross @ 2021-10-22  6:47 UTC (permalink / raw)
  To: xen-devel, linux-input, linux-kernel, dri-devel, linux-fbdev,
	linuxppc-dev
  Cc: Juergen Gross, Dmitry Torokhov, Boris Ostrovsky,
	Stefano Stabellini, Oleksandr Andrushchenko, David Airlie,
	Daniel Vetter, Greg Kroah-Hartman, Jiri Slaby, Jaroslav Kysela,
	Takashi Iwai, alsa-devel

Today the non-essential pv devices are hard coded in the xenbus driver
and this list is lacking multiple entries.

This series reworks the detection logic of non-essential devices by
adding a flag for that purpose to struct xenbus_driver.

Juergen Gross (5):
  xen: add "not_essential" flag to struct xenbus_driver
  xen: flag xen_drm_front to be not essential for system boot
  xen: flag hvc_xen to be not essential for system boot
  xen: flag pvcalls-front to be not essential for system boot
  xen: flag xen_snd_front to be not essential for system boot

 drivers/gpu/drm/xen/xen_drm_front.c        |  1 +
 drivers/input/misc/xen-kbdfront.c          |  1 +
 drivers/tty/hvc/hvc_xen.c                  |  1 +
 drivers/video/fbdev/xen-fbfront.c          |  1 +
 drivers/xen/pvcalls-front.c                |  1 +
 drivers/xen/xenbus/xenbus_probe_frontend.c | 14 +++-----------
 include/xen/xenbus.h                       |  1 +
 sound/xen/xen_snd_front.c                  |  1 +
 8 files changed, 10 insertions(+), 11 deletions(-)

-- 
2.26.2


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 1/5] xen: add "not_essential" flag to struct xenbus_driver
  2021-10-22  6:47 [PATCH 0/5] xen: cleanup detection of non-essential pv devices Juergen Gross
@ 2021-10-22  6:47 ` Juergen Gross
  2021-10-22  9:28   ` Andrew Cooper
  2021-10-22  6:47 ` [PATCH 2/5] xen: flag xen_drm_front to be not essential for system boot Juergen Gross
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 16+ messages in thread
From: Juergen Gross @ 2021-10-22  6:47 UTC (permalink / raw)
  To: xen-devel, linux-input, linux-kernel, dri-devel, linux-fbdev
  Cc: Juergen Gross, Dmitry Torokhov, Boris Ostrovsky, Stefano Stabellini

When booting the xenbus driver will wait for PV devices to have
connected to their backends before continuing. The timeout is different
between essential and non-essential devices.

Non-essential devices are identified by their nodenames directly in the
xenbus driver, which requires to update this list in case a new device
type being non-essential is added (this was missed for several types
in the past).

In order to avoid this problem, add a "not_essential" flag to struct
xenbus_driver which can be set to "true" by the respective frontend.

Set this flag for the frontends currently regarded to be not essential
(vkbs and vfb) and use it for testing in the xenbus driver.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 drivers/input/misc/xen-kbdfront.c          |  1 +
 drivers/video/fbdev/xen-fbfront.c          |  1 +
 drivers/xen/xenbus/xenbus_probe_frontend.c | 14 +++-----------
 include/xen/xenbus.h                       |  1 +
 4 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/drivers/input/misc/xen-kbdfront.c b/drivers/input/misc/xen-kbdfront.c
index 4ff5cd2a6d8d..3d17a0b3fe51 100644
--- a/drivers/input/misc/xen-kbdfront.c
+++ b/drivers/input/misc/xen-kbdfront.c
@@ -542,6 +542,7 @@ static struct xenbus_driver xenkbd_driver = {
 	.remove = xenkbd_remove,
 	.resume = xenkbd_resume,
 	.otherend_changed = xenkbd_backend_changed,
+	.not_essential = true,
 };
 
 static int __init xenkbd_init(void)
diff --git a/drivers/video/fbdev/xen-fbfront.c b/drivers/video/fbdev/xen-fbfront.c
index 5ec51445bee8..6826f986da43 100644
--- a/drivers/video/fbdev/xen-fbfront.c
+++ b/drivers/video/fbdev/xen-fbfront.c
@@ -695,6 +695,7 @@ static struct xenbus_driver xenfb_driver = {
 	.remove = xenfb_remove,
 	.resume = xenfb_resume,
 	.otherend_changed = xenfb_backend_changed,
+	.not_essential = true,
 };
 
 static int __init xenfb_init(void)
diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
index 480944606a3c..07b010a68fcf 100644
--- a/drivers/xen/xenbus/xenbus_probe_frontend.c
+++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
@@ -211,19 +211,11 @@ static int is_device_connecting(struct device *dev, void *data, bool ignore_none
 	if (drv && (dev->driver != drv))
 		return 0;
 
-	if (ignore_nonessential) {
-		/* With older QEMU, for PVonHVM guests the guest config files
-		 * could contain: vfb = [ 'vnc=1, vnclisten=0.0.0.0']
-		 * which is nonsensical as there is no PV FB (there can be
-		 * a PVKB) running as HVM guest. */
+	xendrv = to_xenbus_driver(dev->driver);
 
-		if ((strncmp(xendev->nodename, "device/vkbd", 11) == 0))
-			return 0;
+	if (ignore_nonessential && xendrv->not_essential)
+		return 0;
 
-		if ((strncmp(xendev->nodename, "device/vfb", 10) == 0))
-			return 0;
-	}
-	xendrv = to_xenbus_driver(dev->driver);
 	return (xendev->state < XenbusStateConnected ||
 		(xendev->state == XenbusStateConnected &&
 		 xendrv->is_ready && !xendrv->is_ready(xendev)));
diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h
index b94074c82772..b13eb86395e0 100644
--- a/include/xen/xenbus.h
+++ b/include/xen/xenbus.h
@@ -112,6 +112,7 @@ struct xenbus_driver {
 	const char *name;       /* defaults to ids[0].devicetype */
 	const struct xenbus_device_id *ids;
 	bool allow_rebind; /* avoid setting xenstore closed during remove */
+	bool not_essential;     /* is not mandatory for boot progress */
 	int (*probe)(struct xenbus_device *dev,
 		     const struct xenbus_device_id *id);
 	void (*otherend_changed)(struct xenbus_device *dev,
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 2/5] xen: flag xen_drm_front to be not essential for system boot
  2021-10-22  6:47 [PATCH 0/5] xen: cleanup detection of non-essential pv devices Juergen Gross
  2021-10-22  6:47 ` [PATCH 1/5] xen: add "not_essential" flag to struct xenbus_driver Juergen Gross
@ 2021-10-22  6:47 ` Juergen Gross
  2021-10-22  7:24   ` Oleksandr Andrushchenko
  2021-10-22  6:47 ` [PATCH 3/5] xen: flag hvc_xen " Juergen Gross
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 16+ messages in thread
From: Juergen Gross @ 2021-10-22  6:47 UTC (permalink / raw)
  To: xen-devel, dri-devel, linux-kernel
  Cc: Juergen Gross, Oleksandr Andrushchenko, David Airlie, Daniel Vetter

Similar to the virtual frame buffer (vfb) the pv display driver is not
essential for booting the system. Set the respective flag.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 drivers/gpu/drm/xen/xen_drm_front.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/xen/xen_drm_front.c b/drivers/gpu/drm/xen/xen_drm_front.c
index 9f14d99c763c..bc7605324db3 100644
--- a/drivers/gpu/drm/xen/xen_drm_front.c
+++ b/drivers/gpu/drm/xen/xen_drm_front.c
@@ -773,6 +773,7 @@ static struct xenbus_driver xen_driver = {
 	.probe = xen_drv_probe,
 	.remove = xen_drv_remove,
 	.otherend_changed = displback_changed,
+	.not_essential = true,
 };
 
 static int __init xen_drv_init(void)
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 3/5] xen: flag hvc_xen to be not essential for system boot
  2021-10-22  6:47 [PATCH 0/5] xen: cleanup detection of non-essential pv devices Juergen Gross
  2021-10-22  6:47 ` [PATCH 1/5] xen: add "not_essential" flag to struct xenbus_driver Juergen Gross
  2021-10-22  6:47 ` [PATCH 2/5] xen: flag xen_drm_front to be not essential for system boot Juergen Gross
@ 2021-10-22  6:47 ` Juergen Gross
  2021-10-22  6:47 ` [PATCH 4/5] xen: flag pvcalls-front " Juergen Gross
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 16+ messages in thread
From: Juergen Gross @ 2021-10-22  6:47 UTC (permalink / raw)
  To: xen-devel, linuxppc-dev, linux-kernel
  Cc: Juergen Gross, Greg Kroah-Hartman, Jiri Slaby

The Xen pv console driver is not essential for boot. Set the respective
flag.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 drivers/tty/hvc/hvc_xen.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
index f0bf01ea069a..71e0dd2c0ce5 100644
--- a/drivers/tty/hvc/hvc_xen.c
+++ b/drivers/tty/hvc/hvc_xen.c
@@ -522,6 +522,7 @@ static struct xenbus_driver xencons_driver = {
 	.remove = xencons_remove,
 	.resume = xencons_resume,
 	.otherend_changed = xencons_backend_changed,
+	.not_essential = true,
 };
 #endif /* CONFIG_HVC_XEN_FRONTEND */
 
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 4/5] xen: flag pvcalls-front to be not essential for system boot
  2021-10-22  6:47 [PATCH 0/5] xen: cleanup detection of non-essential pv devices Juergen Gross
                   ` (2 preceding siblings ...)
  2021-10-22  6:47 ` [PATCH 3/5] xen: flag hvc_xen " Juergen Gross
@ 2021-10-22  6:47 ` Juergen Gross
  2021-10-22  6:48 ` [PATCH 5/5] xen: flag xen_snd_front " Juergen Gross
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 16+ messages in thread
From: Juergen Gross @ 2021-10-22  6:47 UTC (permalink / raw)
  To: xen-devel, linux-kernel
  Cc: Juergen Gross, Boris Ostrovsky, Stefano Stabellini

The Xen pvcalls device is not essential for booting. Set the respective
flag.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 drivers/xen/pvcalls-front.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/xen/pvcalls-front.c b/drivers/xen/pvcalls-front.c
index 7984645b5956..3c9ae156b597 100644
--- a/drivers/xen/pvcalls-front.c
+++ b/drivers/xen/pvcalls-front.c
@@ -1275,6 +1275,7 @@ static struct xenbus_driver pvcalls_front_driver = {
 	.probe = pvcalls_front_probe,
 	.remove = pvcalls_front_remove,
 	.otherend_changed = pvcalls_front_changed,
+	.not_essential = true,
 };
 
 static int __init pvcalls_frontend_init(void)
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 5/5] xen: flag xen_snd_front to be not essential for system boot
  2021-10-22  6:47 [PATCH 0/5] xen: cleanup detection of non-essential pv devices Juergen Gross
                   ` (3 preceding siblings ...)
  2021-10-22  6:47 ` [PATCH 4/5] xen: flag pvcalls-front " Juergen Gross
@ 2021-10-22  6:48 ` Juergen Gross
  2021-10-22  7:25   ` Oleksandr Andrushchenko
  2021-11-07  4:43   ` kernel test robot
  2021-10-22  7:24 ` [PATCH 0/5] xen: cleanup detection of non-essential pv devices Jan Beulich
  2021-11-22  8:20 ` Juergen Gross
  6 siblings, 2 replies; 16+ messages in thread
From: Juergen Gross @ 2021-10-22  6:48 UTC (permalink / raw)
  To: xen-devel, linux-kernel
  Cc: Juergen Gross, Oleksandr Andrushchenko, Jaroslav Kysela,
	Takashi Iwai, alsa-devel

The Xen pv sound driver is not essential for booting. Set the respective
flag.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 sound/xen/xen_snd_front.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/xen/xen_snd_front.c b/sound/xen/xen_snd_front.c
index 2cb0a19be2b8..7be9fbcf788f 100644
--- a/sound/xen/xen_snd_front.c
+++ b/sound/xen/xen_snd_front.c
@@ -358,6 +358,7 @@ static struct xenbus_driver xen_driver = {
 	.probe = xen_drv_probe,
 	.remove = xen_drv_remove,
 	.otherend_changed = sndback_changed,
+	.not_essential = true;
 };
 
 static int __init xen_drv_init(void)
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/5] xen: cleanup detection of non-essential pv devices
  2021-10-22  6:47 [PATCH 0/5] xen: cleanup detection of non-essential pv devices Juergen Gross
                   ` (4 preceding siblings ...)
  2021-10-22  6:48 ` [PATCH 5/5] xen: flag xen_snd_front " Juergen Gross
@ 2021-10-22  7:24 ` Jan Beulich
  2021-10-22  7:34   ` Juergen Gross
  2021-11-22  8:20 ` Juergen Gross
  6 siblings, 1 reply; 16+ messages in thread
From: Jan Beulich @ 2021-10-22  7:24 UTC (permalink / raw)
  To: Juergen Gross
  Cc: Dmitry Torokhov, Boris Ostrovsky, Stefano Stabellini,
	Oleksandr Andrushchenko, David Airlie, Daniel Vetter,
	Greg Kroah-Hartman, Jiri Slaby, Jaroslav Kysela, Takashi Iwai,
	alsa-devel, xen-devel, linux-input, linux-kernel, dri-devel,
	linux-fbdev, linuxppc-dev

On 22.10.2021 08:47, Juergen Gross wrote:
> Today the non-essential pv devices are hard coded in the xenbus driver
> and this list is lacking multiple entries.
> 
> This series reworks the detection logic of non-essential devices by
> adding a flag for that purpose to struct xenbus_driver.

I'm wondering whether it wouldn't better be the other way around: The
(hopefully few) essential ones get flagged, thus also making it more
prominent during patch review that a flag gets added (and justification
provided), instead of having to spot the lack of a flag getting set.

Jan


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 2/5] xen: flag xen_drm_front to be not essential for system boot
  2021-10-22  6:47 ` [PATCH 2/5] xen: flag xen_drm_front to be not essential for system boot Juergen Gross
@ 2021-10-22  7:24   ` Oleksandr Andrushchenko
  0 siblings, 0 replies; 16+ messages in thread
From: Oleksandr Andrushchenko @ 2021-10-22  7:24 UTC (permalink / raw)
  To: Juergen Gross, xen-devel, dri-devel, linux-kernel
  Cc: Oleksandr Andrushchenko, David Airlie, Daniel Vetter

Hi, Juergen!

On 22.10.21 09:47, Juergen Gross wrote:
> Similar to the virtual frame buffer (vfb) the pv display driver is not
> essential for booting the system. Set the respective flag.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> ---
>   drivers/gpu/drm/xen/xen_drm_front.c | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/xen/xen_drm_front.c b/drivers/gpu/drm/xen/xen_drm_front.c
> index 9f14d99c763c..bc7605324db3 100644
> --- a/drivers/gpu/drm/xen/xen_drm_front.c
> +++ b/drivers/gpu/drm/xen/xen_drm_front.c
> @@ -773,6 +773,7 @@ static struct xenbus_driver xen_driver = {
>   	.probe = xen_drv_probe,
>   	.remove = xen_drv_remove,
>   	.otherend_changed = displback_changed,
> +	.not_essential = true,
>   };
>   
>   static int __init xen_drv_init(void)

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 5/5] xen: flag xen_snd_front to be not essential for system boot
  2021-10-22  6:48 ` [PATCH 5/5] xen: flag xen_snd_front " Juergen Gross
@ 2021-10-22  7:25   ` Oleksandr Andrushchenko
  2021-11-07  4:43   ` kernel test robot
  1 sibling, 0 replies; 16+ messages in thread
From: Oleksandr Andrushchenko @ 2021-10-22  7:25 UTC (permalink / raw)
  To: Juergen Gross, xen-devel, linux-kernel
  Cc: Oleksandr Andrushchenko, Jaroslav Kysela, Takashi Iwai, alsa-devel

Hi, Juergen!

On 22.10.21 09:48, Juergen Gross wrote:
> The Xen pv sound driver is not essential for booting. Set the respective
> flag.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> ---
>   sound/xen/xen_snd_front.c | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/sound/xen/xen_snd_front.c b/sound/xen/xen_snd_front.c
> index 2cb0a19be2b8..7be9fbcf788f 100644
> --- a/sound/xen/xen_snd_front.c
> +++ b/sound/xen/xen_snd_front.c
> @@ -358,6 +358,7 @@ static struct xenbus_driver xen_driver = {
>   	.probe = xen_drv_probe,
>   	.remove = xen_drv_remove,
>   	.otherend_changed = sndback_changed,
> +	.not_essential = true;
>   };
>   
>   static int __init xen_drv_init(void)

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/5] xen: cleanup detection of non-essential pv devices
  2021-10-22  7:24 ` [PATCH 0/5] xen: cleanup detection of non-essential pv devices Jan Beulich
@ 2021-10-22  7:34   ` Juergen Gross
  0 siblings, 0 replies; 16+ messages in thread
From: Juergen Gross @ 2021-10-22  7:34 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Dmitry Torokhov, Boris Ostrovsky, Stefano Stabellini,
	Oleksandr Andrushchenko, David Airlie, Daniel Vetter,
	Greg Kroah-Hartman, Jiri Slaby, Jaroslav Kysela, Takashi Iwai,
	alsa-devel, xen-devel, linux-input, linux-kernel, dri-devel,
	linux-fbdev, linuxppc-dev


[-- Attachment #1.1.1: Type: text/plain, Size: 1184 bytes --]

On 22.10.21 09:24, Jan Beulich wrote:
> On 22.10.2021 08:47, Juergen Gross wrote:
>> Today the non-essential pv devices are hard coded in the xenbus driver
>> and this list is lacking multiple entries.
>>
>> This series reworks the detection logic of non-essential devices by
>> adding a flag for that purpose to struct xenbus_driver.
> 
> I'm wondering whether it wouldn't better be the other way around: The
> (hopefully few) essential ones get flagged, thus also making it more
> prominent during patch review that a flag gets added (and justification
> provided), instead of having to spot the lack of a flag getting set.

Not flagging a non-essential one is less problematic than not flagging
an essential driver IMO.

For some drivers I'm on the edge, BTW. The pv 9pfs driver ought to be
non-essential in most cases, but there might be use cases where it is
needed, so I didn't set its non_essential flag.

Same applies to pv-usb and maybe pv-scsi, while pv-tpm probably really
is essential.

With the current series I'm ending up with 6 non-essential drivers and
6 essential ones, so either way needs the same number of drivers
modified.


Juergen

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3135 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 1/5] xen: add "not_essential" flag to struct xenbus_driver
  2021-10-22  6:47 ` [PATCH 1/5] xen: add "not_essential" flag to struct xenbus_driver Juergen Gross
@ 2021-10-22  9:28   ` Andrew Cooper
  2021-10-25  9:30     ` Juergen Gross
  0 siblings, 1 reply; 16+ messages in thread
From: Andrew Cooper @ 2021-10-22  9:28 UTC (permalink / raw)
  To: Juergen Gross, xen-devel, linux-input, linux-kernel, dri-devel,
	linux-fbdev
  Cc: Dmitry Torokhov, Boris Ostrovsky, Stefano Stabellini

On 22/10/2021 07:47, Juergen Gross wrote:
> When booting the xenbus driver will wait for PV devices to have
> connected to their backends before continuing. The timeout is different
> between essential and non-essential devices.
>
> Non-essential devices are identified by their nodenames directly in the
> xenbus driver, which requires to update this list in case a new device
> type being non-essential is added (this was missed for several types
> in the past).
>
> In order to avoid this problem, add a "not_essential" flag to struct
> xenbus_driver which can be set to "true" by the respective frontend.
>
> Set this flag for the frontends currently regarded to be not essential
> (vkbs and vfb) and use it for testing in the xenbus driver.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>

Wouldn't it be better to annotate essential?  That way, when new misc
drivers come along, they don't by default block boot.

~Andrew

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 1/5] xen: add "not_essential" flag to struct xenbus_driver
  2021-10-22  9:28   ` Andrew Cooper
@ 2021-10-25  9:30     ` Juergen Gross
  0 siblings, 0 replies; 16+ messages in thread
From: Juergen Gross @ 2021-10-25  9:30 UTC (permalink / raw)
  To: Andrew Cooper, xen-devel, linux-input, linux-kernel, dri-devel,
	linux-fbdev
  Cc: Dmitry Torokhov, Boris Ostrovsky, Stefano Stabellini


[-- Attachment #1.1.1: Type: text/plain, Size: 1651 bytes --]

On 22.10.21 11:28, Andrew Cooper wrote:
> On 22/10/2021 07:47, Juergen Gross wrote:
>> When booting the xenbus driver will wait for PV devices to have
>> connected to their backends before continuing. The timeout is different
>> between essential and non-essential devices.
>>
>> Non-essential devices are identified by their nodenames directly in the
>> xenbus driver, which requires to update this list in case a new device
>> type being non-essential is added (this was missed for several types
>> in the past).
>>
>> In order to avoid this problem, add a "not_essential" flag to struct
>> xenbus_driver which can be set to "true" by the respective frontend.
>>
>> Set this flag for the frontends currently regarded to be not essential
>> (vkbs and vfb) and use it for testing in the xenbus driver.
>>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
> 
> Wouldn't it be better to annotate essential?  That way, when new misc
> drivers come along, they don't by default block boot.

It isn't as if new drivers would "block boot". Normally the short
timeout for all drivers of 30 seconds is more than enough for all of
them.

I'm a little bit hesitant to have a kind of "white listing" essential
drivers, as there might be different views which drivers should have
that flag. Doing this the other way round is easier: in case of
disagreement such a patch just wouldn't go in, not breaking anything
in that case.

Additionally there might be out-of-tree PV drivers, which could be
hit by not being flagged to be essential. With the not_essential flag
the situation wouldn't change for such a driver.


Juergen

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3135 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 5/5] xen: flag xen_snd_front to be not essential for system boot
  2021-10-22  6:48 ` [PATCH 5/5] xen: flag xen_snd_front " Juergen Gross
  2021-10-22  7:25   ` Oleksandr Andrushchenko
@ 2021-11-07  4:43   ` kernel test robot
  1 sibling, 0 replies; 16+ messages in thread
From: kernel test robot @ 2021-11-07  4:43 UTC (permalink / raw)
  To: Juergen Gross, xen-devel, linux-kernel
  Cc: llvm, kbuild-all, Juergen Gross, Oleksandr Andrushchenko,
	Jaroslav Kysela, Takashi Iwai, alsa-devel

[-- Attachment #1: Type: text/plain, Size: 2321 bytes --]

Hi Juergen,

I love your patch! Yet something to improve:

[auto build test ERROR on xen-tip/linux-next]
[also build test ERROR on tty/tty-testing tiwai-sound/for-next hid/for-next linus/master v5.15 next-20211106]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Juergen-Gross/xen-cleanup-detection-of-non-essential-pv-devices/20211022-145043
base:   https://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git linux-next
config: arm64-randconfig-r005-20211025 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project a461fa64bb37cffd73f683c74f6b0780379fc2ca)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm64 cross compiling tool for clang build
        # apt-get install binutils-aarch64-linux-gnu
        # https://github.com/0day-ci/linux/commit/ed8f15a6cafc5414c3821aad66273c580034c3c0
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Juergen-Gross/xen-cleanup-detection-of-non-essential-pv-devices/20211022-145043
        git checkout ed8f15a6cafc5414c3821aad66273c580034c3c0
        # save the attached .config to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash sound/xen/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> sound/xen/xen_snd_front.c:361:23: error: unexpected ';' before '}'
           .not_essential = true;
                                ^
   1 error generated.


vim +361 sound/xen/xen_snd_front.c

   355	
   356	static struct xenbus_driver xen_driver = {
   357		.ids = xen_drv_ids,
   358		.probe = xen_drv_probe,
   359		.remove = xen_drv_remove,
   360		.otherend_changed = sndback_changed,
 > 361		.not_essential = true;
   362	};
   363	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 39620 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/5] xen: cleanup detection of non-essential pv devices
  2021-10-22  6:47 [PATCH 0/5] xen: cleanup detection of non-essential pv devices Juergen Gross
                   ` (5 preceding siblings ...)
  2021-10-22  7:24 ` [PATCH 0/5] xen: cleanup detection of non-essential pv devices Jan Beulich
@ 2021-11-22  8:20 ` Juergen Gross
  2021-11-23 20:39   ` Boris Ostrovsky
  2021-11-25 15:21   ` Boris Ostrovsky
  6 siblings, 2 replies; 16+ messages in thread
From: Juergen Gross @ 2021-11-22  8:20 UTC (permalink / raw)
  To: xen-devel, linux-input, linux-kernel, dri-devel, linux-fbdev,
	linuxppc-dev
  Cc: Dmitry Torokhov, Boris Ostrovsky, Stefano Stabellini,
	Oleksandr Andrushchenko, David Airlie, Daniel Vetter,
	Greg Kroah-Hartman, Jiri Slaby, Jaroslav Kysela, Takashi Iwai,
	alsa-devel


[-- Attachment #1.1.1: Type: text/plain, Size: 1194 bytes --]

On 22.10.21 08:47, Juergen Gross wrote:
> Today the non-essential pv devices are hard coded in the xenbus driver
> and this list is lacking multiple entries.
> 
> This series reworks the detection logic of non-essential devices by
> adding a flag for that purpose to struct xenbus_driver.
> 
> Juergen Gross (5):
>    xen: add "not_essential" flag to struct xenbus_driver
>    xen: flag xen_drm_front to be not essential for system boot
>    xen: flag hvc_xen to be not essential for system boot
>    xen: flag pvcalls-front to be not essential for system boot
>    xen: flag xen_snd_front to be not essential for system boot
> 
>   drivers/gpu/drm/xen/xen_drm_front.c        |  1 +
>   drivers/input/misc/xen-kbdfront.c          |  1 +
>   drivers/tty/hvc/hvc_xen.c                  |  1 +
>   drivers/video/fbdev/xen-fbfront.c          |  1 +
>   drivers/xen/pvcalls-front.c                |  1 +
>   drivers/xen/xenbus/xenbus_probe_frontend.c | 14 +++-----------
>   include/xen/xenbus.h                       |  1 +
>   sound/xen/xen_snd_front.c                  |  1 +
>   8 files changed, 10 insertions(+), 11 deletions(-)
> 

Any further comments?


Juergen

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3135 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/5] xen: cleanup detection of non-essential pv devices
  2021-11-22  8:20 ` Juergen Gross
@ 2021-11-23 20:39   ` Boris Ostrovsky
  2021-11-25 15:21   ` Boris Ostrovsky
  1 sibling, 0 replies; 16+ messages in thread
From: Boris Ostrovsky @ 2021-11-23 20:39 UTC (permalink / raw)
  To: Juergen Gross, xen-devel, linux-input, linux-kernel, dri-devel,
	linux-fbdev, linuxppc-dev
  Cc: Dmitry Torokhov, Stefano Stabellini, Oleksandr Andrushchenko,
	David Airlie, Daniel Vetter, Greg Kroah-Hartman, Jiri Slaby,
	Jaroslav Kysela, Takashi Iwai, alsa-devel


On 11/22/21 3:20 AM, Juergen Gross wrote:
> On 22.10.21 08:47, Juergen Gross wrote:
>> Today the non-essential pv devices are hard coded in the xenbus driver
>> and this list is lacking multiple entries.
>>
>> This series reworks the detection logic of non-essential devices by
>> adding a flag for that purpose to struct xenbus_driver.
>>
>> Juergen Gross (5):
>>    xen: add "not_essential" flag to struct xenbus_driver
>>    xen: flag xen_drm_front to be not essential for system boot
>>    xen: flag hvc_xen to be not essential for system boot
>>    xen: flag pvcalls-front to be not essential for system boot
>>    xen: flag xen_snd_front to be not essential for system boot
>>
>>   drivers/gpu/drm/xen/xen_drm_front.c        |  1 +
>>   drivers/input/misc/xen-kbdfront.c          |  1 +
>>   drivers/tty/hvc/hvc_xen.c                  |  1 +
>>   drivers/video/fbdev/xen-fbfront.c          |  1 +
>>   drivers/xen/pvcalls-front.c                |  1 +
>>   drivers/xen/xenbus/xenbus_probe_frontend.c | 14 +++-----------
>>   include/xen/xenbus.h                       |  1 +
>>   sound/xen/xen_snd_front.c                  |  1 +
>>   8 files changed, 10 insertions(+), 11 deletions(-)
>>
>
> Any further comments?
>

Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>


(I'll fix the semicolon typo in the last patch, no need to resend)


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/5] xen: cleanup detection of non-essential pv devices
  2021-11-22  8:20 ` Juergen Gross
  2021-11-23 20:39   ` Boris Ostrovsky
@ 2021-11-25 15:21   ` Boris Ostrovsky
  1 sibling, 0 replies; 16+ messages in thread
From: Boris Ostrovsky @ 2021-11-25 15:21 UTC (permalink / raw)
  To: Juergen Gross, xen-devel, linux-input, linux-kernel, dri-devel,
	linux-fbdev, linuxppc-dev
  Cc: Dmitry Torokhov, Stefano Stabellini, Oleksandr Andrushchenko,
	David Airlie, Daniel Vetter, Greg Kroah-Hartman, Jiri Slaby,
	Jaroslav Kysela, Takashi Iwai, alsa-devel


On 11/22/21 3:20 AM, Juergen Gross wrote:
> On 22.10.21 08:47, Juergen Gross wrote:
>> Today the non-essential pv devices are hard coded in the xenbus driver
>> and this list is lacking multiple entries.
>>
>> This series reworks the detection logic of non-essential devices by
>> adding a flag for that purpose to struct xenbus_driver.
>>
>> Juergen Gross (5):
>>    xen: add "not_essential" flag to struct xenbus_driver
>>    xen: flag xen_drm_front to be not essential for system boot
>>    xen: flag hvc_xen to be not essential for system boot
>>    xen: flag pvcalls-front to be not essential for system boot
>>    xen: flag xen_snd_front to be not essential for system boot
>>
>>   drivers/gpu/drm/xen/xen_drm_front.c        |  1 +
>>   drivers/input/misc/xen-kbdfront.c          |  1 +
>>   drivers/tty/hvc/hvc_xen.c                  |  1 +
>>   drivers/video/fbdev/xen-fbfront.c          |  1 +
>>   drivers/xen/pvcalls-front.c                |  1 +
>>   drivers/xen/xenbus/xenbus_probe_frontend.c | 14 +++-----------
>>   include/xen/xenbus.h                       |  1 +
>>   sound/xen/xen_snd_front.c                  |  1 +
>>   8 files changed, 10 insertions(+), 11 deletions(-)
>>
>



Applied to for-linus-5.16c


-boris


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2021-11-25 15:25 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-22  6:47 [PATCH 0/5] xen: cleanup detection of non-essential pv devices Juergen Gross
2021-10-22  6:47 ` [PATCH 1/5] xen: add "not_essential" flag to struct xenbus_driver Juergen Gross
2021-10-22  9:28   ` Andrew Cooper
2021-10-25  9:30     ` Juergen Gross
2021-10-22  6:47 ` [PATCH 2/5] xen: flag xen_drm_front to be not essential for system boot Juergen Gross
2021-10-22  7:24   ` Oleksandr Andrushchenko
2021-10-22  6:47 ` [PATCH 3/5] xen: flag hvc_xen " Juergen Gross
2021-10-22  6:47 ` [PATCH 4/5] xen: flag pvcalls-front " Juergen Gross
2021-10-22  6:48 ` [PATCH 5/5] xen: flag xen_snd_front " Juergen Gross
2021-10-22  7:25   ` Oleksandr Andrushchenko
2021-11-07  4:43   ` kernel test robot
2021-10-22  7:24 ` [PATCH 0/5] xen: cleanup detection of non-essential pv devices Jan Beulich
2021-10-22  7:34   ` Juergen Gross
2021-11-22  8:20 ` Juergen Gross
2021-11-23 20:39   ` Boris Ostrovsky
2021-11-25 15:21   ` Boris Ostrovsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).