On Sun, 2009-11-08 at 23:40 +0100, Stephane Marchesin wrote:
> On Sun, Nov 8, 2009 at 23:33, Eric Anholt <e...@anholt.net> wrote:
> > On Sun, 2009-11-08 at 21:19 +0100, Stephane Marchesin wrote:
> >> On Sun, Nov 8, 2009 at 20:02, Eric Anholt <e...@anholt.net> wrote:
> >> > On Sun, 2009-11-08 at 19:47 +0100, Stephane Marchesin wrote:
> >> >> On Sun, Nov 8, 2009 at 19:18, Eric Anholt <e...@anholt.net> wrote:
> >> >> > On Sun, 2009-11-08 at 13:20 +0100, Stephane Marchesin wrote:
> >> >> >> 2009/11/6 Kristian Høgsberg <k...@bitplanet.net>:
> >> >> >> > Hi,
> >> >> >> >
> >> >> >> > This has come up a few time and it's something I think makes a lot 
> >> >> >> > of
> >> >> >> > sense.  Since all driver development (afaik) now happens in linux
> >> >> >> > kernel tree, it makes sense to drop the driver bits from the 
> >> >> >> > drm.git
> >> >> >> > repo.  I've put up a repo under
> >> >> >>
> >> >> >> Actually, I don't think a separate libdrm makes much sense. We don't
> >> >> >> want to add yet another outside component and ask ourselves questions
> >> >> >> like "how do I maintain compatibility" (which, incidentally, have
> >> >> >> already been raised).
> >> >> >>
> >> >> >> Given this, IMO libdrm live somewhere alongside the kernel.
> >> >> >> Furthermore when pulling outside stuff we driver devs can do a
> >> >> >> kernel+DRM+libdrm pull at the same time which is a win.
> >> >> >>
> >> >> >> And also users don't have to wonder where/how to pick the right
> >> >> >> libdrm. You get the right one with your kernel.
> >> >> >
> >> >> > This is a bad idea.  libdrm with the kernel means that users and
> >> >> > distributions can't trivially update libdrm.  So all of the users of
> >> >> > libdrm end up being an ifdeffed nightmare of both compile-time and
> >> >> > runtime detection.
> >> >>
> >> >> Why do you need to update libdrm separately from the kernel? Is there
> >> >> so much that's in libdrm that does not also require a new drm? Newer
> >> >> libdrm functionality usually also requires a new drm...
> >> >>
> >> >> > Our code used to be that way before we fixed libdrm
> >> >> > to be "only use kernel code that's going upstream, and never regress
> >> >> > it".  Things have improved in the last few years for upstream drivers,
> >> >> > and I don't want to regress them with moving libdrm to the kernel.
> >> >>
> >> >> Again I don't see what kind of changes you have in mind. You just say
> >> >> "regress".
> >> >
> >> > I need to enable a new feature in the driver by relying on a new kernel
> >> > interface.  This happens at least once per kernel version (every ~3
> >> > months), and we're currently retaining backwards compatibility to
> >> > kernels a year old.
> >> >
> >> > Today, this ends up easy.  In my driver components (Mesa and
> >> > xf86-video-intel) I pkg-config version assert on on the new version of
> >> > libdrm with the new headers.  I do a runtime detection of the new
> >> > feature with a GET_PARAM ioctl.  Then I use the new libdrm or ioctl
> >> > interface as appropriate.  An example of this would be
> >> > kernel_exec_fencing in 2.6.29, which impacts many files in the driver.
> >> >
> >> > If userland doesn't get to assert new libdrm/interface header presence,
> >> > then in addition to the runtime detection, I have to ifdef all use of
> >> > the new interfaces.  Now, if we screw up the ifdefs (which used to
> >> > happen regularly), people's builds don't work because they have old
> >> > kernels.
> >> >
> >> > People obviously thought that situation sucked in the past, as we saw in
> >> > both the intel and radeon drivers where pieces of the drm headers were
> >> > just spammed right into the files using them, under ifdefs.  This did
> >> > result in actual divergence from the kernel definitions and real bugs,
> >> > unlike today's situation where diff can confirm for me that we're using
> >> > exactly the same interfaces between userland and kernel.
> >> >
> >>
> >> Okay, well in any case nothing in what you mentioned prevents the
> >> libdrm from living with the kernel. We could keep the compat stuff
> >> here, and we still have the advantages I mentioned.
> >>
> >> So is there any other reason for not putting it with the kernel?
> >
> > So you're saying that people building their distribution on 2.6.29 would
> > have to pull down linux-2.6 from master to build and install libdrm?
> >
> 
> People with old kernels can pick an old libdrm from some place else in
> the meantime. People with 2.6.32 don't have to grab anything more as
> libdrm came with their kernel already.
> 
> If the only reason not to merge the libdrm into the kernel tree is
> because you have a "difficult" time finding a libdrm for old kernels
> (and only during the transition), well I'd say that means there's no
> real problem here.

There are any number of changes that may occur in libdrm that do not
impact the KBI and users should be able to get those features/bug fixes
without needing a new kernel.

robert.

> Stephane
> 
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
> trial. Simplify your report design, integration and deployment - and focus on 
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> --
> _______________________________________________
> Dri-devel mailing list
> Dri-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/dri-devel
-- 
Robert Noland <rnol...@2hip.net>
2Hip Networks


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to