At 10/19/2012 03:01 PM, KOSAKI Motohiro Wrote: > On Fri, Oct 19, 2012 at 2:46 AM, <wency@xxxxxxxxxxxxxx> wrote: >> From: Yasuaki Ishimatsu <isimatu.yasuaki@xxxxxxxxxxxxxx> >> >> If the node is onlined after it is offlined, we will clear the memory >> to store the node's information. This structure contains struct work, >> so we should flush work before the work's information is cleared. > > This explanation is incorrect. Even if you don't call memset(), you should > call flush_work() at offline event. Because of, after offlinining, we > shouldn't touch any node data. Alive workqueue violate this principle. Yes, I will update the description. > > And, hmmm... Wait. Usually workqueue shutdowning has two phase. 1) > inhibit enqueue new work 2) flush work. Otherwise other cpus may > enqueue new work after flush_work(). Where is (1)? > We schedule the work only when a memory section is onlined/offlined on this node. When we come here, all the memory on this node has been offlined, so we won't enqueue new work to this work. I will add a comment to descript this. Thanks Wen Congyang -- 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>