Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/mm: Split up long running selftests with cond_resched()

Scatter a few cond_resched() in between phases of the drm_mm selftests
to try and prevent us incurring the wrath of the NMI watchdog.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20170329091053.13837-1-chris@chris-wilson.co.uk

authored by

Chris Wilson and committed by
Daniel Vetter
cd4b11d9 6911498d

+28
+28
drivers/gpu/drm/selftests/test-drm_mm.c
··· 514 514 ret = __igt_reserve(count, size + 1); 515 515 if (ret) 516 516 return ret; 517 + 518 + cond_resched(); 517 519 } 518 520 519 521 return 0; ··· 714 712 return ret; 715 713 716 714 ret = __igt_insert(count, size + 1, false); 715 + if (ret) 716 + return ret; 717 + 718 + cond_resched(); 717 719 } 718 720 719 721 return 0; ··· 747 741 return ret; 748 742 749 743 ret = __igt_insert(count, size + 1, true); 744 + if (ret) 745 + return ret; 746 + 747 + cond_resched(); 750 748 } 751 749 752 750 return 0; ··· 1021 1011 ret = __igt_insert_range(count, size, max/4+1, 3*max/4-1); 1022 1012 if (ret) 1023 1013 return ret; 1014 + 1015 + cond_resched(); 1024 1016 } 1025 1017 1026 1018 return 0; ··· 1068 1056 drm_mm_for_each_node_safe(node, next, &mm) 1069 1057 drm_mm_remove_node(node); 1070 1058 DRM_MM_BUG_ON(!drm_mm_clean(&mm)); 1059 + cond_resched(); 1071 1060 } 1072 1061 1073 1062 ret = 0; ··· 1110 1097 align, bit); 1111 1098 goto out; 1112 1099 } 1100 + 1101 + cond_resched(); 1113 1102 } 1114 1103 1115 1104 ret = 0; ··· 1486 1471 goto out; 1487 1472 } 1488 1473 } 1474 + 1475 + cond_resched(); 1489 1476 } 1490 1477 1491 1478 ret = 0; ··· 1583 1566 goto out; 1584 1567 } 1585 1568 } 1569 + 1570 + cond_resched(); 1586 1571 } 1587 1572 1588 1573 ret = 0; ··· 1702 1683 drm_mm_for_each_node_safe(node, next, &mm) 1703 1684 drm_mm_remove_node(node); 1704 1685 DRM_MM_BUG_ON(!drm_mm_clean(&mm)); 1686 + cond_resched(); 1705 1687 } 1706 1688 1707 1689 ret = 0; ··· 1803 1783 drm_mm_for_each_node_safe(node, next, &mm) 1804 1784 drm_mm_remove_node(node); 1805 1785 DRM_MM_BUG_ON(!drm_mm_clean(&mm)); 1786 + cond_resched(); 1806 1787 } 1807 1788 1808 1789 ret = 0; ··· 1991 1970 drm_mm_remove_node(node); 1992 1971 kfree(node); 1993 1972 } 1973 + 1974 + cond_resched(); 1994 1975 } 1995 1976 1996 1977 ret = 0; ··· 2070 2047 } 2071 2048 } 2072 2049 2050 + cond_resched(); 2073 2051 return 0; 2074 2052 } 2075 2053 ··· 2156 2132 goto out; 2157 2133 } 2158 2134 } 2135 + 2136 + cond_resched(); 2159 2137 } 2160 2138 2161 2139 ret = 0; ··· 2257 2231 goto out; 2258 2232 } 2259 2233 } 2234 + 2235 + cond_resched(); 2260 2236 } 2261 2237 2262 2238 ret = 0;