Re: [PATCH v9 6/8] x86/boot: Dig out SRAT table from RSDP and find immovable memory

From: Baoquan He
Date: Mon Oct 22 2018 - 02:08:25 EST


On 10/22/18 at 05:29am, Fan, Chao wrote:
> On Sun, Oct 21, 2018 at 10:34:58AM +0800, Baoquan He wrote:
> >On 10/17/18 at 06:20pm, Chao Fan wrote:
> >> + if (!cmdline_find_option_bool("movable_node") ||
> >> + cmdline_find_option_arg("acpi", "off", 3))
> >> + return;
> >> +
> >> + table_header = get_acpi_srat_table();
> >> + if (!table_header)
> >> + return;
> >> +
> >> + table_end = (unsigned long)table_header + table_header->length;
> >> +
> >> + table = (struct acpi_subtable_header *)
> >> + ((unsigned long)table_header + sizeof(struct acpi_table_srat));
> >> +
> >> + while (((unsigned long)table) +
> >> + sizeof(struct acpi_subtable_header) < table_end) {
> >> + if (table->type == ACPI_SRAT_TYPE_MEMORY_AFFINITY) {
> >> + ma = (struct acpi_srat_mem_affinity *)table;
> >> + if (!(ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE)) {
> >> + immovable_mem[i].start = ma->base_address;
> >> + immovable_mem[i].size = ma->length;
> >> + i++;
> >> + }
> >> +
> >> + if (i >= MAX_NUMNODES*2)
> > No warning message printed in this case?
>
> I will add. BTW, what message is appropriate?
> I can't figure out in what condition, i >= MAX_NUMNODES*2.

Do you mean it's impossible to happen?