Re: [PATCH V1] bootconfig: Increase max nodes of bootconfig from 1024 to 8192 for DCC support
From: Google
Date: Mon Mar 13 2023 - 02:02:24 EST
On Sun, 12 Mar 2023 12:49:44 +0100
Heinz Wiesinger <pprkut@xxxxxxxxxxxxx> wrote:
> Hi everyone,
Oops, thanks for pointing it out. I have to run the test in the test environment...
>
> It looks like this broke the bootconfig tests (tools/bootconfig/test-
> bootconfig.sh), tested on 6.1.18:
>
> Max node number check
> test case 12 (./bootconfig -a ./temp-HCfT.bconf ./initrd-NGHv)...
> Apply ./temp-HCfT.bconf to ./initrd-NGHv
> Number of nodes: 1024
> Size: 8110 bytes
> Checksum: 599485
> \t\t[OK]
> test case 13 (./bootconfig -a ./temp-HCfT.bconf ./initrd-NGHv)...
> Apply ./temp-HCfT.bconf to ./initrd-NGHv
> Number of nodes: 1025
> Size: 8118 bytes
> Checksum: 600212
> \t\t[NG]
Yes, it needs to test with 8192 and 8193 nodes. Those are
boundary checker.
Thanks!
>
> When I adjust the max node number for the tests to 8192, test case 13 passes,
> but test case 12 then fails:
>
> Max node number check
> test case 12 (./bootconfig -a ./temp-qZHF.bconf ./initrd-0v99)...
> Error: Config data is too big.
> \t\t[NG]
> test case 13 (./bootconfig -a ./temp-qZHF.bconf ./initrd-0v99)...
> Error: Config data is too big.
> \t\t[OK]
Ah, it hits the size limitation. :D
Each node consumes "node%d\n" = 6-11 bytes, and 11 bytes*8k = 88k bytes > 32K bytes.
So, for making 8k nodes (including delimiter), we need to use 3 random alphabets for
node name. (26^3 = 17576)
Let me fix that and thanks for report!
>
> Grs,
> Heinz
--
Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>