After trying out kernel v5.14-rc5 on my system, I no longer get any display output. Checking dmesg, I found it's because my DRM driver (nouveau) is failing at ttm_device_init. That is failing because of a behavior change in ttm_global_init with respect to debugfs. debugfs is disabled on my system, which causes ttm_global_init to fail. The following patch fixes the issue by ignoring the debugfs failure, which is expected, rather than allowing it to cause ttm_global_init to fail.
Dan Moulding (1): drm: ttm: Don't bail from ttm_global_init if debugfs_create_dir fails
drivers/gpu/drm/ttm/ttm_device.c | 2 -- 1 file changed, 2 deletions(-)
In 69de4421bb4c ("drm/ttm: Initialize debugfs from ttm_global_init()"), ttm_global_init was changed so that if creation of the debugfs global root directory fails, ttm_global_init will bail out early and return an error, leading to initialization failure of DRM drivers. However, not every system will be using debugfs. On such a system, debugfs directory creation can be expected to fail, but DRM drivers must still be usable. This changes it so that if creation of TTM's debugfs root directory fails, then no biggie: keep calm and carry on.
Fixes: 69de4421bb4c ("drm/ttm: Initialize debugfs from ttm_global_init()") Signed-off-by: Dan Moulding dmoulding@me.com --- drivers/gpu/drm/ttm/ttm_device.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/ttm/ttm_device.c b/drivers/gpu/drm/ttm/ttm_device.c index 74e3b460132b..2df59b3c2ea1 100644 --- a/drivers/gpu/drm/ttm/ttm_device.c +++ b/drivers/gpu/drm/ttm/ttm_device.c @@ -78,9 +78,7 @@ static int ttm_global_init(void)
ttm_debugfs_root = debugfs_create_dir("ttm", NULL); if (IS_ERR(ttm_debugfs_root)) { - ret = PTR_ERR(ttm_debugfs_root); ttm_debugfs_root = NULL; - goto out; }
/* Limit the number of pages in the pool to about 50% of the total
Tested-by: Huacai Chen chenhuacai@loongson.cn
On Wed, Aug 11, 2021 at 6:42 AM Dan Moulding dmoulding@me.com wrote:
In 69de4421bb4c ("drm/ttm: Initialize debugfs from ttm_global_init()"), ttm_global_init was changed so that if creation of the debugfs global root directory fails, ttm_global_init will bail out early and return an error, leading to initialization failure of DRM drivers. However, not every system will be using debugfs. On such a system, debugfs directory creation can be expected to fail, but DRM drivers must still be usable. This changes it so that if creation of TTM's debugfs root directory fails, then no biggie: keep calm and carry on.
Fixes: 69de4421bb4c ("drm/ttm: Initialize debugfs from ttm_global_init()") Signed-off-by: Dan Moulding dmoulding@me.com
drivers/gpu/drm/ttm/ttm_device.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/ttm/ttm_device.c b/drivers/gpu/drm/ttm/ttm_device.c index 74e3b460132b..2df59b3c2ea1 100644 --- a/drivers/gpu/drm/ttm/ttm_device.c +++ b/drivers/gpu/drm/ttm/ttm_device.c @@ -78,9 +78,7 @@ static int ttm_global_init(void)
ttm_debugfs_root = debugfs_create_dir("ttm", NULL); if (IS_ERR(ttm_debugfs_root)) {
ret = PTR_ERR(ttm_debugfs_root); ttm_debugfs_root = NULL;
goto out; } /* Limit the number of pages in the pool to about 50% of the total
-- 2.31.1
On Wed, Aug 11, 2021 at 03:59:06AM +0800, Dan Moulding wrote:
In 69de4421bb4c ("drm/ttm: Initialize debugfs from ttm_global_init()"), ttm_global_init was changed so that if creation of the debugfs global root directory fails, ttm_global_init will bail out early and return an error, leading to initialization failure of DRM drivers. However, not every system will be using debugfs. On such a system, debugfs directory creation can be expected to fail, but DRM drivers must still be usable. This changes it so that if creation of TTM's debugfs root directory fails, then no biggie: keep calm and carry on.
Fixes: 69de4421bb4c ("drm/ttm: Initialize debugfs from ttm_global_init()") Signed-off-by: Dan Moulding dmoulding@me.com
It looks ok for me.
Reviewed-by: Huang Rui ray.huang@amd.com
Thanks, Ray
drivers/gpu/drm/ttm/ttm_device.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/ttm/ttm_device.c b/drivers/gpu/drm/ttm/ttm_device.c index 74e3b460132b..2df59b3c2ea1 100644 --- a/drivers/gpu/drm/ttm/ttm_device.c +++ b/drivers/gpu/drm/ttm/ttm_device.c @@ -78,9 +78,7 @@ static int ttm_global_init(void)
ttm_debugfs_root = debugfs_create_dir("ttm", NULL); if (IS_ERR(ttm_debugfs_root)) {
ret = PTR_ERR(ttm_debugfs_root);
ttm_debugfs_root = NULL;
goto out;
}
/* Limit the number of pages in the pool to about 50% of the total
-- 2.31.1
Am 10.08.21 um 21:59 schrieb Dan Moulding:
In 69de4421bb4c ("drm/ttm: Initialize debugfs from ttm_global_init()"), ttm_global_init was changed so that if creation of the debugfs global root directory fails, ttm_global_init will bail out early and return an error, leading to initialization failure of DRM drivers. However, not every system will be using debugfs. On such a system, debugfs directory creation can be expected to fail, but DRM drivers must still be usable. This changes it so that if creation of TTM's debugfs root directory fails, then no biggie: keep calm and carry on.
Fixes: 69de4421bb4c ("drm/ttm: Initialize debugfs from ttm_global_init()") Signed-off-by: Dan Moulding dmoulding@me.com
Good point, patch is Reviewed-by: Christian König christian.koenig@amd.com.
Going to pick that up later today.
Regards, Christian.
drivers/gpu/drm/ttm/ttm_device.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/ttm/ttm_device.c b/drivers/gpu/drm/ttm/ttm_device.c index 74e3b460132b..2df59b3c2ea1 100644 --- a/drivers/gpu/drm/ttm/ttm_device.c +++ b/drivers/gpu/drm/ttm/ttm_device.c @@ -78,9 +78,7 @@ static int ttm_global_init(void)
ttm_debugfs_root = debugfs_create_dir("ttm", NULL); if (IS_ERR(ttm_debugfs_root)) {
ret = PTR_ERR(ttm_debugfs_root);
ttm_debugfs_root = NULL;
goto out;
}
/* Limit the number of pages in the pool to about 50% of the total
Makes sense
Reviewed-by: Jason Ekstrand jason@jlekstrand.net
On Mon, Aug 16, 2021 at 2:40 AM Christian König christian.koenig@amd.com wrote:
Am 10.08.21 um 21:59 schrieb Dan Moulding:
In 69de4421bb4c ("drm/ttm: Initialize debugfs from ttm_global_init()"), ttm_global_init was changed so that if creation of the debugfs global root directory fails, ttm_global_init will bail out early and return an error, leading to initialization failure of DRM drivers. However, not every system will be using debugfs. On such a system, debugfs directory creation can be expected to fail, but DRM drivers must still be usable. This changes it so that if creation of TTM's debugfs root directory fails, then no biggie: keep calm and carry on.
Fixes: 69de4421bb4c ("drm/ttm: Initialize debugfs from ttm_global_init()") Signed-off-by: Dan Moulding dmoulding@me.com
Good point, patch is Reviewed-by: Christian König christian.koenig@amd.com.
Going to pick that up later today.
Regards, Christian.
drivers/gpu/drm/ttm/ttm_device.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/ttm/ttm_device.c b/drivers/gpu/drm/ttm/ttm_device.c index 74e3b460132b..2df59b3c2ea1 100644 --- a/drivers/gpu/drm/ttm/ttm_device.c +++ b/drivers/gpu/drm/ttm/ttm_device.c @@ -78,9 +78,7 @@ static int ttm_global_init(void)
ttm_debugfs_root = debugfs_create_dir("ttm", NULL); if (IS_ERR(ttm_debugfs_root)) {
ret = PTR_ERR(ttm_debugfs_root); ttm_debugfs_root = NULL;
goto out; } /* Limit the number of pages in the pool to about 50% of the total
Just a friendly reminder that this fix for a regression needs review. It should be a quick review.
It would probably be good to ensure this gets in before the final 5.14 release, otherwise this is going to be a very visible regression for anyone that uses DRM and does not use debugfs.
Thanks!
-- Dan
On Sat, Aug 14, 2021 at 12:50:14AM +0800, Dan Moulding wrote:
Just a friendly reminder that this fix for a regression needs review. It should be a quick review.
It would probably be good to ensure this gets in before the final 5.14 release, otherwise this is going to be a very visible regression for anyone that uses DRM and does not use debugfs.
Just took a look at your patch, it's ok for me. Alex/Christian, could you help to apply this fix if you have no concern?
Best Regards, Ray
Am 16.08.21 um 08:20 schrieb Huang Rui:
On Sat, Aug 14, 2021 at 12:50:14AM +0800, Dan Moulding wrote:
Just a friendly reminder that this fix for a regression needs review. It should be a quick review.
It would probably be good to ensure this gets in before the final 5.14 release, otherwise this is going to be a very visible regression for anyone that uses DRM and does not use debugfs.
Just took a look at your patch, it's ok for me. Alex/Christian, could you help to apply this fix if you have no concern?
Sorry for the delay, just came back from vacation today.
Patch is pushed to drm-misc-fixes and will hopefully still get into 5.14.
Thanks, Christian.
Best Regards, Ray
dri-devel@lists.freedesktop.org