Messages in this thread | | | Date | Fri, 07 Feb 2014 16:12:44 +0530 | From | Raghavendra K T <> | Subject | Re: [RFC PATCH V5] mm readahead: Fix readahead fail for no local memory and limit readahead pages |
| |
On 02/07/2014 05:28 AM, David Rientjes wrote: > On Thu, 6 Feb 2014, David Rientjes wrote: > >>>>>> +#define MAX_REMOTE_READAHEAD 4096UL > >> Normally it wouldn't matter because there's no significant downside to it >> racing, things like mempolicies which use numa_node_id() extensively would >> result in, oops, a page allocation on the wrong node. >> >> This stands out to me, though, because you're expecting the calculation to >> be correct for a specific node. >> >> The patch is still wrong, though, it should just do >> >> int node = ACCESS_ONCE(numa_mem_id()); >> return min(nr, (node_page_state(node, NR_INACTIVE_FILE) + >> node_page_state(node, NR_FREE_PAGES)) / 2); >> >> since we want to readahead based on the cpu's local node, the comment >> saying we're reading ahead onto "remote memory" is wrong since a >> memoryless node has local affinity to numa_mem_id(). >> > > Oops, forgot about the MAX_REMOTE_READAHEAD which needs to be factored in > as well, but this handles the bound on local node's statistics. >
So following discussion TODO for my patch is:
1) Update the changelog with user visible impact of the patch. (Andrew's suggestion) 2) Add ACCESS_ONCE to numa_node_id(). 3) Change the "readahead into remote memory" part of the documentation which is misleading.
( I feel no need to add numa_mem_id() since we would specifically limit the readahead with MAX_REMOTE_READAHEAD in memoryless cpu cases).
| |