[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAFCwf10K-dTu455QfOK8i6thismY-FUN2Rws830EGiqOcGWFgA@mail.gmail.com>
Date: Mon, 7 Nov 2022 15:01:08 +0200
From: Oded Gabbay <ogabbay@...nel.org>
To: Jason Gunthorpe <jgg@...dia.com>
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
David Airlie <airlied@...il.com>,
Daniel Vetter <daniel@...ll.ch>, Arnd Bergmann <arnd@...db.de>,
linux-kernel@...r.kernel.org, dri-devel@...ts.freedesktop.org,
John Hubbard <jhubbard@...dia.com>,
Alex Deucher <alexander.deucher@....com>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>,
Thomas Zimmermann <tzimmermann@...e.de>,
Yuji Ishikawa <yuji2.ishikawa@...hiba.co.jp>,
Jiho Chu <jiho.chu@...sung.com>,
Daniel Stone <daniel@...ishbar.org>,
Tvrtko Ursulin <tvrtko.ursulin@...ux.intel.com>,
Jeffrey Hugo <quic_jhugo@...cinc.com>,
Christoph Hellwig <hch@...radead.org>,
Kevin Hilman <khilman@...libre.com>,
Jagan Teki <jagan@...rulasolutions.com>,
Jacek Lawrynowicz <jacek.lawrynowicz@...ux.intel.com>,
Maciej Kwapulinski <maciej.kwapulinski@...ux.intel.com>,
stanislaw.gruszka@...el.com
Subject: Re: [RFC PATCH v2 1/3] drivers/accel: define kconfig and register a
new major
On Mon, Nov 7, 2022 at 2:56 PM Jason Gunthorpe <jgg@...dia.com> wrote:
>
> 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@...nel.org> wrote:
> > >
> > > On Thu, Nov 3, 2022 at 2:31 AM Greg Kroah-Hartman
> > > <gregkh@...uxfoundation.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
I don't agree with your statement that it should be "a layer over top of DRM".
Anything on top of DRM is a device driver.
Accel is not a device driver, it is a new type of drm minor / drm driver.
Please look at v3 of the patch-set. There I abandoned the idea of
having accel as a separate module and instead it is part of drm.ko, as
it should be because it is just a new drm minor.
The only alternative imo to that is to abandon the idea of reusing
drm, and just make an independant accel core code.
Oded
Powered by blists - more mailing lists