[PATCH v6 00/16] drm/vkms: Add configfs support

José Expósito posted 16 patches 3 months, 1 week ago
There is a newer version of this series
Documentation/gpu/vkms.rst                    | 100 ++-
drivers/gpu/drm/vkms/Kconfig                  |   1 +
drivers/gpu/drm/vkms/Makefile                 |   3 +-
drivers/gpu/drm/vkms/tests/vkms_config_test.c |  24 +
drivers/gpu/drm/vkms/vkms_config.c            |   8 +-
drivers/gpu/drm/vkms/vkms_config.h            |  26 +
drivers/gpu/drm/vkms/vkms_configfs.c          | 833 ++++++++++++++++++
drivers/gpu/drm/vkms/vkms_configfs.h          |   8 +
drivers/gpu/drm/vkms/vkms_connector.c         |  35 +
drivers/gpu/drm/vkms/vkms_connector.h         |   9 +
drivers/gpu/drm/vkms/vkms_drv.c               |  18 +-
drivers/gpu/drm/vkms/vkms_drv.h               |  20 +
12 files changed, 1072 insertions(+), 13 deletions(-)
create mode 100644 drivers/gpu/drm/vkms/vkms_configfs.c
create mode 100644 drivers/gpu/drm/vkms/vkms_configfs.h
[PATCH v6 00/16] drm/vkms: Add configfs support
Posted by José Expósito 3 months, 1 week ago
Hi everyone,

This series allow to configure one or more VKMS instances without having
to reload the driver using configfs.

The process of configuring a VKMS device is documented in "vkms.rst".

In addition, I created a CLI tool to easily control VKMS instances from the
command line: vkmsctl [1].

The series is structured in 3 blocks:

  - Patches 1..11: Basic device configuration. For simplicity, I kept the
    available options as minimal as possible.

  - Patches 12 and 13: New option to skip the default device creation and to-do
    cleanup.

  - Patches 14, 15 and 16: Allow to hot-plug and unplug connectors. This is not
    part of the minimal set of options, but I included in this series so it can
    be used as a template/example of how new configurations can be added.

Finally, the code is thoroughly tested by a collection of IGT tests [2]. The IGT
series is almost fully reviewed (1 patch is missing) and it is waiting on this
series to be merged.

I don't know what is preventing this series to be ACK by a DRM maintainer, but
please, if there is something missing or that needs to be fixed let me know.

I CCed the configfs maintainers in case they can give feedback about the design
of the configfs API or the configfs related code, just in case that is one of
the complicated points to review by DRM maintainers.

Best wishes,
José Expósito

[1] https://github.com/JoseExposito/vkmsctl
[2] https://lore.kernel.org/igt-dev/20250807074550.6543-1-jose.exposito89@gmail.com/

Changes in v6:

  - No code changes, rebased on top of drm-misc-next
  - Added Tested-by: Mark Yacoub, who merged the series into the Android tree (thanks!)
    https://lore.kernel.org/dri-devel/CAC0gqY6ZH8h5aoNh31ck3dP6c3YYtfTRjJ47Obu6xSXSVXm5mA@mail.gmail.com/
  - Added a link in the cover letter the CLI to configure VKMS: vkmsctl
  - CCed more people to try to get the series merged
  - Link to v5: https://lore.kernel.org/dri-devel/20250507135431.53907-1-jose.exposito89@gmail.com/

Changes in v5:

  - No code changes, rebased on top of drm-misc-next
  - Added Reviewed-by tags, thanks Louis!
  - Link to v4: https://lore.kernel.org/dri-devel/20250407081425.6420-1-jose.exposito89@gmail.com/

Changes in v4:

  - No code changes, rebased on top of drm-misc-next
  - Since Louis and I worked on this together, set him as the author of some of
    the patches and me as co-developed-by to reflect this joint effort.
  - Link to v3: https://lore.kernel.org/all/20250307163353.5896-1-jose.exposito89@gmail.com/

Changes in v3:

  - Applied review comments by Louis Chauvet: (thanks!!)
    - Use scoped_guard() instead of guard(mutex)(...)
    - Fix a use-after-free error in the connector hot-plug code
  - Rebased on top of drm-misc-next
  - Link to v2: https://lore.kernel.org/all/20250225175936.7223-1-jose.exposito89@gmail.com/

Changes in v2:

  - Applied review comments by Louis Chauvet:
    - Use guard(mutex)(...) instead of lock/unlock
    - Return -EBUSY when trying to modify a enabled device
    - Move the connector hot-plug related patches to the end
  - Rebased on top of drm-misc-next
  - Link to v1: https://lore.kernel.org/dri-devel/20250218170808.9507-1-jose.exposito89@gmail.com/T/

José Expósito (6):
  drm/vkms: Expose device creation and destruction
  drm/vkms: Allow to configure the default device creation
  drm/vkms: Remove completed task from the TODO list
  drm/vkms: Allow to configure connector status
  drm/vkms: Allow to update the connector status
  drm/vkms: Allow to configure connector status via configfs

