Suppose A and B have mapped the same physical memory or shmem file. I want a way to make process A forcefuly revoke/remap the existing shared memory mappings in process B, so that B sees whatever A does. <br><br>On Monday, January 12, 2015, Pranay Srivastava &lt;<a href="mailto:pranjas@gmail.com">pranjas@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Riya,<br>
<br>
<br>
On Mon, Jan 12, 2015 at 2:08 AM, riya khanna &lt;<a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;riyakhanna1983@gmail.com&#39;)">riyakhanna1983@gmail.com</a>&gt; wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; Is there a way, w.r.t memory contents, to make a process B see what<br>
&gt; process A sees through shared memory mappings?<br>
&gt;<br>
&gt; Suppose Process A has mapped a device file (say F) at address<br>
&gt; 0xaaaaaaaa in its address space. Is it possible for process B to see<br>
&gt; the same device file F contents as process A via shared memory<br>
&gt; mappings? If mapped in process B&#39;s address space, would process B<br>
&gt; continue to to see the old contents if process A were to map a new<br>
&gt; device file (say N) at the same address 0xaaaaaaaa in its address<br>
&gt; space or do they have independent mappings?<br>
<br>
It depends on the driver mapping that specific memory address. If it<br>
so chooses that every process trying to map that address needs to have<br>
an independent page then it&#39;ll do that. But normally if the driver<br>
allows mmapping device then it&#39;ll be a separate copy.<br>
<br>
&gt;<br>
&gt; So basically I&#39;m trying to understand if there could be virtual to<br>
&gt; virtual mappings (e.g. process B mapping process A&#39;s memory, so that B<br>
&gt; sees whatever A sees)?<br>
<br>
This means you are getting two separate pages when you mmap the device?<br>
<br>
Normally your driver won&#39;t give you same page since once a page is<br>
mapped simple writes(like assignments etc) won&#39;t trigger any fault<br>
which might give the driver a chance to do proper locking semantics<br>
when both processes are writing at same time using just an assignment.<br>
<br>
What you can do is create a shared mapping between the two processes A<br>
and B then fill that mapping from whoever wins the race to update this<br>
shared mapping between them. You can add some information if the<br>
information needs to be updated again in this shared region between A<br>
and B.<br>
<br>
Can you tell more about your problem?<br>
&gt;<br>
&gt; Thanks for your help!<br>
&gt;<br>
&gt; -Riya<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Kernelnewbies mailing list<br>
&gt; <a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;Kernelnewbies@kernelnewbies.org&#39;)">Kernelnewbies@kernelnewbies.org</a><br>
&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
<br>
<br>
<br>
--<br>
        ---P.K.S<br>
</blockquote>