<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace">On Wed, 15 Jan 2020 18:23:05 +0530, Anupam Kapoor said:<br>>> On Wed, 15 Jan 2020 at 6:02 PM Sumit Kumar <<a href="mailto:sumit686215@gmail.com">sumit686215@gmail.com</a>> wrote:<br>>>> Does C/C++ provide any API / system call that enables user to force the<br>>>> application to transfer some its physical pages to swap disk ? If so, is it<br>>>> also possible to obtain the least used page using some API ?<br><br></div><div class="gmail_default" style="font-family:monospace,monospace">>> would madvise not serve your needs ?<br><br>> There's this word "force" in the question.<br><br>> The problem is that madvise() is *advice* to the kernel, not a strict<br>> guarantee.  There's a difference between "If you need to move pages<br>> to disk, consider these pages first" and "Move them to disk now, whether<br>> you really wanted to or not".<br clear="all"></div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">ofcourse (afaik) there is no way for the application to force the<br>*kernel* to do something like this. </div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">but if _all_ that is required is randomly unmapping some marked </div><div class="gmail_default" style="font-family:monospace,monospace">application pages, _that_ can be naively 'done' by the application </div><div class="gmail_default" style="font-family:monospace,monospace">itself :) </div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">for example, have a list of unmappable pages and an unmapper thread </div><div class="gmail_default" style="font-family:monospace,monospace">which does the unmapping for you (picking any element in the list </div><div class="gmail_default" style="font-family:monospace,monospace">at random) <br></div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">--</div><div class="gmail_default" style="font-family:monospace,monospace">kind regards</div><div class="gmail_default" style="font-family:monospace,monospace">anupam</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><font face="monospace, monospace">In the beginning was the lambda, and the lambda was with Emacs, and Emacs was the lambda. </font></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Jan 18, 2020 at 3:10 PM Valdis Klētnieks <<a href="mailto:valdis.kletnieks@vt.edu">valdis.kletnieks@vt.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, 15 Jan 2020 18:23:05 +0530, Anupam Kapoor said:<br>
> On Wed, 15 Jan 2020 at 6:02 PM Sumit Kumar <<a href="mailto:sumit686215@gmail.com" target="_blank">sumit686215@gmail.com</a>> wrote:<br>
> > Does C/C++ provide any API / system call that enables user to force the<br>
> > application to transfer some its physical pages to swap disk ? If so, is it<br>
> > also possible to obtain the least used page using some API ?<br>
> would madvise not serve your needs ?<br>
<br>
There's this word "force" in the question.<br>
<br>
The problem is that madvise() is *advice* to the kernel, not a strict<br>
guarantee.  There's a difference between "If you need to move pages<br>
to disk, consider these pages first" and "Move them to disk now, whether<br>
you really wanted to or not".<br>
<br>
</blockquote></div>