Louis Chauvet (10):
  drm/vkms: Add and remove VKMS instances via configfs
  drm/vkms: Allow to configure multiple planes via configfs
  drm/vkms: Allow to configure the plane type via configfs
  drm/vkms: Allow to configure multiple CRTCs via configfs
  drm/vkms: Allow to configure CRTC writeback support via configfs
  drm/vkms: Allow to attach planes and CRTCs via configfs
  drm/vkms: Allow to configure multiple encoders via configfs
  drm/vkms: Allow to attach encoders and CRTCs via configfs
  drm/vkms: Allow to configure multiple connectors via configfs
  drm/vkms: Allow to attach connectors and encoders via configfs

 Documentation/gpu/vkms.rst                    | 100 ++-
 drivers/gpu/drm/vkms/Kconfig                  |   1 +
 drivers/gpu/drm/vkms/Makefile                 |   3 +-
 drivers/gpu/drm/vkms/tests/vkms_config_test.c |  24 +
 drivers/gpu/drm/vkms/vkms_config.c            |   8 +-
 drivers/gpu/drm/vkms/vkms_config.h            |  26 +
 drivers/gpu/drm/vkms/vkms_configfs.c          | 833 ++++++++++++++++++
 drivers/gpu/drm/vkms/vkms_configfs.h          |   8 +
 drivers/gpu/drm/vkms/vkms_connector.c         |  35 +
 drivers/gpu/drm/vkms/vkms_connector.h         |   9 +
 drivers/gpu/drm/vkms/vkms_drv.c               |  18 +-
 drivers/gpu/drm/vkms/vkms_drv.h               |  20 +
 12 files changed, 1072 insertions(+), 13 deletions(-)
 create mode 100644 drivers/gpu/drm/vkms/vkms_configfs.c
 create mode 100644 drivers/gpu/drm/vkms/vkms_configfs.h


base-commit: 6b53cf48d9339c75fa51927b0a67d8a6751066bd
-- 
2.51.0

Re: [PATCH v6 00/16] drm/vkms: Add configfs support
Posted by Harry Wentland 2 months, 2 weeks ago

On 2025-09-01 08:25, José Expósito wrote:
> Hi everyone,
> 
> This series allow to configure one or more VKMS instances without having
> to reload the driver using configfs.
> 
> The process of configuring a VKMS device is documented in "vkms.rst".
> 
> In addition, I created a CLI tool to easily control VKMS instances from the
> command line: vkmsctl [1].
> 
> The series is structured in 3 blocks:
> 
>    - Patches 1..11: Basic device configuration. For simplicity, I kept the
>      available options as minimal as possible.
> 
>    - Patches 12 and 13: New option to skip the default device creation and to-do
>      cleanup.
> 
>    - Patches 14, 15 and 16: Allow to hot-plug and unplug connectors. This is not
>      part of the minimal set of options, but I included in this series so it can
>      be used as a template/example of how new configurations can be added.
> 
> Finally, the code is thoroughly tested by a collection of IGT tests [2]. The IGT
> series is almost fully reviewed (1 patch is missing) and it is waiting on this
> series to be merged.
> 
> I don't know what is preventing this series to be ACK by a DRM maintainer, but
> please, if there is something missing or that needs to be fixed let me know.
> 
> I CCed the configfs maintainers in case they can give feedback about the design
> of the configfs API or the configfs related code, just in case that is one of
> the complicated points to review by DRM maintainers.
> 

While I'm not a configfs expert these patches look good to me. With the 
two comments about function docs fixed these patches are
Reviewed-by: Harry Wentland <harry.wentland@amd.com>

I went through them manually and also asked both GPT 4.1 and Claude 
Sonnet 4 to review them for correctness against the configfs.rst docs.

Harry

