[RFC PATCH v2 1/3] drivers/accel: define kconfig and register a new major

Jason Gunthorpe jgg at nvidia.com
Mon Nov 7 12:56:16 UTC 2022


On Thu, Nov 03, 2022 at 10:39:36PM +0200, Oded Gabbay wrote:
> On Thu, Nov 3, 2022 at 3:31 PM Oded Gabbay <ogabbay at kernel.org> wrote:
> >
> > On Thu, Nov 3, 2022 at 2:31 AM Greg Kroah-Hartman
> > <gregkh at linuxfoundation.org> wrote:
> > >
> > > On Wed, Nov 02, 2022 at 10:34:03PM +0200, Oded Gabbay wrote:
> > > > --- /dev/null
> > > > +++ b/drivers/accel/Kconfig
> > > > @@ -0,0 +1,24 @@
> > > > +# SPDX-License-Identifier: GPL-2.0-only
> > > > +#
> > > > +# Compute Acceleration device configuration
> > > > +#
> > > > +# This framework provides support for compute acceleration devices, such
> > > > +# as, but not limited to, Machine-Learning and Deep-Learning acceleration
> > > > +# devices
> > > > +#
> > > > +menuconfig ACCEL
> > > > +     tristate "Compute Acceleration Framework"
> > > > +     depends on DRM
> > > > +     help
> > > > +       Framework for device drivers of compute acceleration devices, such
> > > > +       as, but not limited to, Machine-Learning and Deep-Learning
> > > > +       acceleration devices.
> > > > +       If you say Y here, you need to select the module that's right for
> > > > +       your acceleration device from the list below.
> > > > +       This framework is integrated with the DRM subsystem as compute
> > > > +       accelerators and GPUs share a lot in common and can use almost the
> > > > +       same infrastructure code.
> > > > +       Having said that, acceleration devices will have a different
> > > > +       major number than GPUs, and will be exposed to user-space using
> > > > +       different device files, called accel/accel* (in /dev, sysfs
> > > > +       and debugfs)
> > >
> > > Module name if "M" is chosen?
> > Will add
> So, unfortunately, the path of doing accel as a kernel module won't
> work cleanly (Thanks stanislaw for pointing this out to me).
> The reason is the circular dependency between drm and accel. drm calls
> accel exported symbols during init and when devices are registering
> (all the minor handling), and accel calls drm exported symbols because
> I don't want to duplicate the entire drm core code.

I really don't think this is the right way to integrate with
DRM. Accel should be a layer over top of DRM, not have these wakky
co-dependencies.

The fact you are running into stuff like this already smells really
bad.

Jason


More information about the dri-devel mailing list