Re: [RFC] [PATCH] DRM TTM Memory Manager patch

Dave Airlie
2007-04-30T23:10:43Z

>
> A few easy and simple comments based on looking at this for 5 minutes:
> - drop the typedefs. Yeah, they might be a drm thing, but we don't
> need them here.

Okay I think in-kernel typedefs have to go, but we have a defined DRM
interface like it or not and I'd like to be consistent on the
userspace interface and continue to use typedefs, I don't want to have
a major inconsistency like half the interface in typedefs the other
half in non-typedefs, considering the old interface is frozen...

> - the comment style for the functions is "odd" and not in kerneldoc
> form, but something else. Either use kerneldoc or nothing, don't
> invent something new please.

Most likely in doxygen as that is what Mesa uses and the intersection
of developers is higher in that area, I'll take it as a task to try
and kerneldoc the drm at some stage..

> - what's with the /proc interface? Don't add new proc code for
> non-process related things. This should all go into sysfs
> somewhere. And yes, I know /proc/dri/ is there today, but don't add
> new stuff please.

Well we should move all that stuff to sysfs, but we have all the
infrastructure for publishing this stuff under /proc/dri and adding
new files doesn't take a major amount, as much as I appreciate sysfs,
it isn't suitable for this sort of information dump, the whole one
value per file is quite useless to provide this sort of information
which is uni-directional for users to send to us for debugging without
have to install some special tool to join all the values into one
place.. and I don't think drmfs is the answer either... or maybe it
is....

> - struct drm_bo_arg can't use an int or unsigned, as it crosses the
> userspace/kernelspace boundry, use the proper types for all values
> in those types of structures (__u32, etc.)

int is defined, unsigned I'm not so sure about, the drm user space
interface is usually specified in non-system specific types so the
drm.h file is consistent across systems, so we would probably have to
use uint32_t which other people have objected to, but I'd rather use
uint32_t than unspecified types..

> - there doesn't seem to be any validity checking for the arguments
> passed into this new ioctl. Possibly that's just the way the rest
> of the dri interface is, which is scary, but with the memory stuff,
> you really should check things properly...

Okay this needs fixing, we do check most ioctls args, the main thing
passed in are handles and these are all looked up in the hash table,
it may not be so obvious, also most of the ioctls are probably going
to end up root or DRM master only, I'd like do an ioctl fuzzer at some
stage, I'd suspect a lot more then the dri would be oopsable with
permissions...

Thanks,
Dave.