* [PATCH] virtio_mmio: pm: Add notification handlers for restore and freeze
@ 2021-12-13 16:00 Mikhail Golubev
2021-12-13 18:46 ` kernel test robot
2021-12-13 23:55 ` Michael S. Tsirkin
0 siblings, 2 replies; 4+ messages in thread
From: Mikhail Golubev @ 2021-12-13 16:00 UTC (permalink / raw)
To: virtualization, linux-kernel
Cc: Michael S. Tsirkin, Jason Wang, Mikhail Golubev
From: Yurii Danilovskyi <glyd@opensynergy.com>
Handle restore and freeze notifications from the PM core. Expose
these to individual virtio drivers that can quiesce and resume vq
operations.
Signed-off-by: Yurii Danilovskyi <glyd@opensynergy.com>
Signed-off-by: Mikhail Golubev <Mikhail.Golubev@opensynergy.com>
---
drivers/virtio/virtio_mmio.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c
index 56128b9c46eb..af79f8c2a2f2 100644
--- a/drivers/virtio/virtio_mmio.c
+++ b/drivers/virtio/virtio_mmio.c
@@ -762,6 +762,24 @@ static void vm_unregister_cmdline_devices(void)
#endif
+static int __maybe_unused virtio_mmio_freeze(struct device *dev)
+{
+ struct platform_device *pdev = to_platform_device(dev);
+ struct virtio_mmio_device *vm_dev = platform_get_drvdata(pdev);
+
+ return virtio_device_freeze(&vm_dev->vdev);
+}
+
+static int __maybe_unused virtio_mmio_restore(struct device *dev)
+{
+ struct platform_device *pdev = to_platform_device(dev);
+ struct virtio_mmio_device *vm_dev = platform_get_drvdata(pdev);
+
+ return virtio_device_restore(&vm_dev->vdev);
+}
+
+static SIMPLE_DEV_PM_OPS(virtio_mmio_pm_ops, virtio_mmio_freeze, virtio_mmio_restore);
+
/* Platform driver */
static const struct of_device_id virtio_mmio_match[] = {
@@ -785,6 +803,7 @@ static struct platform_driver virtio_mmio_driver = {
.name = "virtio-mmio",
.of_match_table = virtio_mmio_match,
.acpi_match_table = ACPI_PTR(virtio_mmio_acpi_match),
+ .pm = &virtio_mmio_pm_ops,
},
};
--
2.34.1
--
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] virtio_mmio: pm: Add notification handlers for restore and freeze
2021-12-13 16:00 [PATCH] virtio_mmio: pm: Add notification handlers for restore and freeze Mikhail Golubev
@ 2021-12-13 18:46 ` kernel test robot
2021-12-13 23:55 ` Michael S. Tsirkin
1 sibling, 0 replies; 4+ messages in thread
From: kernel test robot @ 2021-12-13 18:46 UTC (permalink / raw)
To: Mikhail Golubev, virtualization, linux-kernel
Cc: kbuild-all, Michael S. Tsirkin, Jason Wang, Mikhail Golubev
Hi Mikhail,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linux/master]
[also build test ERROR on linus/master v5.16-rc5]
[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/Mikhail-Golubev/virtio_mmio-pm-Add-notification-handlers-for-restore-and-freeze/20211214-001636
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 136057256686de39cc3a07c2e39ef6bc43003ff6
config: m68k-randconfig-r033-20211213 (https://download.01.org/0day-ci/archive/20211214/202112140201.xeCfVzym-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 11.2.0
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
# https://github.com/0day-ci/linux/commit/86cd610f19003c4d848c13e5e00e38e9bc41f54e
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Mikhail-Golubev/virtio_mmio-pm-Add-notification-handlers-for-restore-and-freeze/20211214-001636
git checkout 86cd610f19003c4d848c13e5e00e38e9bc41f54e
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=m68k SHELL=/bin/bash drivers/virtio/
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 >>):
drivers/virtio/virtio_mmio.c: In function 'virtio_mmio_freeze':
>> drivers/virtio/virtio_mmio.c:770:16: error: implicit declaration of function 'virtio_device_freeze'; did you mean 'virtio_device_ready'? [-Werror=implicit-function-declaration]
770 | return virtio_device_freeze(&vm_dev->vdev);
| ^~~~~~~~~~~~~~~~~~~~
| virtio_device_ready
drivers/virtio/virtio_mmio.c: In function 'virtio_mmio_restore':
>> drivers/virtio/virtio_mmio.c:778:16: error: implicit declaration of function 'virtio_device_restore'; did you mean 'virtio_mmio_restore'? [-Werror=implicit-function-declaration]
778 | return virtio_device_restore(&vm_dev->vdev);
| ^~~~~~~~~~~~~~~~~~~~~
| virtio_mmio_restore
cc1: some warnings being treated as errors
vim +770 drivers/virtio/virtio_mmio.c
764
765 static int __maybe_unused virtio_mmio_freeze(struct device *dev)
766 {
767 struct platform_device *pdev = to_platform_device(dev);
768 struct virtio_mmio_device *vm_dev = platform_get_drvdata(pdev);
769
> 770 return virtio_device_freeze(&vm_dev->vdev);
771 }
772
773 static int __maybe_unused virtio_mmio_restore(struct device *dev)
774 {
775 struct platform_device *pdev = to_platform_device(dev);
776 struct virtio_mmio_device *vm_dev = platform_get_drvdata(pdev);
777
> 778 return virtio_device_restore(&vm_dev->vdev);
779 }
780
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] virtio_mmio: pm: Add notification handlers for restore and freeze
2021-12-13 16:00 [PATCH] virtio_mmio: pm: Add notification handlers for restore and freeze Mikhail Golubev
2021-12-13 18:46 ` kernel test robot
@ 2021-12-13 23:55 ` Michael S. Tsirkin
2021-12-14 16:21 ` Mikhail Golubev
1 sibling, 1 reply; 4+ messages in thread
From: Michael S. Tsirkin @ 2021-12-13 23:55 UTC (permalink / raw)
To: Mikhail Golubev; +Cc: virtualization, linux-kernel, Jason Wang
On Mon, Dec 13, 2021 at 05:00:08PM +0100, Mikhail Golubev wrote:
> From: Yurii Danilovskyi <glyd@opensynergy.com>
>
> Handle restore and freeze notifications from the PM core. Expose
> these to individual virtio drivers that can quiesce and resume vq
> operations.
>
> Signed-off-by: Yurii Danilovskyi <glyd@opensynergy.com>
> Signed-off-by: Mikhail Golubev <Mikhail.Golubev@opensynergy.com>
> ---
> drivers/virtio/virtio_mmio.c | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c
> index 56128b9c46eb..af79f8c2a2f2 100644
> --- a/drivers/virtio/virtio_mmio.c
> +++ b/drivers/virtio/virtio_mmio.c
> @@ -762,6 +762,24 @@ static void vm_unregister_cmdline_devices(void)
>
> #endif
>
> +static int __maybe_unused virtio_mmio_freeze(struct device *dev)
> +{
> + struct platform_device *pdev = to_platform_device(dev);
> + struct virtio_mmio_device *vm_dev = platform_get_drvdata(pdev);
> +
> + return virtio_device_freeze(&vm_dev->vdev);
> +}
> +
> +static int __maybe_unused virtio_mmio_restore(struct device *dev)
> +{
> + struct platform_device *pdev = to_platform_device(dev);
> + struct virtio_mmio_device *vm_dev = platform_get_drvdata(pdev);
> +
> + return virtio_device_restore(&vm_dev->vdev);
> +}
> +
> +static SIMPLE_DEV_PM_OPS(virtio_mmio_pm_ops, virtio_mmio_freeze, virtio_mmio_restore);
> +
> /* Platform driver */
>
> static const struct of_device_id virtio_mmio_match[] = {
> @@ -785,6 +803,7 @@ static struct platform_driver virtio_mmio_driver = {
> .name = "virtio-mmio",
> .of_match_table = virtio_mmio_match,
> .acpi_match_table = ACPI_PTR(virtio_mmio_acpi_match),
> + .pm = &virtio_mmio_pm_ops,
> },
> };
All this code needs to be within ifdef CONFIG_PM_SLEEP. Alternatively,
tweak virtio.h to expose virtio_device_freeze/virtio_device_restore
unconditionally.
>
> --
> 2.34.1
>
>
> --
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] virtio_mmio: pm: Add notification handlers for restore and freeze
2021-12-13 23:55 ` Michael S. Tsirkin
@ 2021-12-14 16:21 ` Mikhail Golubev
0 siblings, 0 replies; 4+ messages in thread
From: Mikhail Golubev @ 2021-12-14 16:21 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: virtualization, linux-kernel, Jason Wang
The 12/13/2021 18:55, Michael S. Tsirkin wrote:
> On Mon, Dec 13, 2021 at 05:00:08PM +0100, Mikhail Golubev wrote:
> > From: Yurii Danilovskyi <glyd@opensynergy.com>
> >
> > Handle restore and freeze notifications from the PM core. Expose
> > these to individual virtio drivers that can quiesce and resume vq
> > operations.
> >
> > Signed-off-by: Yurii Danilovskyi <glyd@opensynergy.com>
> > Signed-off-by: Mikhail Golubev <Mikhail.Golubev@opensynergy.com>
> > ---
> > drivers/virtio/virtio_mmio.c | 19 +++++++++++++++++++
> > 1 file changed, 19 insertions(+)
> >
> > diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c
> > index 56128b9c46eb..af79f8c2a2f2 100644
> > --- a/drivers/virtio/virtio_mmio.c
> > +++ b/drivers/virtio/virtio_mmio.c
> > @@ -762,6 +762,24 @@ static void vm_unregister_cmdline_devices(void)
> >
> > #endif
> >
> > +static int __maybe_unused virtio_mmio_freeze(struct device *dev)
> > +{
> > + struct platform_device *pdev = to_platform_device(dev);
> > + struct virtio_mmio_device *vm_dev = platform_get_drvdata(pdev);
> > +
> > + return virtio_device_freeze(&vm_dev->vdev);
> > +}
> > +
> > +static int __maybe_unused virtio_mmio_restore(struct device *dev)
> > +{
> > + struct platform_device *pdev = to_platform_device(dev);
> > + struct virtio_mmio_device *vm_dev = platform_get_drvdata(pdev);
> > +
> > + return virtio_device_restore(&vm_dev->vdev);
> > +}
> > +
> > +static SIMPLE_DEV_PM_OPS(virtio_mmio_pm_ops, virtio_mmio_freeze, virtio_mmio_restore);
> > +
> > /* Platform driver */
> >
> > static const struct of_device_id virtio_mmio_match[] = {
> > @@ -785,6 +803,7 @@ static struct platform_driver virtio_mmio_driver = {
> > .name = "virtio-mmio",
> > .of_match_table = virtio_mmio_match,
> > .acpi_match_table = ACPI_PTR(virtio_mmio_acpi_match),
> > + .pm = &virtio_mmio_pm_ops,
> > },
> > };
>
> All this code needs to be within ifdef CONFIG_PM_SLEEP. Alternatively,
> tweak virtio.h to expose virtio_device_freeze/virtio_device_restore
> unconditionally.
Added ifdef CONFIG_PM_SLEEP in the patch v2 for simplicity and to be more
aligned with other PM code in drivers/virtio.
>
>
> >
> > --
> > 2.34.1
> >
> >
> > --
>
--
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-12-14 16:21 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-13 16:00 [PATCH] virtio_mmio: pm: Add notification handlers for restore and freeze Mikhail Golubev
2021-12-13 18:46 ` kernel test robot
2021-12-13 23:55 ` Michael S. Tsirkin
2021-12-14 16:21 ` Mikhail Golubev
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).