This script bisects kernel for build/boot/func regressions on appointed board, run it under target kernel source tree.
If kernel friendly for network, it is a fully automatic bisect script, otherwise it is a semi-automatic scripts.
It will be better if has some way to automatic hardware reset board power. Or has some way send command via serial.
Usage: $./bisect.sh -g v3.11~2 -b v3.11 -t func 2>&1 | tee func.log
Any comments are appreciated!
On 11/18/2013 10:04 PM, Alex Shi wrote:
This script bisects kernel for build/boot/func regressions on appointed board, run it under target kernel source tree.
If kernel friendly for network, it is a fully automatic bisect script, otherwise it is a semi-automatic scripts.
For build bisect, the only manual work is pressing the power reset button according to prompt of this script.
It will be better if has some way to automatic hardware reset board power. Or has some way send command via serial.
The IPMI is good way for remote power reset, but it is a bit expensive. Do know if there some cheap way to do this? A programmable robot toy, or a electromagnetic relay?
Kevin, what are you using for remote power reset?
Usage: $./bisect.sh -g v3.11~2 -b v3.11 -t func 2>&1 | tee func.log
Any comments are appreciated!
Alex Shi alex.shi@linaro.org writes:
On 11/18/2013 10:04 PM, Alex Shi wrote:
This script bisects kernel for build/boot/func regressions on appointed board, run it under target kernel source tree.
If kernel friendly for network, it is a fully automatic bisect script, otherwise it is a semi-automatic scripts.
For build bisect, the only manual work is pressing the power reset button according to prompt of this script.
It will be better if has some way to automatic hardware reset board power. Or has some way send command via serial.
The IPMI is good way for remote power reset, but it is a bit expensive. Do know if there some cheap way to do this? A programmable robot toy, or a electromagnetic relay?
Kevin, what are you using for remote power reset?
I use USB controlled relays called phidgets[1]
These are USB controlled relays.
Combined with my pyboot tool[2], automatic bisect is as simple as: git bisect run '(rebuild; pyboot <board>)' and it's fully automated
Kevin
[1] http://www.phidgets.com/products.php?category=9 [2] http://staging.git.linaro.org/people/kevin.hilman/pyboot.git
On 19 November 2013 16:18, Kevin Hilman khilman@linaro.org wrote:
I use USB controlled relays called phidgets[1]
These are USB controlled relays.
Combined with my pyboot tool[2], automatic bisect is as simple as: git bisect run '(rebuild; pyboot <board>)' and it's fully automated
There's also a network standard for this stuff from IIRC National Instruments which I believe is most likely what the network controlled switches Paul Walmsley is using implement. I'm intending to give that a spin when I get round to sorting out auomated power for my boards.
On 11/20/2013 12:32 AM, Mark Brown wrote:
On 19 November 2013 16:18, Kevin Hilman <khilman@linaro.org mailto:khilman@linaro.org> wrote:
I use USB controlled relays called phidgets[1] These are USB controlled relays. Combined with my pyboot tool[2], automatic bisect is as simple as: git bisect run '(rebuild; pyboot <board>)' and it's fully automated
There's also a network standard for this stuff from IIRC National Instruments which I believe is most likely what the network controlled switches Paul Walmsley is using implement. I'm intending to give that a spin when I get round to sorting out auomated power for my boards.
Thanks for all of info, :) Yes, these power switcher works like a power reset on board.
On Tue, Nov 19, 2013 at 08:18:31AM -0800, Kevin Hilman wrote:
Alex Shi alex.shi@linaro.org writes:
On 11/18/2013 10:04 PM, Alex Shi wrote:
This script bisects kernel for build/boot/func regressions on appointed board, run it under target kernel source tree.
If kernel friendly for network, it is a fully automatic bisect script, otherwise it is a semi-automatic scripts.
For build bisect, the only manual work is pressing the power reset button according to prompt of this script.
It will be better if has some way to automatic hardware reset board power. Or has some way send command via serial.
The IPMI is good way for remote power reset, but it is a bit expensive. Do know if there some cheap way to do this? A programmable robot toy, or a electromagnetic relay?
Kevin, what are you using for remote power reset?
I use USB controlled relays called phidgets[1]
These are USB controlled relays.
Also, http://www.digital-loggers.com/lpc.html I use an old rack-mount version of this.
Combined with my pyboot tool[2], automatic bisect is as simple as: git bisect run '(rebuild; pyboot <board>)' and it's fully automated
I'm sure pyboot is better but I have to mention that tools/testing/ktest/ktest.pl also works for automated bisecting.
Someday I really should investigate switching my boot/test scripts to pyboot.
-Matt
Kevin, what are you using for remote power reset?
I use USB controlled relays called phidgets[1]
These are USB controlled relays.
Also, http://www.digital-loggers.com/lpc.html I use an old rack-mount version of this.
Thanks the info!
Combined with my pyboot tool[2], automatic bisect is as simple as: git bisect run '(rebuild; pyboot <board>)' and it's fully automated
True. but the value of combine bisect command into one script is that you can use it in another automatic tasks. Like, you can auto trigger the build bisection when the build failed, then find out which commit cause this failure.
Further more, you can add more standard ARM testing benchmarks after kernel booted, and then bisect which commit cause a performance/power regression on upstream tree or on next/tip trees.
If the job does well, any patch which possibly hurt ARM performance/power will be blocked or fixed. Then you will be a great judge in kernel community represent ARM/Linaro. That is a huge achievement! :)
I'm sure pyboot is better but I have to mention that tools/testing/ktest/ktest.pl also works for automated bisecting.
Someday I really should investigate switching my boot/test scripts to pyboot.
Did you using ktest to do bisecting work? In a short glance, it also just support ssh like connection to target machine.
Alex Shi alex.shi@linaro.org writes:
Kevin, what are you using for remote power reset?
I use USB controlled relays called phidgets[1]
These are USB controlled relays.
Also, http://www.digital-loggers.com/lpc.html I use an old rack-mount version of this.
Thanks the info!
Combined with my pyboot tool[2], automatic bisect is as simple as: git bisect run '(rebuild; pyboot <board>)' and it's fully automated
True. but the value of combine bisect command into one script is that you can use it in another automatic tasks. Like, you can auto trigger the build bisection when the build failed, then find out which commit cause this failure.
I'm doing this already, but it's not integrated into my build/boot reports.
We (kernel team and LAVA team) are actively working on a more thorough kernel CI that can do fast builds (and bisects) so once the infrastructure is in place, the next step is automating the bisect process. Any stuff you already have in place will be very useful.
Further more, you can add more standard ARM testing benchmarks after kernel booted, and then bisect which commit cause a performance/power regression on upstream tree or on next/tip trees.
Yes, LAVA can do all of this as well.
If the job does well, any patch which possibly hurt ARM performance/power will be blocked or fixed. Then you will be a great judge in kernel community represent ARM/Linaro. That is a huge achievement! :)
Completely agree. I can't wait until we get ther.
I'm sure pyboot is better but I have to mention that tools/testing/ktest/ktest.pl also works for automated bisecting.
Someday I really should investigate switching my boot/test scripts to pyboot.
Did you using ktest to do bisecting work? In a short glance, it also just support ssh like connection to target machine.
No, I don't use ktest.
Kevin
On 11/21/2013 07:26 AM, Kevin Hilman wrote:
If the job does well, any patch which possibly hurt ARM performance/power will be blocked or fixed. Then you will be a great judge in kernel community represent ARM/Linaro. That is a huge achievement! :)
Completely agree. I can't wait until we get ther.
Great!! That will be awesome!
On Mon, Nov 18, 2013 at 8:04 AM, Alex Shi alex.shi@linaro.org wrote:
This script bisects kernel for build/boot/func regressions on appointed board, run it under target kernel source tree.
If kernel friendly for network, it is a fully automatic bisect script, otherwise it is a semi-automatic scripts.
Did you know ktest in the kernel tree already has this capability and can also do kconfig bisects.
Rob
It will be better if has some way to automatic hardware reset board power. Or has some way send command via serial.
Usage: $./bisect.sh -g v3.11~2 -b v3.11 -t func 2>&1 | tee func.log
Any comments are appreciated!
Thanks Alex
linaro-kernel mailing list linaro-kernel@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-kernel
On 11/21/2013 07:59 AM, Rob Herring wrote:
On Mon, Nov 18, 2013 at 8:04 AM, Alex Shi alex.shi@linaro.org wrote:
This script bisects kernel for build/boot/func regressions on appointed board, run it under target kernel source tree.
If kernel friendly for network, it is a fully automatic bisect script, otherwise it is a semi-automatic scripts.
Did you know ktest in the kernel tree already has this capability and can also do kconfig bisects.
I don't study the ktest. Just AFAIK, the ktest just support ssh execution for normal test. If once the ssh broken ktest failed, ktest has no idea of the commit result.
Rob
It will be better if has some way to automatic hardware reset board power. Or has some way send command via serial.
Usage: $./bisect.sh -g v3.11~2 -b v3.11 -t func 2>&1 | tee func.log
Any comments are appreciated!
Thanks Alex
linaro-kernel mailing list linaro-kernel@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-kernel
linaro-kernel@lists.linaro.org