You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
paper Can Far Memory Improve Job Throughput? says:
To prevent cgroups from significantly exceeding their memory allocation, Fastswap gives each cgroup a small threshold α of memory above its limit. When a cgroup first reaches its memory limit, the memory controller requests offloaded reclaim. If the reclaimer is busy and cannot service reclamation requests fast enough, memory in the requesting cgroup will keep increasing. Once the cgroup exceeds its memory limit by α, page fault handlers for the cgroup will perform direct reclaim as well. This guarantees that the cgroup does not exceed its limit by more than α. In our implementation we use α =8MB. If a node is not using far memory, the reclaimer is idle, so the CPU can be used to execute jobs
However, in the actual implementation of the code, it seems that it is not used α:
static void high_work_func(struct work_struct *work)
{
struct mem_cgroup *memcg = container_of(work, struct mem_cgroup, high_work);
unsigned long high = memcg->high;
unsigned long nr_pages = page_counter_read(&memcg->memory);
unsigned long reclaim;
if (nr_pages > high) {
reclaim = min(nr_pages - high, MAX_RECLAIM_OFFLOAD);
/* reclaim_high only reclaims iff nr_pages > high */
reclaim_high(memcg, reclaim, GFP_KERNEL);
}
if (page_counter_read(&memcg->memory) > memcg->high)
schedule_work_on(FASTSWAP_RECLAIM_CPU, &memcg->high_work);
}
Did I miss anything?
The text was updated successfully, but these errors were encountered:
paper Can Far Memory Improve Job Throughput? says:
However, in the actual implementation of the code, it seems that it is not used α:
Did I miss anything?
The text was updated successfully, but these errors were encountered: