Hi Sascha,
On 11.07.19 09:01, Sascha Hauer wrote:
On Wed, Jul 10, 2019 at 01:27:30PM +0200, Stefan Riedmueller wrote:
Due to the recursive ubi_thread implementation in the barebox, a large
amount of wear-leveling can lead to a stack overflow.
This was observed during extensive ubi stress tests with the linux
kernel and periodic power cycles. We found that if the wear-leveling
threshold is exceeded and a large amount of erase blocks need
wear-leveling the stack can overflow.
The hardware used to observe this was a phyCORE-i.MX 6 with 1GB NAND flash.
As the kernel is perfectly capable of handling wear-leveling we can
increase the wear-leveling threshold in the barebox to leave it to the
kernel. To minimize the chance of wear-leveling in the barebox max out
the threshold.
I can follow the reasoning and it seems indeed better and more safe to
leave the wearleveling to the Kernel. Given that, can't we just disable
wear leveling completely in barebox?
I think it would be best to disable it or at least improve it. But since
wear-leveling is not an isolated task but involved in more functionalities I
couldn't find an easy way to disable it in a quick way. That is why I went
with the threshold enlargement to have at least a quick fix.
But I agree that at some point in the future the root cause should be
handled and not just the symptom.
Stefan
Sascha
_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox