1*e5df9dc1SAsim Jamshed<!-- Creator : groff version 1.22.3 --> 2*e5df9dc1SAsim Jamshed<!-- CreationDate: Mon Aug 28 02:48:47 2017 --> 3*e5df9dc1SAsim Jamshed<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 4*e5df9dc1SAsim Jamshed"http://www.w3.org/TR/html4/loose.dtd"> 5*e5df9dc1SAsim Jamshed<html> 6*e5df9dc1SAsim Jamshed<head> 7*e5df9dc1SAsim Jamshed<meta name="generator" content="groff -Thtml, see www.gnu.org"> 8*e5df9dc1SAsim Jamshed<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> 9*e5df9dc1SAsim Jamshed<meta name="Content-Style" content="text/css"> 10*e5df9dc1SAsim Jamshed<style type="text/css"> 11*e5df9dc1SAsim Jamshed p { margin-top: 0; margin-bottom: 0; vertical-align: top } 12*e5df9dc1SAsim Jamshed pre { margin-top: 0; margin-bottom: 0; vertical-align: top } 13*e5df9dc1SAsim Jamshed table { margin-top: 0; margin-bottom: 0; vertical-align: top } 14*e5df9dc1SAsim Jamshed h1 { text-align: center } 15*e5df9dc1SAsim Jamshed</style> 16*e5df9dc1SAsim Jamshed<title>mtcp_core_affinitize</title> 17*e5df9dc1SAsim Jamshed<link rel="stylesheet" href="./common.css"> 18*e5df9dc1SAsim Jamshed</head> 19*e5df9dc1SAsim Jamshed<body> 20*e5df9dc1SAsim Jamshed<div class="main"> 21*e5df9dc1SAsim Jamshed<h1 align="center">mtcp_core_affinitize</h1> 22*e5df9dc1SAsim Jamshed<!-- 23*e5df9dc1SAsim Jamshed<a href="#NAME">NAME</a><br> 24*e5df9dc1SAsim Jamshed<a href="#SYNOPSIS">SYNOPSIS</a><br> 25*e5df9dc1SAsim Jamshed<a href="#DESCRIPTION">DESCRIPTION</a><br> 26*e5df9dc1SAsim Jamshed<a href="#RETURN VALUE">RETURN VALUE</a><br> 27*e5df9dc1SAsim Jamshed<a href="#NOTES">NOTES</a><br> 28*e5df9dc1SAsim Jamshed<a href="#AUTHORS">AUTHORS</a><br> 29*e5df9dc1SAsim Jamshed<a href="#SEE ALSO">SEE ALSO</a><br> 30*e5df9dc1SAsim Jamshed<a href="#COLOPHON">COLOPHON</a><br> 31*e5df9dc1SAsim Jamshed 32*e5df9dc1SAsim Jamshed<hr> 33*e5df9dc1SAsim Jamshed--> 34*e5df9dc1SAsim Jamshed 35*e5df9dc1SAsim Jamshed<h2>NAME 36*e5df9dc1SAsim Jamshed<a name="NAME"></a> 37*e5df9dc1SAsim Jamshed</h2> 38*e5df9dc1SAsim Jamshed 39*e5df9dc1SAsim Jamshed 40*e5df9dc1SAsim Jamshed 41*e5df9dc1SAsim Jamshed<p style="margin-left:11%; margin-top: 1em">mtcp_core_affinitize 42*e5df9dc1SAsim Jamshed− bind a calling thread to a specific CPU core</p> 43*e5df9dc1SAsim Jamshed 44*e5df9dc1SAsim Jamshed<h2>SYNOPSIS 45*e5df9dc1SAsim Jamshed<a name="SYNOPSIS"></a> 46*e5df9dc1SAsim Jamshed</h2> 47*e5df9dc1SAsim Jamshed 48*e5df9dc1SAsim Jamshed 49*e5df9dc1SAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><b>#include 50*e5df9dc1SAsim Jamshed<mtcp_api.h></b></p> 51*e5df9dc1SAsim Jamshed 52*e5df9dc1SAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><b>int 53*e5df9dc1SAsim Jamshedmtcp_core_affinitize(int</b> <i>cpu</i><b>);</b></p> 54*e5df9dc1SAsim Jamshed 55*e5df9dc1SAsim Jamshed<h2>DESCRIPTION 56*e5df9dc1SAsim Jamshed<a name="DESCRIPTION"></a> 57*e5df9dc1SAsim Jamshed</h2> 58*e5df9dc1SAsim Jamshed 59*e5df9dc1SAsim Jamshed 60*e5df9dc1SAsim Jamshed 61*e5df9dc1SAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><b>mtcp_core_affinitize</b>() 62*e5df9dc1SAsim Jamshedbinds a calling thread to a specifc CPU core. This function 63*e5df9dc1SAsim Jamshedis a utility function which internally performs 64*e5df9dc1SAsim Jamshed<b>sched_setaffinity</b>() for dedicating one CPU to a 65*e5df9dc1SAsim Jamshedparticular thread, and <b>numa_set_membind</b>() for 66*e5df9dc1SAsim Jamshedrestricting any future memory allocation to happen within 67*e5df9dc1SAsim Jamshedthe NUMA node.</p> 68*e5df9dc1SAsim Jamshed 69*e5df9dc1SAsim Jamshed<p style="margin-left:11%; margin-top: 1em">This function 70*e5df9dc1SAsim Jamshedis used by end TCP applications to pin their application 71*e5df9dc1SAsim Jamshedthreads to a specific core in order to gain performance 72*e5df9dc1SAsim Jamshedbenefits. For example, restricting an application thread to 73*e5df9dc1SAsim Jamshedrun on a single CPU core avoids any cache invalidation that 74*e5df9dc1SAsim Jamshedcan be caused when the thread is moved from one CPU core to 75*e5df9dc1SAsim Jamshedanother CPU core.</p> 76*e5df9dc1SAsim Jamshed 77*e5df9dc1SAsim Jamshed<p style="margin-left:11%; margin-top: 1em">The function 78*e5df9dc1SAsim Jamshedrequires a sole <i>cpu</i> integer argument that passes the 79*e5df9dc1SAsim JamshedCPU core-id of the system on which the stack is 80*e5df9dc1SAsim Jamshedinstantiated.</p> 81*e5df9dc1SAsim Jamshed 82*e5df9dc1SAsim Jamshed<h2>RETURN VALUE 83*e5df9dc1SAsim Jamshed<a name="RETURN VALUE"></a> 84*e5df9dc1SAsim Jamshed</h2> 85*e5df9dc1SAsim Jamshed 86*e5df9dc1SAsim Jamshed 87*e5df9dc1SAsim Jamshed<p style="margin-left:11%; margin-top: 1em">Returns 0 on 88*e5df9dc1SAsim Jamshedsuccess; -1 on failure.</p> 89*e5df9dc1SAsim Jamshed 90*e5df9dc1SAsim Jamshed<h2>NOTES 91*e5df9dc1SAsim Jamshed<a name="NOTES"></a> 92*e5df9dc1SAsim Jamshed</h2> 93*e5df9dc1SAsim Jamshed 94*e5df9dc1SAsim Jamshed 95*e5df9dc1SAsim Jamshed<p style="margin-left:11%; margin-top: 1em">Passing an 96*e5df9dc1SAsim Jamshedinvalid CPU core-id (value < 0 or value > max_cpus) 97*e5df9dc1SAsim Jamshedwill prevent the creation of the mTCP stack.</p> 98*e5df9dc1SAsim Jamshed 99*e5df9dc1SAsim Jamshed<h2>AUTHORS 100*e5df9dc1SAsim Jamshed<a name="AUTHORS"></a> 101*e5df9dc1SAsim Jamshed</h2> 102*e5df9dc1SAsim Jamshed 103*e5df9dc1SAsim Jamshed 104*e5df9dc1SAsim Jamshed<p style="margin-left:11%; margin-top: 1em">mOS development 105*e5df9dc1SAsim Jamshedteam <[email protected]></p> 106*e5df9dc1SAsim Jamshed 107*e5df9dc1SAsim Jamshed<h2>SEE ALSO 108*e5df9dc1SAsim Jamshed<a name="SEE ALSO"></a> 109*e5df9dc1SAsim Jamshed</h2> 110*e5df9dc1SAsim Jamshed 111*e5df9dc1SAsim Jamshed 112*e5df9dc1SAsim Jamshed 113*e5df9dc1SAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><b>mtcp_create_context</b>()</p> 114*e5df9dc1SAsim Jamshed 115*e5df9dc1SAsim Jamshed<h2>COLOPHON 116*e5df9dc1SAsim Jamshed<a name="COLOPHON"></a> 117*e5df9dc1SAsim Jamshed</h2> 118*e5df9dc1SAsim Jamshed 119*e5df9dc1SAsim Jamshed 120*e5df9dc1SAsim Jamshed<p style="margin-left:11%; margin-top: 1em">This page is 121*e5df9dc1SAsim Jamshedpart of mOS release 0.3 <i>docs</i> section. A description 122*e5df9dc1SAsim Jamshedof the project, and information about reporting bugs, can be 123*e5df9dc1SAsim Jamshedfound at http://mos.kaist.edu/.</p> 124*e5df9dc1SAsim Jamshed<hr> 125*e5df9dc1SAsim Jamshed<div class="footer"> 126*e5df9dc1SAsim Jamshed <img src="back-arrow.jpg" width="2%" height="2%"><a href="http://mos.kaist.edu/index_man.html">Back to Index</a> 127*e5df9dc1SAsim Jamshed</div> 128*e5df9dc1SAsim Jamshed</div> 129*e5df9dc1SAsim Jamshed</body> 130*e5df9dc1SAsim Jamshed</html> 131