title: Wrong pointers while trying to allocate pages in kernel virtual address space
body: <p>I am working on a Linux driver on x86-64 CentOS 7. 
  We have a kernel module  which reads and writes into files .
  This module tries to get pages which are guaranteed to be contiguous.
  It works fine when I try smaller <code>read/write</code> jobs of 5 GB or 10 GB. I get correct kernel virtual address space pointers like <code>0xffff 8xxx xxxx xxxx</code><br>
  However if I try a bigger job /data (say 20 to 50 GB) then I get these address pointers which look like <code>0x0000 00xx xxxx xxxxx</code> . These are not kernel virtual address space pointers.</p>
  
  <p>Due to this I see a OS crash .
  However, if I clear cache frequency during the job by using <code>echo 3 &gt; /proc/sys/vm/drop_caches</code>  then it works fine and I get correct kernel virtual address space pointers.</p>
  
  <p>My apologies for this vague type of question. 
  Any hints and suggestion are welcome. </p>
  
  <p>Thanks</p>