lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220109170920.2921-2-alyssa.rosenzweig@collabora.com>
Date:   Sun,  9 Jan 2022 12:09:18 -0500
From:   Alyssa Rosenzweig <alyssa.rosenzweig@...labora.com>
To:     dri-devel@...ts.freedesktop.org
Cc:     Rob Herring <robh@...nel.org>,
        Tomeu Vizoso <tomeu.vizoso@...labora.com>,
        Steven Price <steven.price@....com>,
        Alyssa Rosenzweig <alyssa.rosenzweig@...labora.com>,
        David Airlie <airlied@...ux.ie>,
        Daniel Vetter <daniel@...ll.ch>, linux-kernel@...r.kernel.org
Subject: [PATCH 1/2] drm/panfrost: Remove features meant for userspace

Early versions of the legacy kernel driver included comprehensive
feature lists for every GPU, even though most of the enumerated features
only matter to userspace. For example, HW_FEATURE_INTERPIPE_REG_ALIASING
was a feature bit indicating that a GPU had "interpipe register
aliasing": arithmetic, load/store, and texture instruction all use
common general-purpose registers. GPUs without this feature bit have
dedicated load/store and texture "registers". Whether a GPU has this
feature or not is irrelevant to the kernel; it only matters in the
userspace compiler's register allocator. It's silly to enumerate it in
kernel space, and the information is understandably unused. To
underscore the point, this feature only makes sense in the context of
the Midgard instruction set. Bifrost never had dedicated load/store or
texture registers, so the feature bit was vacuously set for all Bifrost
hardware, even though this conveys no useful information.

To clean up the feature list, delete feature bits which could not
possibly matter to the kernel, leaving only those which do affect the
register-level operation of the chip.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@...labora.com>
---
 drivers/gpu/drm/panfrost/panfrost_features.h | 172 -------------------
 1 file changed, 172 deletions(-)

diff --git a/drivers/gpu/drm/panfrost/panfrost_features.h b/drivers/gpu/drm/panfrost/panfrost_features.h
index 5056777c7744..f557fad5d5ff 100644
--- a/drivers/gpu/drm/panfrost/panfrost_features.h
+++ b/drivers/gpu/drm/panfrost/panfrost_features.h
@@ -12,24 +12,6 @@ enum panfrost_hw_feature {
 	HW_FEATURE_JOBCHAIN_DISAMBIGUATION,
 	HW_FEATURE_PWRON_DURING_PWROFF_TRANS,
 	HW_FEATURE_XAFFINITY,
-	HW_FEATURE_OUT_OF_ORDER_EXEC,
-	HW_FEATURE_MRT,
-	HW_FEATURE_BRNDOUT_CC,
-	HW_FEATURE_INTERPIPE_REG_ALIASING,
-	HW_FEATURE_LD_ST_TILEBUFFER,
-	HW_FEATURE_MSAA_16X,
-	HW_FEATURE_32_BIT_UNIFORM_ADDRESS,
-	HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL,
-	HW_FEATURE_OPTIMIZED_COVERAGE_MASK,
-	HW_FEATURE_T7XX_PAIRING_RULES,
-	HW_FEATURE_LD_ST_LEA_TEX,
-	HW_FEATURE_LINEAR_FILTER_FLOAT,
-	HW_FEATURE_WORKGROUP_ROUND_MULTIPLE_OF_4,
-	HW_FEATURE_IMAGES_IN_FRAGMENT_SHADERS,
-	HW_FEATURE_TEST4_DATUM_MODE,
-	HW_FEATURE_NEXT_INSTRUCTION_TYPE,
-	HW_FEATURE_BRNDOUT_KILL,
-	HW_FEATURE_WARPING,
 	HW_FEATURE_V4,
 	HW_FEATURE_FLUSH_REDUCTION,
 	HW_FEATURE_PROTECTED_MODE,
@@ -42,27 +24,15 @@ enum panfrost_hw_feature {
 };
 
 #define hw_features_t600 (\
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_V4))
 
 #define hw_features_t620 (\
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_V4))
 
 #define hw_features_t720 (\
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_OPTIMIZED_COVERAGE_MASK) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
-	BIT_ULL(HW_FEATURE_WORKGROUP_ROUND_MULTIPLE_OF_4) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
 	BIT_ULL(HW_FEATURE_V4))
 
 
@@ -70,17 +40,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
 
 // T860
@@ -88,19 +47,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
 
 #define hw_features_t880 hw_features_t860
@@ -109,61 +55,18 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
 
 #define hw_features_t820 (\
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
 
 #define hw_features_g71 (\
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
@@ -173,21 +76,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
@@ -198,21 +86,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
@@ -223,21 +96,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
@@ -248,21 +106,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
@@ -276,21 +119,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
-- 
2.34.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