Re: [RFC][PATCH] make global bitlock waitqueues per-node

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Dec 19, 2016 2:58 PM, "Dave Hansen" <dave.hansen@xxxxxxxxxxxxxxx> wrote:

This boots in a small VM and on a multi-node NUMA system, but has not
been tested widely.  

No, this is wrong. 

+wait_queue_head_t *bit_waitqueue(void *word, int bit)
+{
+       const int __maybe_unused nid = page_to_nid(virt_to_page(word));
+
+       return __bit_waitqueue(word, bit, nid);

No can do. Part of the problem with the old coffee was that it did that virt_to_page() crud. That doesn't work with the virtually mapped stack. 

So bit_waitqueue() must not do the page lookup. 

Only [un]lock_page() that already has a page can do the NID thing.

OK? 

     Linus

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]