special handling of page faults

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

 



Hello all,

I am investigating alternative ways of swapping memory. For my purposes I have a kernel module that emulates a device in which I can write memory pages temporarily.


I have two events that I m interested in, both of them might occur during the page fault handling. The first case is sending the victim page (more accurately the victim pages of a vm_area_struct) during a page fault to this device instead of the disk. At this time a special flag will be set that will mark the pages of the memory region as present to the particular device. The second case is when, during a page fault I find out that the pages I m looking for are located to the device, and I need to bring them back to the main memory (as I would with normal swapping in).

I'm working with kernel 2.6.32 and I ve read quite a lot in Understanding the Linux Kernel (there are some slight changes to the memory subsystem comparing to the 2.6.11 that the book presents) and I think I know where I should hook my code.

For now I m only interested in the kind of memory that is allocated through a malloc or an mmap with anonymous mapping from the user space, not file mappings, DMA or kernel data.

My question is:

Which is the cleanest way to do so? Is there a way to do it, using a module and not touching kernel code? Are there any hooks to that part of the memory subsystem? (From what I was able to understand, there is not an interface that allows me to alter the way page faults are handled).

 
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux