diff mbox series

[2/2] MAINTAINERS: Make cxl obsolete

Message ID 20240409031027.41587-2-ajd@linux.ibm.com (mailing list archive)
State Changes Requested
Headers show
Series [1/2] MAINTAINERS: Make cxlflash obsolete | expand

Checks

Context Check Description
snowpatch_ozlabs/github-powerpc_sparse success Successfully ran 4 jobs.
snowpatch_ozlabs/github-powerpc_clang success Successfully ran 6 jobs.
snowpatch_ozlabs/github-powerpc_kernel_qemu success Successfully ran 23 jobs.

Commit Message

Andrew Donnellan April 9, 2024, 3:10 a.m. UTC
The cxl driver is no longer actively maintained and we intend to remove it
in a future kernel release. Change its status to obsolete, and update the
sysfs ABI documentation accordingly.

Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>
---
 Documentation/ABI/{testing => obsolete}/sysfs-class-cxl | 3 +++
 MAINTAINERS                                             | 4 ++--
 2 files changed, 5 insertions(+), 2 deletions(-)
 rename Documentation/ABI/{testing => obsolete}/sysfs-class-cxl (99%)

Comments

Michael Ellerman April 9, 2024, 4:37 a.m. UTC | #1
Andrew Donnellan <ajd@linux.ibm.com> writes:
> The cxl driver is no longer actively maintained and we intend to remove it
> in a future kernel release. Change its status to obsolete, and update the
> sysfs ABI documentation accordingly.
>
> Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>
> ---
>  Documentation/ABI/{testing => obsolete}/sysfs-class-cxl | 3 +++
>  MAINTAINERS                                             | 4 ++--
>  2 files changed, 5 insertions(+), 2 deletions(-)
>  rename Documentation/ABI/{testing => obsolete}/sysfs-class-cxl (99%)

This is a good start, but I suspect if there are any actual users they
are not going to be monitoring the status of cxl in the MAINTAINERS file :)

I think we should probably modify Kconfig so that anyone who's using cxl
on purpose has some chance to notice before we remove it.

Something like the patch below. Anyone who has an existing config and
runs oldconfig will get a prompt, eg:

  Deprecated support for IBM Coherent Accelerators (CXL) (DEPRECATED_CXL) [N/m/y/?] (NEW)

Folks who just use defconfig etc. won't notice any change which is a
pity. We could also change the default to n, but that risks breaking
someone's machine. Maybe we do that in a another releases time.

cheers

diff --git a/drivers/misc/cxl/Kconfig b/drivers/misc/cxl/Kconfig
index 5efc4151bf58..e3fd3fcaf62a 100644
--- a/drivers/misc/cxl/Kconfig
+++ b/drivers/misc/cxl/Kconfig
@@ -9,11 +9,18 @@ config CXL_BASE
 	select PPC_64S_HASH_MMU
 
 config CXL
-	tristate "Support for IBM Coherent Accelerators (CXL)"
+	def_bool y
+	depends on DEPRECATED_CXL
+
+config DEPRECATED_CXL
+	tristate "Deprecated support for IBM Coherent Accelerators (CXL)"
 	depends on PPC_POWERNV && PCI_MSI && EEH
 	select CXL_BASE
 	default m
 	help
+	  The cxl driver is no longer actively maintained and we intend to
+	  remove it in a future kernel release.
+
 	  Select this option to enable driver support for IBM Coherent
 	  Accelerators (CXL).  CXL is otherwise known as Coherent Accelerator
 	  Processor Interface (CAPI).  CAPI allows accelerators in FPGAs to be
