<div dir="ltr">Hi Nikhil,<div><br></div><div>memblock_reserve() adds a given memory to the &quot;memblock.reserved&quot; list, it ends up to mark the given range of pages as &quot;reserved&quot;. It means the pages are reserved and will not be allocated to other users. The kernel still can see the pages, create linear mappings on them, even access them by linear mappings. </div><div><br></div><div>memblock_remove() removes a given memory from the &quot;memblock.memory&quot; list, it ends to removed from kernel&#39;s memory management system. The memory will not have page structure, no linear mapping on them. It prevents the memory from CPU accessing by the linear address. To access the memory (by CPU), you must use ioremap() to create a mapping to them.</div><div><br></div><div><br></div><div>MH Chen</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 9, 2016 at 5:29 PM, Nikhil Utane <span dir="ltr">&lt;<a href="mailto:nikhil.subscribed@gmail.com" target="_blank">nikhil.subscribed@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><span style="color:rgb(36,39,41);font-family:arial,&quot;helvetica neue&quot;,helvetica,sans-serif;font-size:15px;line-height:19.5px">Hi,</span></div><span class=""><div class="gmail_extra"><span style="color:rgb(36,39,41);font-family:arial,&quot;helvetica neue&quot;,helvetica,sans-serif;font-size:15px;line-height:19.5px"><br></span></div><div class="gmail_extra"><span style="color:rgb(36,39,41);font-family:arial,&quot;helvetica neue&quot;,helvetica,sans-serif;font-size:15px;line-height:19.5px">I want to reserve a physical memory page with a fixed PFN. I do not want this page to be used by anyone else. I am calling memblock_reserve() to supposedly reserve the page. I am writing some content into this page. What I see is that during some runs the content of this page is modified (either fully or sometimes partially). In few runs, I see it as intact. Is it expected that even after calling memblock_reserve() the kernel can allocate this physical page for any other purpose? How is memblock_remove() different from memblock_reserve? I tried reading up but didn&#39;t see any useful information. What I understood is memblock_remove will completely remove from kernel&#39;s allocation mechanism. Should I then be using remove instead of reserve? </span><br></div><div class="gmail_extra"><span style="color:rgb(36,39,41);font-family:arial,&quot;helvetica neue&quot;,helvetica,sans-serif;font-size:15px;line-height:19.5px"><br></span></div><div class="gmail_extra"><span style="color:rgb(36,39,41);font-family:arial,&quot;helvetica neue&quot;,helvetica,sans-serif;font-size:15px;line-height:19.5px">-Thanks</span></div><div class="gmail_extra"><span style="color:rgb(36,39,41);font-family:arial,&quot;helvetica neue&quot;,helvetica,sans-serif;font-size:15px;line-height:19.5px">Nikhil</span></div></span></div>
<br>______________________________<wbr>_________________<br>
Kernelnewbies mailing list<br>
<a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.<wbr>org</a><br>
<a href="https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" rel="noreferrer" target="_blank">https://lists.kernelnewbies.<wbr>org/mailman/listinfo/<wbr>kernelnewbies</a><br>
<br></blockquote></div><br></div>