Message ID | 20240409-fd-fix-lxml-v1-1-e5c300d6c1c8@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | drm/msm/gen_header: allow skipping the validation | expand |
Hi Dmitry, On Tue, Apr 09, 2024 at 05:22:54PM +0300, Dmitry Baryshkov wrote: > We don't need to run the validation of the XML files if we are just > compiling the kernel. Skip the validation unless the user enables > corresponding Kconfig option. This removes a warning from gen_header.py > about lxml being not installed. > > Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> > Closes: https://lore.kernel.org/all/20240409120108.2303d0bd@canb.auug.org.au/ > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/gpu/drm/msm/Kconfig | 8 ++++++++ > drivers/gpu/drm/msm/Makefile | 9 ++++++++- > drivers/gpu/drm/msm/registers/gen_header.py | 14 +++++++++++--- > 3 files changed, 27 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/msm/Kconfig b/drivers/gpu/drm/msm/Kconfig > index f202f26adab2..4c9bf237d4a2 100644 > --- a/drivers/gpu/drm/msm/Kconfig > +++ b/drivers/gpu/drm/msm/Kconfig > @@ -54,6 +54,14 @@ config DRM_MSM_GPU_SUDO > Only use this if you are a driver developer. This should *not* > be enabled for production kernels. If unsure, say N. > > +config DRM_MSM_VALIDATE_XML > + bool "Validate XML register files against schema" > + depends on DRM_MSM && EXPERT > + depends on $(success,$(PYTHON3) -c "import lxml") > + help > + Validate XML files with register definitions against rules-fd schema. > + This option is mostly targeting DRM MSM developers. If unsure, say N. Is this change going to be applied? I have gotten a little tired of seeing "lxml not found, skipping validation" in all of my builds :) Cheers, Nathan
On Fri, May 03, 2024 at 09:48:12AM -0700, Nathan Chancellor wrote: > Hi Dmitry, > > On Tue, Apr 09, 2024 at 05:22:54PM +0300, Dmitry Baryshkov wrote: > > We don't need to run the validation of the XML files if we are just > > compiling the kernel. Skip the validation unless the user enables > > corresponding Kconfig option. This removes a warning from gen_header.py > > about lxml being not installed. > > > > Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> > > Closes: https://lore.kernel.org/all/20240409120108.2303d0bd@canb.auug.org.au/ > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > --- > > drivers/gpu/drm/msm/Kconfig | 8 ++++++++ > > drivers/gpu/drm/msm/Makefile | 9 ++++++++- > > drivers/gpu/drm/msm/registers/gen_header.py | 14 +++++++++++--- > > 3 files changed, 27 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/gpu/drm/msm/Kconfig b/drivers/gpu/drm/msm/Kconfig > > index f202f26adab2..4c9bf237d4a2 100644 > > --- a/drivers/gpu/drm/msm/Kconfig > > +++ b/drivers/gpu/drm/msm/Kconfig > > @@ -54,6 +54,14 @@ config DRM_MSM_GPU_SUDO > > Only use this if you are a driver developer. This should *not* > > be enabled for production kernels. If unsure, say N. > > > > +config DRM_MSM_VALIDATE_XML > > + bool "Validate XML register files against schema" > > + depends on DRM_MSM && EXPERT > > + depends on $(success,$(PYTHON3) -c "import lxml") > > + help > > + Validate XML files with register definitions against rules-fd schema. > > + This option is mostly targeting DRM MSM developers. If unsure, say N. > > Is this change going to be applied? I have gotten a little tired of > seeing "lxml not found, skipping validation" in all of my builds :) > I've posted v2, including CI changes. The plan is to get it merged before the drm/msm pull request.
diff --git a/drivers/gpu/drm/msm/Kconfig b/drivers/gpu/drm/msm/Kconfig index f202f26adab2..4c9bf237d4a2 100644 --- a/drivers/gpu/drm/msm/Kconfig +++ b/drivers/gpu/drm/msm/Kconfig @@ -54,6 +54,14 @@ config DRM_MSM_GPU_SUDO Only use this if you are a driver developer. This should *not* be enabled for production kernels. If unsure, say N. +config DRM_MSM_VALIDATE_XML + bool "Validate XML register files against schema" + depends on DRM_MSM && EXPERT + depends on $(success,$(PYTHON3) -c "import lxml") + help + Validate XML files with register definitions against rules-fd schema. + This option is mostly targeting DRM MSM developers. If unsure, say N. + config DRM_MSM_MDSS bool depends on DRM_MSM diff --git a/drivers/gpu/drm/msm/Makefile b/drivers/gpu/drm/msm/Makefile index c861de58286c..718968717ad5 100644 --- a/drivers/gpu/drm/msm/Makefile +++ b/drivers/gpu/drm/msm/Makefile @@ -156,8 +156,15 @@ msm-y += $(adreno-y) $(msm-display-y) obj-$(CONFIG_DRM_MSM) += msm.o +ifeq (y,$(CONFIG_DRM_MSM_VALIDATE_XML)) + headergen-opts += --validate +else + headergen-opts += --no-validate +endif + quiet_cmd_headergen = GENHDR $@ - cmd_headergen = mkdir -p $(obj)/generated && $(PYTHON3) $(srctree)/$(src)/registers/gen_header.py --rnn $(srctree)/$(src)/registers --xml $< c-defines > $@ + cmd_headergen = mkdir -p $(obj)/generated && $(PYTHON3) $(srctree)/$(src)/registers/gen_header.py \ + $(headergen-opts) --rnn $(srctree)/$(src)/registers --xml $< c-defines > $@ $(obj)/generated/%.xml.h: $(src)/registers/adreno/%.xml \ $(src)/registers/adreno/adreno_common.xml \ diff --git a/drivers/gpu/drm/msm/registers/gen_header.py b/drivers/gpu/drm/msm/registers/gen_header.py index 9b2842d4a354..192123cf7976 100644 --- a/drivers/gpu/drm/msm/registers/gen_header.py +++ b/drivers/gpu/drm/msm/registers/gen_header.py @@ -538,6 +538,9 @@ class Parser(object): self.variants.add(reg.domain) def do_validate(self, schemafile): + if self.validate == False: + return + try: from lxml import etree @@ -567,7 +570,10 @@ class Parser(object): if not xmlschema.validate(xml_doc): error_str = str(xmlschema.error_log.filter_from_errors()[0]) raise self.error("Schema validation failed for: " + filename + "\n" + error_str) - except ImportError: + except ImportError as e: + if self.validate: + raise e + print("lxml not found, skipping validation", file=sys.stderr) def do_parse(self, filename): @@ -586,9 +592,10 @@ class Parser(object): self.stack.pop() file.close() - def parse(self, rnn_path, filename): + def parse(self, rnn_path, filename, validate): self.path = rnn_path self.stack = [] + self.validate = validate self.do_parse(filename) def parse_reg(self, attrs, bit_size): @@ -853,7 +860,7 @@ def dump_c(args, guard, func): p = Parser() try: - p.parse(args.rnn, args.xml) + p.parse(args.rnn, args.xml, args.validate) except Error as e: print(e, file=sys.stderr) exit(1) @@ -941,6 +948,7 @@ def main(): parser = argparse.ArgumentParser() parser.add_argument('--rnn', type=str, required=True) parser.add_argument('--xml', type=str, required=True) + parser.add_argument('--validate', action=argparse.BooleanOptionalAction) subparsers = parser.add_subparsers(required=True)
We don't need to run the validation of the XML files if we are just compiling the kernel. Skip the validation unless the user enables corresponding Kconfig option. This removes a warning from gen_header.py about lxml being not installed. Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Closes: https://lore.kernel.org/all/20240409120108.2303d0bd@canb.auug.org.au/ Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- drivers/gpu/drm/msm/Kconfig | 8 ++++++++ drivers/gpu/drm/msm/Makefile | 9 ++++++++- drivers/gpu/drm/msm/registers/gen_header.py | 14 +++++++++++--- 3 files changed, 27 insertions(+), 4 deletions(-) --- base-commit: ab556156cafa24ec7de9e89bc18fa15637c21a59 change-id: 20240409-fd-fix-lxml-eecc6949f64e Best regards,