Christophe Leroy April 9, 2024, 5:53 a.m. UTC | #2
Le 09/04/2024 à 06:37, Michael Ellerman a écrit :
> Andrew Donnellan <ajd@linux.ibm.com> writes:
>> The cxl driver is no longer actively maintained and we intend to remove it
>> in a future kernel release. Change its status to obsolete, and update the
>> sysfs ABI documentation accordingly.
>>
>> Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>
>> ---
>>   Documentation/ABI/{testing => obsolete}/sysfs-class-cxl | 3 +++
>>   MAINTAINERS                                             | 4 ++--
>>   2 files changed, 5 insertions(+), 2 deletions(-)
>>   rename Documentation/ABI/{testing => obsolete}/sysfs-class-cxl (99%)
> 
> This is a good start, but I suspect if there are any actual users they
> are not going to be monitoring the status of cxl in the MAINTAINERS file :)
> 
> I think we should probably modify Kconfig so that anyone who's using cxl
> on purpose has some chance to notice before we remove it.
> 
> Something like the patch below. Anyone who has an existing config and
> runs oldconfig will get a prompt, eg:
> 
>    Deprecated support for IBM Coherent Accelerators (CXL) (DEPRECATED_CXL) [N/m/y/?] (NEW)
> 
> Folks who just use defconfig etc. won't notice any change which is a
> pity. We could also change the default to n, but that risks breaking
> someone's machine. Maybe we do that in a another releases time.

When I boot one of my boards I see:

[    0.641090] mcr3000-hwmon 10000800.hwmon: hwmon_device_register() is 
deprecated. Please convert the driver to use 
hwmon_device_register_with_info().

Could we do something similar, write a message at boottime when the CXL 
driver gets probed ?

Christophe
Michael Ellerman April 10, 2024, 11:38 a.m. UTC | #3
Christophe Leroy <christophe.leroy@csgroup.eu> writes:
> Le 09/04/2024 à 06:37, Michael Ellerman a écrit :
>> Andrew Donnellan <ajd@linux.ibm.com> writes:
>>> The cxl driver is no longer actively maintained and we intend to remove it
>>> in a future kernel release. Change its status to obsolete, and update the
>>> sysfs ABI documentation accordingly.
>>>
>>> Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>
>>> ---
>>>   Documentation/ABI/{testing => obsolete}/sysfs-class-cxl | 3 +++
>>>   MAINTAINERS                                             | 4 ++--
>>>   2 files changed, 5 insertions(+), 2 deletions(-)
>>>   rename Documentation/ABI/{testing => obsolete}/sysfs-class-cxl (99%)
>> 
>> This is a good start, but I suspect if there are any actual users they
>> are not going to be monitoring the status of cxl in the MAINTAINERS file :)
>> 
>> I think we should probably modify Kconfig so that anyone who's using cxl
>> on purpose has some chance to notice before we remove it.
>> 
>> Something like the patch below. Anyone who has an existing config and
>> runs oldconfig will get a prompt, eg:
>> 
>>    Deprecated support for IBM Coherent Accelerators (CXL) (DEPRECATED_CXL) [N/m/y/?] (NEW)
>> 
>> Folks who just use defconfig etc. won't notice any change which is a
>> pity. We could also change the default to n, but that risks breaking
>> someone's machine. Maybe we do that in a another releases time.
>
> When I boot one of my boards I see:
>
> [    0.641090] mcr3000-hwmon 10000800.hwmon: hwmon_device_register() is 
> deprecated. Please convert the driver to use 
> hwmon_device_register_with_info().
>
> Could we do something similar, write a message at boottime when the CXL 
> driver gets probed ?

Yeah, I think so.

There's still the problem that people tend not to look at dmesg until
something breaks, but at least we can try and get their attention.

cheers
Finn Thain April 10, 2024, 11:43 p.m. UTC | #4
On Wed, 10 Apr 2024, Michael Ellerman wrote:

> >
> > Could we do something similar, write a message at boottime when the 
> > CXL driver gets probed ?
> 
> Yeah, I think so.
> 
> There's still the problem that people tend not to look at dmesg until 
> something breaks, but at least we can try and get their attention.
> 

