#255 Issues with 'extra' attribute of the 'unit_mask' XML element from 'ophelp --xml'

Maynard Johnson


  • Issue #1:
    When we added support for the "extra" field for unit masks a couple of years ago (May 2011, to be exact), code changes were made to libop/op_xml_out.c to output a new "extra" attribute to the "unit_mask" XML element, but the ophelp.xsd schema was not updated with this new attribute. So now, if you run 'ophelp --xml' on an Intel system where there are actual extra values, the XML output fails validation. For example, on my Sandybridge laptop:
    ophelp --xml > out.xml
    xmllint --noout --schema ~/workspace/oprofile-upstream/doc/ophelp.xsd out.xml
    ^--- The xmllint fails with a bunch of errors like the following:
    "out.xml:29: element unit_mask: Schemas validity error : Element
    'unit_mask', attribute 'extra': The attribute 'extra' is not allowed."
    followed by
    "out.xml fails to validate"
    This issue and the following one will be addressed together.

    Issue #2:
    In cases of named unit masks, the name is not included output in the XML output of ophelp. I don't think there's any value add to the "extra" value in XML output We don't output that value in the text-formatted ophelp. I think, at the least, we should add a "name" attribute to the schema and update libop/op_xml_out.c to fill that in for named UMs.

  • Regarding the lack of a "name" attribute for named unit masks (mentioned in issue 2), I created a separate bug -- https://sourceforge.net/p/oprofile/bugs/259/.

  • In a discussion thread on the oprofile-list, Andi Kleen agreed with me that the "extra" field in the ophelp XML output has no value add. The code should be changed to remove that data, and then the issue with xmllint failing should be resolved.

  • NOTE: The 'extra' field in the ophelp XML output was removed via Commit fd05da on Feb 3, 2014. The lack of a "name" attribute in the ophelp XML for named unit masks was handled by bug #259. So this bug report is now completely handled and can be marked "Fixed.

    • status: open --> open-fixed
    • Group: -->
    • Status: open-fixed --> closed