On Mon, Jun 17, 2013 at 11:22 PM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote: > On Mon, Jun 17, 2013 at 6:58 PM, Tejun Heo <tj@xxxxxxxxxx> wrote: >> On Thu, Jun 13, 2013 at 09:03:03PM +0800, Tang Chen wrote: >>> From: Yinghai Lu <yinghai@xxxxxxxxxx> >>> >>> numa_emulation() needs to allocate buffer for new numa_meminfo >>> and distance matrix, so execute it later in x86_numa_init(). >>> >>> Also we change the behavoir: >>> - before this patch, if user input wrong data in command >>> line, it will fall back to next numa probing or disabling >>> numa. >>> - after this patch, if user input wrong data in command line, >>> it will stay with numa info probed from previous probing, >>> like ACPI SRAT or amd_numa. >>> >>> We need to call numa_check_memblks to reject wrong user inputs early >>> so that we can keep the original numa_meminfo not changed. >> >> So, this is another very subtle ordering you're adding without any >> comment and I'm not sure it even makes sense because the function can >> fail after that point. the new numa_emulation will call numa_check_memblks at first before touch numa_meminfo. if it fails, numa_meminfo is not touched, so that should not a problem. > > Yes, if it fail, we will stay with current numa info from firmware. > That looks like right behavior. > > Before this patch, it will fail to next numa way like if acpi srat + user > input fail, it will try to go with amd_numa then try apply user info. For numa emulation fail sequence, want to double check what should be right seuence: on and before 2.6.38: emulation ==> acpi ==> amd ==> dummy so if emulation with wrong input, will fall back to acpi numa. from 2.6.39 acpi (emulation) ==> amd (emulation) ==> dummy (emulation) if emulation with wrong input, it will fall back to next numa discovery. after my patchset will be acpi ==> amd ==> dummy emulation. the new emulation will call numa_check_memblks at first before touch numa_meminfo. anyway if emulation fails, numa_meminfo is not touched. so this change looks like right change. Thanks Yinghai -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>