Вот вам идея, сделать модуль для ядра. Задача создавать и управлять разделами swap. Под каждую bank памяти создаётся "именовый" раздел равный её объему. Дальше он должен следить если память свободна, а соответствующий swap нет, то выгрузить из него все обратно.