On Thu, 19 Jan 2023 22:21:27 +0530 Souradeep Chowdhury <quic_schowdhu@xxxxxxxxxxx> wrote: > > > On 1/12/2023 12:31 PM, Masami Hiramatsu (Google) wrote: > > On Tue, 10 Jan 2023 20:38:54 +0530 > > Souradeep Chowdhury <quic_schowdhu@xxxxxxxxxxx> wrote: > > > >> > >> > >> On 1/10/2023 8:16 PM, Masami Hiramatsu (Google) wrote: > >>> On Tue, 10 Jan 2023 17:26:07 +0530 > >>> Souradeep Chowdhury <quic_schowdhu@xxxxxxxxxxx> wrote: > >>> > >>>> > >>>> > >>>> On 1/9/2023 8:48 PM, Masami Hiramatsu (Google) wrote: > >>>>> On Mon, 9 Jan 2023 20:01:05 +0530 > >>>>> Souradeep Chowdhury <quic_schowdhu@xxxxxxxxxxx> wrote: > >>>>> > >>>>>> Increasing the memory size of bootconfig to be able to handle a max number of > >>>>>> 8192 nodes to be fitted in memory size of 256KB. > >>>>> > >>>>> Sorry, but you missed the 'xbc_node::data' stores the index of the data and > >>>>> that is uint16_t. So the XBC_DATA_MAX is fixed limitation. > >>>>> > >>>>> The number of nodes (XBC_NODE_MAX) can be expanded because I just decided it > >>>>> to keep the pre-compiled array size ~8KB. Maybe expanding it to 64KB just > >>>>> increase the size of kernel on init memory (and freed after boot). > >>>>> > >>>>> Could you tell me why you need such a big data for your DCC? > >>>>> > >>>>> Thank you, > >>>> > >>>> DCC is a debugging tool used in qcom which is needed to debug crashes > >>>> that can happen at boot-time. For debugging purposes a large number of > >>>> registers need to be configured in DCC driver which is to be fed via the > >>>> bootconfig file. For that we need to expand the nodes as well as memory > >>>> for using bootconfig. > >>> > >>> Hmm, how many registers does DCC usually use? And how big the bootconfig > >>> file is usually? I have no idea about that. > >> > >> So a typical bootconfig file for consumption of DCC looks like as follows > >> > >> dcc_config { > >> link_list_0 { > >> qcom-curr-link-list = 6 > >> qcom-link-list = R_0x1781005c_1_apb, > >> R_0x1782005c_1_apb > >> } > >> link_list_1 { > >> qcom-curr-link-list = 5 > >> qcom-link-list = R_0x1784005c_1_apb > >> } > >> } > >> > >> The "qcom-link-list" field can have 1000s of register , based on that > >> max nodes is increased to 8192. > > > > OK, then the number of fields can be larger than 1000. I got it. > > > >> > >>> > >>>> Can you let us know the changes that you suggest for doing the same? Is > >>>> it fine to just increase the XBC_NODE_MAX, do we also need to > >>>> change the uint16_t to u32 for proper storing of index values? > >>> > >>> Expanding the number of max nodes is easy, just increase the XBC_NODE_MAX > >>> (must be less than 64k). That will also increase the memory consumption > >>> during the boot time even if the bootconfig is small. Anyway, it will be > >>> freed after boot, so it maybe OK. > >> > >> So since the limit is 64K, 8192 is a valid value for max nodes. > > > > Yes. Expanding the number of node is OK to me. > > > >> > >>> > >>> But expanding the size of max bootconfig needs to change the type of > >>> the 'data' field to uint32_t (since that will be used for building > >>> bootconfig tool) and you also must confirm that `tools/bootconfig/bootconfig` > >>> can be built and pass the test-bootconfig.sh. > >>> Hmm, comparing with expanding the max number of XBC node, changing the > >>> 'data' type to uint32_t may not have much impact on memory consumption point > >>> of view, because it may increase only 20% of memory, but expanding the > >>> MAX_XBC_NODE always increases more than double. > >>> > >>> Thus, if we can accept increasing the number of node, it should be OK to > >>> change the 'data' type. > >> > >> That means from DCC point of view only increasing the max nodes is > >> enough as increasing the data size is unrelated to increasing the max nodes? > > > > Yes, if it is less than 32KB, you just need to increase the XBC_NODE_MAX. > > But if you think the size of bootconfig, we have to change the type of > > xbc_node::data field. > > > > Can you check the DCC also need to expand the size of bootconfig limitation? > > > > Thank you! > > Yes, I don't think the index needs to be increased from u16 to u32 for > dcc. Will be sending out the next version accordingly. OK, thanks for the confirmation! -- Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>