People would get in the habit to look for that, if all maintainers adopted 
a convention such that a boot-time message would list every newly-orphaned 
driver in each release. Maybe the maintainer of the MAINTAINERS file could 
check that every newly orphaned driver got announced.
Andrew Donnellan May 3, 2024, 3:15 a.m. UTC | #5
On Tue, 2024-04-09 at 14:37 +1000, Michael Ellerman wrote:
> 
> Something like the patch below. Anyone who has an existing config and
> runs oldconfig will get a prompt, eg:
> 
>   Deprecated support for IBM Coherent Accelerators (CXL)
> (DEPRECATED_CXL) [N/m/y/?] (NEW)
> 
> Folks who just use defconfig etc. won't notice any change which is a
> pity. We could also change the default to n, but that risks breaking
> someone's machine. Maybe we do that in a another releases time.
> 
> cheers
> 
> diff --git a/drivers/misc/cxl/Kconfig b/drivers/misc/cxl/Kconfig
> index 5efc4151bf58..e3fd3fcaf62a 100644
> --- a/drivers/misc/cxl/Kconfig
> +++ b/drivers/misc/cxl/Kconfig
> @@ -9,11 +9,18 @@ config CXL_BASE
>  	select PPC_64S_HASH_MMU
>  
>  config CXL
> -	tristate "Support for IBM Coherent Accelerators (CXL)"
> +	def_bool y
> +	depends on DEPRECATED_CXL
> +
> +config DEPRECATED_CXL
> +	tristate "Deprecated support for IBM Coherent Accelerators
> (CXL)"

This doesn't seem quite right to me, I don't think we can just redefine
CONFIG_CXL as a bool, but I'll do something like this. Probably won't
bother for CXLFLASH since they'll see it for CXL anyway, but I might
add a warning message on probe to both drivers.

>  	depends on PPC_POWERNV && PCI_MSI && EEH
>  	select CXL_BASE
>  	default m
>  	help
> +	  The cxl driver is no longer actively maintained and we
> intend to
> +	  remove it in a future kernel release.
> +
>  	  Select this option to enable driver support for IBM
> Coherent
>  	  Accelerators (CXL).  CXL is otherwise known as Coherent
> Accelerator
>  	  Processor Interface (CAPI).  CAPI allows accelerators in
> FPGAs to be
Andrew Donnellan May 3, 2024, 7:55 a.m. UTC | #6
On Fri, 2024-05-03 at 13:15 +1000, Andrew Donnellan wrote:
> This doesn't seem quite right to me, I don't think we can just
> redefine
> CONFIG_CXL as a bool, but I'll do something like this. Probably won't
> bother for CXLFLASH since they'll see it for CXL anyway, but I might
> add a warning message on probe to both drivers.

The more I look at how to do this, the more issues I see, though
perhaps because I personally use olddefconfig more than I use
oldconfig.

Without changing the default to n, running olddefconfig is liable to
switch CXL back on in configs where the user has disabled it.

Conversely, if the user has set CXL=y rather than CXL=m, I'm not sure
if there's any way to make it such that olddefconfig doesn't reset one
symbol or the other to the default m.

Honestly, I'm very tempted to be a little more aggressive and a) not
bother with trying to play games with symbols, b) change the default to
n in this release, c) add a warning printed on probe, and see whether
anyone complains.

We could also print a message during the build itself, though that kind
of noise is liable to break things in other ways?

It would be kind of nice if kbuild had some way to mark a symbol for
deprecation which could print a warning during configuration.
Michael Ellerman May 3, 2024, 10:31 a.m. UTC | #7
Andrew Donnellan <ajd@linux.ibm.com> writes:
> On Fri, 2024-05-03 at 13:15 +1000, Andrew Donnellan wrote:
>> This doesn't seem quite right to me, I don't think we can just
>> redefine
>> CONFIG_CXL as a bool, but I'll do something like this. Probably won't
>> bother for CXLFLASH since they'll see it for CXL anyway, but I might
>> add a warning message on probe to both drivers.
>
> The more I look at how to do this, the more issues I see, though
> perhaps because I personally use olddefconfig more than I use
> oldconfig.
>
> Without changing the default to n, running olddefconfig is liable to
> switch CXL back on in configs where the user has disabled it.

Yes that's true.

