From: Swati Dhingra <swati.dhin...@intel.com> Currently, for the purpose of providing output debug/loggging/crc and various other kinds of data from DRM layer to userspace, we don't have a standard filesystem, which would suffice for all the usecases. The filesystems used currently such as debugfs/sysfs have their own constraints and are intended to output a particular type of data. For instance, sysfs is suitable for exporting only small data in form of attributes, thus not suitable to export large data such as error states/logs/crc etc. Likewise for debugfs, which is not available in production kernels, and may not be best place to hold certain kinds of data. As a result, we currently are creating certain files in these filesystems, which are not particularly suited there (For, i915, guc_log is a case in point, which is currently created in debugfs, but not particularly suited there).
Due to these constraints, there is a need for a new pseudo filesytem, customizable to DRM specific requirements and catering to the needs to DRM subsystem components. This will provide a unified location to hold various kinds of data from Linux DRM subsystems, for the files which can't really fit anywhere else into the existing filesystems. In this patch series, we have introduced a pseudo filesystem named as 'drmfs' for now. The filesystem is introduced in the first patch, and the subsequent patches make use of the filesystem interfaces, in drm driver, and making them available for use by the drm subsystem components, one of which is i915. We've moved the location of i915 GuC logs from debugfs to drmfs in the third patch. Subsequently, more such files such as pipe_crc, error states, memory stats, etc. can be move to this filesystem, if the idea introduced here is acceptable per se. The filesystem introduced is being used to house the data generated by i915 driver in this patch series, but will hopefully be generic enough to provide scope for usage by any other drm subsystem component. The patch series is being floated as RFC to gather feedback on the idea and infrastructure proposed here and it's suitability to address the specific problem statement/use case. v2: fix the bat failures caused due to missing config check Swati Dhingra (3): fs: Introduce drmfs pseudo filesystem interfaces drm: Register drmfs filesystem from drm init drm/i915: Creating guc log file in drmfs instead of debugfs drivers/gpu/drm/drm_drv.c | 23 ++ drivers/gpu/drm/i915/i915_guc_submission.c | 31 +- fs/Kconfig | 9 + fs/Makefile | 1 + fs/drmfs/Makefile | 4 + fs/drmfs/inode.c | 561 +++++++++++++++++++++++++++++ include/drm/drm_drv.h | 3 + include/linux/drmfs.h | 56 +++ include/uapi/linux/magic.h | 3 + 9 files changed, 670 insertions(+), 21 deletions(-) create mode 100644 fs/drmfs/Makefile create mode 100644 fs/drmfs/inode.c create mode 100644 include/linux/drmfs.h -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx