On 06/28/2012 08:55 AM, Andrea Arcangeli wrote: You tell us when the data structures are not allocated, but you do not tell us how the data structures is used, or what the fields inside the data structures mean. This makes it very hard for other people to figure out the code later. Please document these kinds of things properly.
+/* + * Per-mm (process) structure dynamically allocated only if autonuma + * is not impossible. This links the mm to scan into the + * knuma_scand.mm_head and it contains the NUMA memory placement + * statistics for the process (generated by knuma_scand). + */ +struct mm_autonuma { + /* list node to link the "mm" into the knuma_scand.mm_head */ + struct list_head mm_node; + struct mm_struct *mm; + unsigned long mm_numa_fault_pass; /* zeroed from here during allocation */ + unsigned long mm_numa_fault_tot; + unsigned long mm_numa_fault[0]; +};
+/* + * Per-task (thread) structure dynamically allocated only if autonuma + * is not impossible. This contains the preferred autonuma_node where + * the userland thread should be scheduled into (only relevant if + * tsk->mm is not null) and the per-thread NUMA accesses statistics + * (generated by the NUMA hinting page faults). + */ +struct task_autonuma { + int autonuma_node; + /* zeroed from the below field during allocation */ + unsigned long task_numa_fault_pass; + unsigned long task_numa_fault_tot; + unsigned long task_numa_fault[0]; +};
-- All rights reversed -- 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>