> Conversely, if the user has set CXL=y rather than CXL=m, I'm not sure
> if there's any way to make it such that olddefconfig doesn't reset one
> symbol or the other to the default m.
>
> Honestly, I'm very tempted to be a little more aggressive and a) not
> bother with trying to play games with symbols, b) change the default to
> n in this release, c) add a warning printed on probe, and see whether
> anyone complains.

You mean just changing CXL to default n?

The problem is that has no effect on folks with existing configs. Those
of us who build from defconfigs will have it turned off, but any actual
users with existing configs will just still have it enabled.

I'm not really convinced printing warnings does much. I guess an actual
WARN_ON might work, but only if someone is watching the console.

> We could also print a message during the build itself, though that kind
> of noise is liable to break things in other ways?

More likely to break some CI somewhere, and a good chance it isn't even
seen by a human unless they're paying close attention to the build
output.

> It would be kind of nice if kbuild had some way to mark a symbol for
> deprecation which could print a warning during configuration.

Yeah, though it suffers from the same problem that there's a good chance
no one notices.

The below I think works. It does print a warning about CXL changing from
tristate to bool, but that seems harmless.

In all cases olddefconfig will turn CXL off, whether it was on, off
or =m beforehand. A fresh defconfig has it off. The only way to turn it
on is explicitly.

cheers

diff --git a/drivers/misc/cxl/Kconfig b/drivers/misc/cxl/Kconfig
index 5efc4151bf58..e62c16cc7292 100644
--- a/drivers/misc/cxl/Kconfig
+++ b/drivers/misc/cxl/Kconfig
@@ -9,11 +9,18 @@ config CXL_BASE
        select PPC_64S_HASH_MMU

 config CXL
-       tristate "Support for IBM Coherent Accelerators (CXL)"
+       def_bool y
+       depends on DEPRECATED_CXL
+
+config DEPRECATED_CXL
+       tristate "Deprecated support for IBM Coherent Accelerators (CXL)"
        depends on PPC_POWERNV && PCI_MSI && EEH
        select CXL_BASE
-       default m
+       default n
        help
+         The cxl driver is no longer actively maintained and we intend to
+         remove it in a future kernel release.
+
          Select this option to enable driver support for IBM Coherent
          Accelerators (CXL).  CXL is otherwise known as Coherent Accelerator
          Processor Interface (CAPI).  CAPI allows accelerators in FPGAs to be
diff mbox series

Patch

diff --git a/Documentation/ABI/testing/sysfs-class-cxl b/Documentation/ABI/obsolete/sysfs-class-cxl
similarity index 99%
rename from Documentation/ABI/testing/sysfs-class-cxl
rename to Documentation/ABI/obsolete/sysfs-class-cxl
index cfc48a87706b..8cba1b626985 100644
--- a/Documentation/ABI/testing/sysfs-class-cxl
+++ b/Documentation/ABI/obsolete/sysfs-class-cxl
@@ -1,3 +1,6 @@ 
+The cxl driver is no longer maintained, and will be removed from the kernel in
+the near future.
+
 Please note that attributes that are shared between devices are stored in
 the directory pointed to by the symlink device/.
 For example, the real path of the attribute /sys/class/cxl/afu0.0s/irqs_max is
diff --git a/MAINTAINERS b/MAINTAINERS
index 34f605498873..5eca2c23fb49 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5770,8 +5770,8 @@  CXL (IBM Coherent Accelerator Processor Interface CAPI) DRIVER
 M:	Frederic Barrat <fbarrat@linux.ibm.com>
 M:	Andrew Donnellan <ajd@linux.ibm.com>
 L:	linuxppc-dev@lists.ozlabs.org
-S:	Supported
-F:	Documentation/ABI/testing/sysfs-class-cxl
+S:	Obsolete
+F:	Documentation/ABI/obsolete/sysfs-class-cxl
 F:	Documentation/arch/powerpc/cxl.rst
 F:	arch/powerpc/platforms/powernv/pci-cxl.c
 F:	drivers/misc/cxl/