<div dir="ltr">Well I don&#39;t think I&#39;ll have to write a custom allocator. Existing allocators allow you to have placement allocation, or rather more precisely, manage sub-buffers within a static buffer. By this I mean that the sub buffer is treated as though it were an existing slab given to the process by the OS, but instead of actually servicing it with new and free, you place a table in it that acts just like the table that libc manages and coalesces during regular management with typical use. In any case, I think I don&#39;t have to do this because it&#39;s just a regular consumer producer issue, and I can use ring buffers for that.</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 7, 2015 at 1:02 PM, Greg KH <span dir="ltr">&lt;<a href="mailto:greg@kroah.com" target="_blank">greg@kroah.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, Oct 06, 2015 at 10:46:49AM -0400, Kenneth Adam Miller wrote:<br>
&gt; Let me be more precise in general to the overall original question:<br>
&gt;<br>
&gt; I want a userland process that I designate to only use a specific hard coded<br>
&gt; region physical of memory for it&#39;s heap. A UIO driver is the means by which<br>
&gt; I&#39;ve gone about seeking to achieve this. <br>
<br>
</span>Use LD_PRELOAD to hook into your custom library that handles the<br>
allocation to this special portion of memory that you grabbed from the<br>
hardware using the UIO kernel interface instead of the &quot;normal&quot; libc<br>
allocator, and you will be fine.  But you will have to write a custom<br>
allocator, there&#39;s no other way around that.<br>
<br>
The kernel gives you the ability to do this today, no kernel changes<br>
needed, it&#39;s all &quot;just&quot; userspace code you will have to do on your own.<br>
<br>
Best of luck, that&#39;s going to be some &quot;fun&quot; work :)<br>
<br>
greg k-h<br>
</blockquote></div><br></div>