[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [linux-linus bisection] complete build-arm64-pvops
branch xen-unstable xenbranch xen-unstable job build-arm64-pvops testid kernel-build Tree: linux git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git Tree: linuxfirmware git://xenbits.xen.org/osstest/linux-firmware.git *** Found and reproduced problem changeset *** Bug is in tree: linux git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git Bug introduced: 23c35f48f5fbe33f68904138b23fee64df7d2f0f Bug not present: d3581c8ef718ae1b03e9106446ddf76b77026895 Last fail repro: http://logs.test-lab.xenproject.org/osstest/logs/118579/ commit 23c35f48f5fbe33f68904138b23fee64df7d2f0f Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> Date: Fri Feb 2 16:44:14 2018 -0800 pinctrl: remove include file from <linux/device.h> When pulling the recent pinctrl merge, I was surprised by how a pinctrl-only pull request ended up rebuilding basically the whole kernel. The reason for that ended up being that <linux/device.h> included <linux/pinctrl/devinfo.h>, so any change to that file ended up causing pretty much every driver out there to be rebuilt. The reason for that was because 'struct device' has this in it: #ifdef CONFIG_PINCTRL struct dev_pin_info *pins; #endif but we already avoid header includes for these kinds of things in that header file, preferring to just use a forward-declaration of the structure instead. Exactly to avoid this kind of header dependency. Since some drivers seem to expect that <linux/pinctrl/devinfo.h> header to come in automatically, move the include to <linux/pinctrl/pinctrl.h> instead. It might be better to just make the includes more targeted, but I'm not going to review every driver. It would definitely be good to have a tool for finding and minimizing header dependencies automatically - or at least help with them. Right now we almost certainly end up having way too many of these things, and it's hard to test every single configuration. FWIW, you can get a sense of the "hotness" of a header file with something like this after doing a full build: find . -name '.*.o.cmd' -print0 | xargs -0 tail --lines=+2 | grep -v 'wildcard ' | tr ' \\' '\n' | sort | uniq -c | sort -n | less -S which isn't exact (there are other things in those '*.o.cmd' than just the dependencies, and the "--lines=+2" only removes the header), but might a useful approximation. With this patch, <linux/pinctrl/devinfo.h> drops to "only" having 833 users in the current x86-64 allmodconfig. In contrast, <linux/device.h> has 14857 build files including it directly or indirectly. Of course, the headers that absolutely _everybody_ includes (things like <linux/types.h> etc) get a score of 23000+. Cc: Linus Walleij <linus.walleij@xxxxxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> For bisection revision-tuple graph see: http://logs.test-lab.xenproject.org/osstest/results/bisect/linux-linus/build-arm64-pvops.kernel-build.html Revision IDs in each graph node refer, respectively, to the Trees above. ---------------------------------------- Running cs-bisection-step --graph-out=/home/logs/results/bisect/linux-linus/build-arm64-pvops.kernel-build --summary-out=tmp/118579.bisection-summary --basis-template=118324 --blessings=real,real-bisect linux-linus build-arm64-pvops kernel-build Searching for failure / basis pass: 118566 fail [host=laxton1] / 118538 ok. Failure / basis pass flights: 118566 / 118538 Tree: linux git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git Tree: linuxfirmware git://xenbits.xen.org/osstest/linux-firmware.git Latest 617aebe6a97efa539cc4b8a52adccd89596e6be0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 Basis pass 4bf772b14675411a69b3c807f73006de0fe4b649 c530a75c1e6a472b0eb9558310b518f0dfcd8860 Generating revisions with ./adhoc-revtuple-generator git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git#4bf772b14675411a69b3c807f73006de0fe4b649-617aebe6a97efa539cc4b8a52adccd89596e6be0 git://xenbits.xen.org/osstest/linux-firmware.git#c530a75c1e6a472b0eb9558310b518f0dfcd8860-c530a75c1e6a472b0eb9558310b518f0dfcd8860 Loaded 1213 nodes in revision graph Searching for test results: 118538 pass 4bf772b14675411a69b3c807f73006de0fe4b649 c530a75c1e6a472b0eb9558310b518f0dfcd8860 118573 fail 23c35f48f5fbe33f68904138b23fee64df7d2f0f c530a75c1e6a472b0eb9558310b518f0dfcd8860 118572 pass d3581c8ef718ae1b03e9106446ddf76b77026895 c530a75c1e6a472b0eb9558310b518f0dfcd8860 118556 fail 23c35f48f5fbe33f68904138b23fee64df7d2f0f c530a75c1e6a472b0eb9558310b518f0dfcd8860 118569 fail 23c35f48f5fbe33f68904138b23fee64df7d2f0f c530a75c1e6a472b0eb9558310b518f0dfcd8860 118578 pass d3581c8ef718ae1b03e9106446ddf76b77026895 c530a75c1e6a472b0eb9558310b518f0dfcd8860 118567 pass 4bf772b14675411a69b3c807f73006de0fe4b649 c530a75c1e6a472b0eb9558310b518f0dfcd8860 118570 pass b89e32ccd1be92a3643df3908d3026b09e271616 c530a75c1e6a472b0eb9558310b518f0dfcd8860 118571 pass ef991796be0e65b644fe60198bd1112830eff173 c530a75c1e6a472b0eb9558310b518f0dfcd8860 118566 fail 617aebe6a97efa539cc4b8a52adccd89596e6be0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 118574 fail 617aebe6a97efa539cc4b8a52adccd89596e6be0 c530a75c1e6a472b0eb9558310b518f0dfcd8860 118575 pass d3581c8ef718ae1b03e9106446ddf76b77026895 c530a75c1e6a472b0eb9558310b518f0dfcd8860 118577 fail 23c35f48f5fbe33f68904138b23fee64df7d2f0f c530a75c1e6a472b0eb9558310b518f0dfcd8860 118579 fail 23c35f48f5fbe33f68904138b23fee64df7d2f0f c530a75c1e6a472b0eb9558310b518f0dfcd8860 Searching for interesting versions Result found: flight 118538 (pass), for basis pass Result found: flight 118566 (fail), for basis failure Repro found: flight 118567 (pass), for basis pass Repro found: flight 118574 (fail), for basis failure 0 revisions at d3581c8ef718ae1b03e9106446ddf76b77026895 c530a75c1e6a472b0eb9558310b518f0dfcd8860 No revisions left to test, checking graph state. Result found: flight 118572 (pass), for last pass Result found: flight 118573 (fail), for first failure Repro found: flight 118575 (pass), for last pass Repro found: flight 118577 (fail), for first failure Repro found: flight 118578 (pass), for last pass Repro found: flight 118579 (fail), for first failure *** Found and reproduced problem changeset *** Bug is in tree: linux git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git Bug introduced: 23c35f48f5fbe33f68904138b23fee64df7d2f0f Bug not present: d3581c8ef718ae1b03e9106446ddf76b77026895 Last fail repro: http://logs.test-lab.xenproject.org/osstest/logs/118579/ commit 23c35f48f5fbe33f68904138b23fee64df7d2f0f Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> Date: Fri Feb 2 16:44:14 2018 -0800 pinctrl: remove include file from <linux/device.h> When pulling the recent pinctrl merge, I was surprised by how a pinctrl-only pull request ended up rebuilding basically the whole kernel. The reason for that ended up being that <linux/device.h> included <linux/pinctrl/devinfo.h>, so any change to that file ended up causing pretty much every driver out there to be rebuilt. The reason for that was because 'struct device' has this in it: #ifdef CONFIG_PINCTRL struct dev_pin_info *pins; #endif but we already avoid header includes for these kinds of things in that header file, preferring to just use a forward-declaration of the structure instead. Exactly to avoid this kind of header dependency. Since some drivers seem to expect that <linux/pinctrl/devinfo.h> header to come in automatically, move the include to <linux/pinctrl/pinctrl.h> instead. It might be better to just make the includes more targeted, but I'm not going to review every driver. It would definitely be good to have a tool for finding and minimizing header dependencies automatically - or at least help with them. Right now we almost certainly end up having way too many of these things, and it's hard to test every single configuration. FWIW, you can get a sense of the "hotness" of a header file with something like this after doing a full build: find . -name '.*.o.cmd' -print0 | xargs -0 tail --lines=+2 | grep -v 'wildcard ' | tr ' \\' '\n' | sort | uniq -c | sort -n | less -S which isn't exact (there are other things in those '*.o.cmd' than just the dependencies, and the "--lines=+2" only removes the header), but might a useful approximation. With this patch, <linux/pinctrl/devinfo.h> drops to "only" having 833 users in the current x86-64 allmodconfig. In contrast, <linux/device.h> has 14857 build files including it directly or indirectly. Of course, the headers that absolutely _everybody_ includes (things like <linux/types.h> etc) get a score of 23000+. Cc: Linus Walleij <linus.walleij@xxxxxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> Revision graph left in /home/logs/results/bisect/linux-linus/build-arm64-pvops.kernel-build.{dot,ps,png,html,svg}. ---------------------------------------- 118579: tolerable ALL FAIL flight 118579 linux-linus real-bisect [real] http://logs.test-lab.xenproject.org/osstest/logs/118579/ Failures :-/ but no regressions. Tests which did not succeed, including tests which could not be run: build-arm64-pvops 6 kernel-build fail baseline untested jobs: build-arm64-pvops fail ------------------------------------------------------------ sg-report-flight on osstest.test-lab.xenproject.org logs: /home/logs/logs images: /home/logs/images Logs, config files, etc. are available at http://logs.test-lab.xenproject.org/osstest/logs Explanation of these reports, and of osstest in general, is at http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master Test harness code can be found at http://xenbits.xen.org/gitweb?p=osstest.git;a=summary _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |