Message ID | 1696952947-18062-2-git-send-email-quic_mnaresh@quicinc.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | Add per-cpu PM QoS support for QCOM UFS | expand |
On Tue, 10 Oct 2023 21:19:04 +0530, Maramaina Naresh wrote: > Add bindings for per-cpu QoS for QCOM UFS. This improves random io > performance by 20% for QCOM UFS. > > Signed-off-by: Maramaina Naresh <quic_mnaresh@quicinc.com> > --- > Documentation/devicetree/bindings/ufs/qcom,ufs.yaml | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13): yamllint warnings/errors: ./Documentation/devicetree/bindings/ufs/qcom,ufs.yaml:83:6: [warning] wrong indentation: expected 6 but found 5 (indentation) ./Documentation/devicetree/bindings/ufs/qcom,ufs.yaml:85:6: [warning] wrong indentation: expected 6 but found 5 (indentation) dtschema/dtc warnings/errors: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml: properties:qos: 'anyOf' conditional failed, one must be fixed: 'cpumask' is not one of ['$ref', 'additionalItems', 'additionalProperties', 'allOf', 'anyOf', 'const', 'contains', 'default', 'dependencies', 'dependentRequired', 'dependentSchemas', 'deprecated', 'description', 'else', 'enum', 'exclusiveMaximum', 'exclusiveMinimum', 'items', 'if', 'minItems', 'minimum', 'maxItems', 'maximum', 'multipleOf', 'not', 'oneOf', 'pattern', 'patternProperties', 'properties', 'required', 'then', 'typeSize', 'unevaluatedProperties', 'uniqueItems'] 'type' was expected from schema $id: http://devicetree.org/meta-schemas/keywords.yaml# /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml: properties:qos: 'anyOf' conditional failed, one must be fixed: 'vote' is not one of ['$ref', 'additionalItems', 'additionalProperties', 'allOf', 'anyOf', 'const', 'contains', 'default', 'dependencies', 'dependentRequired', 'dependentSchemas', 'deprecated', 'description', 'else', 'enum', 'exclusiveMaximum', 'exclusiveMinimum', 'items', 'if', 'minItems', 'minimum', 'maxItems', 'maximum', 'multipleOf', 'not', 'oneOf', 'pattern', 'patternProperties', 'properties', 'required', 'then', 'typeSize', 'unevaluatedProperties', 'uniqueItems'] 'type' was expected from schema $id: http://devicetree.org/meta-schemas/keywords.yaml# /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml: qos: missing type definition /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/ufs/qcom,ufs.example.dtb: ufs@1d84000: Unevaluated properties are not allowed ('qos0', 'qos1' were unexpected) from schema $id: http://devicetree.org/schemas/ufs/qcom,ufs.yaml# doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/1696952947-18062-2-git-send-email-quic_mnaresh@quicinc.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
On 10/10/23 17:49, Maramaina Naresh wrote: > Add bindings for per-cpu QoS for QCOM UFS. This improves random io > performance by 20% for QCOM UFS. The bindings addition improves performance? Cool :P Please explain your changes and provide the "why". [...] > @@ -318,5 +326,13 @@ examples: > <0 0>, > <0 0>; > qcom,ice = <&ice>; > + qos0 { Looks like the indentation is off, also missing newline before subnodes. > + cpumask = <0x0f>;This should be a CPU phandle array instead. Besides, can we not determine this dynamically? > + vote = <44>; > + }; > + qos1 { Missing newline between subnodes. Konrad
Hi Maramaina, kernel test robot noticed the following build warnings: [auto build test WARNING on mkp-scsi/for-next] [also build test WARNING on jejb-scsi/for-next robh/for-next linus/master v6.6-rc5 next-20231010] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Maramaina-Naresh/dt-bindings-ufs-qcom-Add-qos-property/20231010-235602 base: https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next patch link: https://lore.kernel.org/r/1696952947-18062-2-git-send-email-quic_mnaresh%40quicinc.com patch subject: [PATCH V1 1/4] dt-bindings: ufs: qcom: Add qos property compiler: loongarch64-linux-gcc (GCC) 13.2.0 reproduce: (https://download.01.org/0day-ci/archive/20231011/202310111509.fFHOVdaI-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202310111509.fFHOVdaI-lkp@intel.com/ dtcheck warnings: (new ones prefixed by >>) >> Documentation/devicetree/bindings/ufs/qcom,ufs.yaml:83:6: [warning] wrong indentation: expected 6 but found 5 (indentation) Documentation/devicetree/bindings/ufs/qcom,ufs.yaml:85:6: [warning] wrong indentation: expected 6 but found 5 (indentation) -- >> Documentation/devicetree/bindings/ufs/qcom,ufs.yaml: properties:qos: 'anyOf' conditional failed, one must be fixed: 'cpumask' is not one of ['$ref', 'additionalItems', 'additionalProperties', 'allOf', 'anyOf', 'const', 'contains', 'default', 'dependencies', 'dependentRequired', 'dependentSchemas', 'deprecated', 'description', 'else', 'enum', 'exclusiveMaximum', 'exclusiveMinimum', 'items', 'if', 'minItems', 'minimum', 'maxItems', 'maximum', 'multipleOf', 'not', 'oneOf', 'pattern', 'patternProperties', 'properties', 'required', 'then', 'typeSize', 'unevaluatedProperties', 'uniqueItems'] 'type' was expected from schema $id: http://devicetree.org/meta-schemas/keywords.yaml# >> Documentation/devicetree/bindings/ufs/qcom,ufs.yaml: properties:qos: 'anyOf' conditional failed, one must be fixed: 'vote' is not one of ['$ref', 'additionalItems', 'additionalProperties', 'allOf', 'anyOf', 'const', 'contains', 'default', 'dependencies', 'dependentRequired', 'dependentSchemas', 'deprecated', 'description', 'else', 'enum', 'exclusiveMaximum', 'exclusiveMinimum', 'items', 'if', 'minItems', 'minimum', 'maxItems', 'maximum', 'multipleOf', 'not', 'oneOf', 'pattern', 'patternProperties', 'properties', 'required', 'then', 'typeSize', 'unevaluatedProperties', 'uniqueItems'] 'type' was expected from schema $id: http://devicetree.org/meta-schemas/keywords.yaml# vim +83 Documentation/devicetree/bindings/ufs/qcom,ufs.yaml 8 9 maintainers: 10 - Bjorn Andersson <bjorn.andersson@linaro.org> 11 - Andy Gross <agross@kernel.org> 12 13 # Select only our matches, not all jedec,ufs-2.0 14 select: 15 properties: 16 compatible: 17 contains: 18 const: qcom,ufshc 19 required: 20 - compatible 21 22 properties: 23 compatible: 24 items: 25 - enum: 26 - qcom,msm8994-ufshc 27 - qcom,msm8996-ufshc 28 - qcom,msm8998-ufshc 29 - qcom,sa8775p-ufshc 30 - qcom,sc8280xp-ufshc 31 - qcom,sdm845-ufshc 32 - qcom,sm6115-ufshc 33 - qcom,sm6350-ufshc 34 - qcom,sm8150-ufshc 35 - qcom,sm8250-ufshc 36 - qcom,sm8350-ufshc 37 - qcom,sm8450-ufshc 38 - qcom,sm8550-ufshc 39 - const: qcom,ufshc 40 - const: jedec,ufs-2.0 41 42 clocks: 43 minItems: 8 44 maxItems: 11 45 46 clock-names: 47 minItems: 8 48 maxItems: 11 49 50 dma-coherent: true 51 52 interconnects: 53 minItems: 2 54 maxItems: 2 55 56 interconnect-names: 57 items: 58 - const: ufs-ddr 59 - const: cpu-ufs 60 61 iommus: 62 minItems: 1 63 maxItems: 2 64 65 phys: 66 maxItems: 1 67 68 phy-names: 69 items: 70 - const: ufsphy 71 72 power-domains: 73 maxItems: 1 74 75 qcom,ice: 76 $ref: /schemas/types.yaml#/definitions/phandle 77 description: phandle to the Inline Crypto Engine node 78 79 qos: 80 minItems: 2 81 maxItems: 2 82 cpumask: > 83 description: list of CPUs under CPU group 84 vote: 85 description: vote value for QoS CPU group 86 87 reg: 88 minItems: 1 89 maxItems: 2 90 91 reg-names: 92 items: 93 - const: std 94 - const: ice 95 96 required-opps: 97 maxItems: 1 98 99 resets: 100 maxItems: 1 101 102 '#reset-cells': 103 const: 1 104 105 reset-names: 106 items: 107 - const: rst 108 109 reset-gpios: 110 maxItems: 1 111 description: 112 GPIO connected to the RESET pin of the UFS memory device. 113 114 required: 115 - compatible 116 - reg 117 118 allOf: 119 - $ref: ufs-common.yaml 120 121 - if: 122 properties: 123 compatible: 124 contains: 125 enum: 126 - qcom,msm8998-ufshc 127 - qcom,sa8775p-ufshc 128 - qcom,sc8280xp-ufshc 129 - qcom,sm8250-ufshc 130 - qcom,sm8350-ufshc 131 - qcom,sm8450-ufshc 132 - qcom,sm8550-ufshc 133 then: 134 properties: 135 clocks: 136 minItems: 8 137 maxItems: 8 138 clock-names: 139 items: 140 - const: core_clk 141 - const: bus_aggr_clk 142 - const: iface_clk 143 - const: core_clk_unipro 144 - const: ref_clk 145 - const: tx_lane0_sync_clk 146 - const: rx_lane0_sync_clk 147 - const: rx_lane1_sync_clk 148 reg: 149 minItems: 1 150 maxItems: 1 151 reg-names: 152 maxItems: 1 153 154 - if: 155 properties: 156 compatible: 157 contains: 158 enum: 159 - qcom,sdm845-ufshc 160 - qcom,sm6350-ufshc 161 - qcom,sm8150-ufshc 162 then: 163 properties: 164 clocks: 165 minItems: 9 166 maxItems: 9 167 clock-names: 168 items: 169 - const: core_clk 170 - const: bus_aggr_clk 171 - const: iface_clk 172 - const: core_clk_unipro 173 - const: ref_clk 174 - const: tx_lane0_sync_clk 175 - const: rx_lane0_sync_clk 176 - const: rx_lane1_sync_clk 177 - const: ice_core_clk 178 reg: 179 minItems: 2 180 maxItems: 2 181 reg-names: 182 minItems: 2 183 required: 184 - reg-names 185 186 - if: 187 properties: 188 compatible: 189 contains: 190 enum: 191 - qcom,msm8996-ufshc 192 then: 193 properties: 194 clocks: 195 minItems: 11 196 maxItems: 11 197 clock-names: 198 items: 199 - const: core_clk_src 200 - const: core_clk 201 - const: bus_clk 202 - const: bus_aggr_clk 203 - const: iface_clk 204 - const: core_clk_unipro_src 205 - const: core_clk_unipro 206 - const: core_clk_ice 207 - const: ref_clk 208 - const: tx_lane0_sync_clk 209 - const: rx_lane0_sync_clk 210 reg: 211 minItems: 1 212 maxItems: 1 213 reg-names: 214 maxItems: 1 215 216 - if: 217 properties: 218 compatible: 219 contains: 220 enum: 221 - qcom,sm6115-ufshc 222 then: 223 properties: 224 clocks: 225 minItems: 8 226 maxItems: 8 227 clock-names: 228 items: 229 - const: core_clk 230 - const: bus_aggr_clk 231 - const: iface_clk 232 - const: core_clk_unipro 233 - const: ref_clk 234 - const: tx_lane0_sync_clk 235 - const: rx_lane0_sync_clk 236 - const: ice_core_clk 237 reg: 238 minItems: 2 239 maxItems: 2 240 reg-names: 241 minItems: 2 242 required: 243 - reg-names 244 245 # TODO: define clock bindings for qcom,msm8994-ufshc 246 247 - if: 248 required: 249 - qcom,ice 250 then: 251 properties: 252 reg: 253 maxItems: 1 254 clocks: 255 minItems: 8 256 maxItems: 8 257 else: 258 properties: 259 reg: 260 minItems: 1 261 maxItems: 2 262 clocks: 263 minItems: 8 264 maxItems: 11 265
On 10/10/2023 17:49, Maramaina Naresh wrote: > Add bindings for per-cpu QoS for QCOM UFS. This improves random io > performance by 20% for QCOM UFS. > > Signed-off-by: Maramaina Naresh <quic_mnaresh@quicinc.com> > --- > Documentation/devicetree/bindings/ufs/qcom,ufs.yaml | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml b/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml > index 462ead5..d8b807e 100644 > --- a/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml > +++ b/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml > @@ -76,6 +76,14 @@ properties: > $ref: /schemas/types.yaml#/definitions/phandle > description: phandle to the Inline Crypto Engine node > > + qos: > + minItems: 2 > + maxItems: 2 This was absolutely never tested. Best regards, Krzysztof
On 10/20/23 11:04, Maramaina Naresh wrote: > Hi All, > > Thanks for reviewing the patch. > > We are moving this feature support to core UFS driver and planning to control through UFS capability flag [ As per upstream comments ]. > > We will take care of comments and push new changes in next patch series. Sounds good. Please also fix your email client to avoid HTML. The lists will only accept plaintext messages. Konrad
diff --git a/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml b/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml index 462ead5..d8b807e 100644 --- a/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml +++ b/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml @@ -76,6 +76,14 @@ properties: $ref: /schemas/types.yaml#/definitions/phandle description: phandle to the Inline Crypto Engine node + qos: + minItems: 2 + maxItems: 2 + cpumask: + description: list of CPUs under CPU group + vote: + description: vote value for QoS CPU group + reg: minItems: 1 maxItems: 2 @@ -318,5 +326,13 @@ examples: <0 0>, <0 0>; qcom,ice = <&ice>; + qos0 { + cpumask = <0x0f>; + vote = <44>; + }; + qos1 { + cpumask = <0xf0>; + vote = <44>; + }; }; };
Add bindings for per-cpu QoS for QCOM UFS. This improves random io performance by 20% for QCOM UFS. Signed-off-by: Maramaina Naresh <quic_mnaresh@quicinc.com> --- Documentation/devicetree/bindings/ufs/qcom,ufs.yaml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)