"kswapd0" is taking up some of my device's CPU time even though I don't have any swap. What's going on? Using Ozcan ROM 6.3 on my Samsung Galaxy S4, I'm observing kswapd0 process making CPU laggy. The same thing happened on another TW KK ROM - Omega. After researching on it for weeks, I realized that it's the process that does the SWAP job - transferring RAM contents to storage when memory is low. 

Presently, I don't want to use SWAP, so the following are the workarounds that I tried to disable SWAP:


Tried Apps like Swapper2, Reset Swap to delete swapfile. The process
vanishes for few seconds but it looks like the swapfile again gets
created (checked by using command, free).
Used the command swapoff -a    (to Stop swapping on all swap devices)
but it gives me an error - swapoff: /etc/fstab: No such file or directory.


So, my Queries are as follows:


Why and how does SWAP gets enabled automatically? Is the kernel or
ROM responsible for it?
When actually could the SWAP partition be    created when I didn't do
it manually? On flashing the ROM?
What I'm doing wrong in the swapoff comand? After reading about the
same    error, I think it's related to the location of the swapfile.
So, how    can I know the location of the swapfile? Any suggestions
on disabling    the SWAP permanently or making kswapd0 use less CPU
if the lag is not    directly related to SWAP?


(Originally posted on XDA)
It might not be possible to disable kswapd0. Even if it's possible to disable it, you should not try. You see, kswapd0 does important work even if you don't have a swap file.

On the Ubuntu Stack Exchange website, psusi explains:


  Swap space is only used for data that is not backed by any other file. Data that is mapped from other files on disk (such as executable programs) is still swapped to their respective files even if you don't have a swap device.


You should visit psusi's original answer and vote it up.