Re: [PATCH 09/14] cxl/mem: Add a "RAW" send command

From: Konrad Rzeszutek Wilk
Date: Mon Feb 01 2021 - 13:27:48 EST


On Fri, Jan 29, 2021 at 04:24:33PM -0800, Ben Widawsky wrote:
> The CXL memory device send interface will have a number of supported
> commands. The raw command is not such a command. Raw commands allow
> userspace to send a specified opcode to the underlying hardware and
> bypass all driver checks on the command. This is useful for a couple of
> usecases, mainly:
> 1. Undocumented vendor specific hardware commands
> 2. Prototyping new hardware commands not yet supported by the driver

This sounds like a recipe for ..

In case you really really want this may I recommend you do two things:

- Wrap this whole thing with #ifdef
CONFIG_CXL_DEBUG_THIS_WILL_DESTROY_YOUR_LIFE

(or something equivalant to make it clear this should never be
enabled in production kernels).

- Add a nice big fat printk in dmesg telling the user that they
are creating a unstable parallel universe that will lead to their
blood pressure going sky-high, or perhaps something more professional
sounding.

- Rethink this. Do you really really want to encourage vendors
to use this raw API instead of them using the proper APIs?

>
> While this all sounds very powerful it comes with a couple of caveats:
> 1. Bug reports using raw commands will not get the same level of
> attention as bug reports using supported commands (via taint).
> 2. Supported commands will be rejected by the RAW command.
>
> With this comes new debugfs knob to allow full access to your toes with
> your weapon of choice.

Problem is that debugfs is no longer "debug" but is enabled in
production kernel.