> Best wishes,
> José Expósito
> 
> [1] https://github.com/JoseExposito/vkmsctl
> [2] https://lore.kernel.org/igt-dev/20250807074550.6543-1-jose.exposito89@gmail.com/
> 
> Changes in v6:
> 
>    - No code changes, rebased on top of drm-misc-next
>    - Added Tested-by: Mark Yacoub, who merged the series into the Android tree (thanks!)
>      https://lore.kernel.org/dri-devel/CAC0gqY6ZH8h5aoNh31ck3dP6c3YYtfTRjJ47Obu6xSXSVXm5mA@mail.gmail.com/
>    - Added a link in the cover letter the CLI to configure VKMS: vkmsctl
>    - CCed more people to try to get the series merged
>    - Link to v5: https://lore.kernel.org/dri-devel/20250507135431.53907-1-jose.exposito89@gmail.com/
> 
> Changes in v5:
> 
>    - No code changes, rebased on top of drm-misc-next
>    - Added Reviewed-by tags, thanks Louis!
>    - Link to v4: https://lore.kernel.org/dri-devel/20250407081425.6420-1-jose.exposito89@gmail.com/
> 
> Changes in v4:
> 
>    - No code changes, rebased on top of drm-misc-next
>    - Since Louis and I worked on this together, set him as the author of some of
>      the patches and me as co-developed-by to reflect this joint effort.
>    - Link to v3: https://lore.kernel.org/all/20250307163353.5896-1-jose.exposito89@gmail.com/
> 
> Changes in v3:
> 
>    - Applied review comments by Louis Chauvet: (thanks!!)
>      - Use scoped_guard() instead of guard(mutex)(...)
>      - Fix a use-after-free error in the connector hot-plug code
>    - Rebased on top of drm-misc-next
>    - Link to v2: https://lore.kernel.org/all/20250225175936.7223-1-jose.exposito89@gmail.com/
> 
> Changes in v2:
> 
>    - Applied review comments by Louis Chauvet:
>      - Use guard(mutex)(...) instead of lock/unlock
>      - Return -EBUSY when trying to modify a enabled device
>      - Move the connector hot-plug related patches to the end
>    - Rebased on top of drm-misc-next
>    - Link to v1: https://lore.kernel.org/dri-devel/20250218170808.9507-1-jose.exposito89@gmail.com/T/
> 
> José Expósito (6):
>    drm/vkms: Expose device creation and destruction
>    drm/vkms: Allow to configure the default device creation
>    drm/vkms: Remove completed task from the TODO list
>    drm/vkms: Allow to configure connector status
>    drm/vkms: Allow to update the connector status
>    drm/vkms: Allow to configure connector status via configfs
> 
> Louis Chauvet (10):
>    drm/vkms: Add and remove VKMS instances via configfs
>    drm/vkms: Allow to configure multiple planes via configfs
>    drm/vkms: Allow to configure the plane type via configfs
>    drm/vkms: Allow to configure multiple CRTCs via configfs
>    drm/vkms: Allow to configure CRTC writeback support via configfs
>    drm/vkms: Allow to attach planes and CRTCs via configfs
>    drm/vkms: Allow to configure multiple encoders via configfs
>    drm/vkms: Allow to attach encoders and CRTCs via configfs
>    drm/vkms: Allow to configure multiple connectors via configfs
>    drm/vkms: Allow to attach connectors and encoders via configfs
> 
>   Documentation/gpu/vkms.rst                    | 100 ++-
>   drivers/gpu/drm/vkms/Kconfig                  |   1 +
>   drivers/gpu/drm/vkms/Makefile                 |   3 +-
>   drivers/gpu/drm/vkms/tests/vkms_config_test.c |  24 +
>   drivers/gpu/drm/vkms/vkms_config.c            |   8 +-
>   drivers/gpu/drm/vkms/vkms_config.h            |  26 +
>   drivers/gpu/drm/vkms/vkms_configfs.c          | 833 ++++++++++++++++++
>   drivers/gpu/drm/vkms/vkms_configfs.h          |   8 +
>   drivers/gpu/drm/vkms/vkms_connector.c         |  35 +
>   drivers/gpu/drm/vkms/vkms_connector.h         |   9 +
>   drivers/gpu/drm/vkms/vkms_drv.c               |  18 +-
>   drivers/gpu/drm/vkms/vkms_drv.h               |  20 +
>   12 files changed, 1072 insertions(+), 13 deletions(-)
>   create mode 100644 drivers/gpu/drm/vkms/vkms_configfs.c
>   create mode 100644 drivers/gpu/drm/vkms/vkms_configfs.h
> 
> 
> base-commit: 6b53cf48d9339c75fa51927b0a67d8a6751066bd

Re: [PATCH v6 00/16] drm/vkms: Add configfs support
Posted by Luca Ceresoli 2 months, 1 week ago
Hello José,

On Mon,  1 Sep 2025 14:25:25 +0200
José Expósito <jose.exposito89@gmail.com> wrote:

> Hi everyone,
> 
> This series allow to configure one or more VKMS instances without having
> to reload the driver using configfs.
> 
> The process of configuring a VKMS device is documented in "vkms.rst".
> 
> In addition, I created a CLI tool to easily control VKMS instances from the
> command line: vkmsctl [1].
> 
> The series is structured in 3 blocks:
> 
>   - Patches 1..11: Basic device configuration. For simplicity, I kept the
>     available options as minimal as possible.
> 
>   - Patches 12 and 13: New option to skip the default device creation and to-do
>     cleanup.
> 
>   - Patches 14, 15 and 16: Allow to hot-plug and unplug connectors. This is not
>     part of the minimal set of options, but I included in this series so it can
>     be used as a template/example of how new configurations can be added.
> 
> Finally, the code is thoroughly tested by a collection of IGT tests [2]. The IGT
> series is almost fully reviewed (1 patch is missing) and it is waiting on this
> series to be merged.
> 
> I don't know what is preventing this series to be ACK by a DRM maintainer, but
> please, if there is something missing or that needs to be fixed let me know.
> 
> I CCed the configfs maintainers in case they can give feedback about the design
> of the configfs API or the configfs related code, just in case that is one of
> the complicated points to review by DRM maintainers.
> 
> Best wishes,
> José Expósito

I reviewed the whole series and it looks really good. The step-by-step
approach of patches 1.11 especially made it very easy to follow.

With the doc fixes suggested by Harry you can add my:
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>

Luca

-- 
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com