tag:blogger.com,1999:blog-60834399946605403942024-03-12T22:46:00.913-07:00Kernel StuffSandhya Bankarhttp://www.blogger.com/profile/05699980933586164639noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-6083439994660540394.post-49867700926696193982018-07-12T23:57:00.001-07:002020-04-11T08:03:37.043-07:00LinuxCon + ContainerCon + CloudOpen Beijing China 2018 - LF Asia, LLC<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="wpb_row vc_row-fluid vc_row standard_section" data-bg-mobile-hidden="" data-midnight="dark" id="fws_5b4848a48be19" style="background-color: white; border: 0px; box-sizing: border-box; color: #676767; margin: 0px 0px 35px; outline: 0px; padding: 0px; position: relative; vertical-align: baseline;">
<div class="wpb_row vc_row-fluid vc_row standard_section" data-bg-mobile-hidden="" data-midnight="dark" id="fws_5b4848a48be19" style="border: 0px; box-sizing: border-box; font-family: "open sans"; font-size: 16px; margin: 0px 0px 35px; outline: 0px; padding: 0px; position: relative; vertical-align: baseline;">
<div class="col span_12 dark left" style="border: 0px; box-sizing: border-box; float: left; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; position: relative; vertical-align: baseline; width: 1169px; z-index: 10;">
<div class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding instance-4 no-left-margin" data-animation="" data-bg-color="" data-bg-cover="" data-bg-opacity="1" data-border-animation-delay="" data-border-animation="" data-border-color="" data-border-radius="none" data-border-style="solid" data-border-width="none" data-delay="0" data-has-bg-color="false" data-hover-bg-opacity="1" data-hover-bg="" data-padding-pos="all" data-shadow="none" style="background-position: center center; border: 0px; box-sizing: border-box; float: left; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; min-height: 1px; outline: 0px; padding: 0px; position: relative; vertical-align: baseline; width: 1169px;">
<div class="vc_column-inner" style="border: 0px; box-sizing: border-box; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div class="wpb_wrapper" style="border: 0px; box-sizing: border-box; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<h2 style="border: 0px; box-sizing: border-box; color: #444444; font-size: 24px; font-style: inherit; letter-spacing: 0px; line-height: 36px; margin: 0px 0px 8px; outline: 0px; padding: 0px; vertical-align: baseline;">
About</h2>
</div>
</div>
</div>
</div>
</div>
<div class="wpb_row vc_row-fluid vc_row standard_section" data-bg-mobile-hidden="" data-midnight="dark" id="fws_5b4848a48cdd4" style="border: 0px; box-sizing: border-box; color: black; margin: 0px 0px 35px; outline: 0px; padding: 0px 0px 100px; position: relative; vertical-align: baseline;">
<div class="row-bg-wrap instance-4" style="border: 0px; box-sizing: border-box; color: #676767; font-family: inherit; font-size: 16px; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div class="inner-wrap" style="border: 0px; box-sizing: border-box; font-family: inherit; font-style: inherit; font-weight: inherit; height: 409px; left: 0px; margin: 0px; outline: 0px; overflow: hidden; padding: 0px; position: absolute; top: 0px; vertical-align: baseline; width: 1170.16px; z-index: 1;">
<div class="row-bg" data-color_overlay="" data-color_overlay_2="" data-enable_gradient="false" data-gradient_direction="" data-overlay_strength="0.3" style="background-size: cover; border: 0px; box-sizing: border-box; font-family: inherit; font-style: inherit; font-weight: inherit; height: 409px; left: 0px; margin: 0px; outline: 0px; padding: 0px; position: absolute; top: 0px; vertical-align: baseline; width: 1170.16px;">
</div>
<div class="row-bg" data-color_overlay="" data-color_overlay_2="" data-enable_gradient="false" data-gradient_direction="" data-overlay_strength="0.3" style="background-size: cover; border: 0px; box-sizing: border-box; font-family: inherit; font-style: inherit; font-weight: inherit; height: 409px; left: 0px; margin: 0px; outline: 0px; padding: 0px; position: absolute; top: 0px; vertical-align: baseline; width: 1170.16px;">
<br /></div>
</div>
</div>
<div class="col span_12 dark left" style="border: 0px; box-sizing: border-box; float: left; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; position: relative; vertical-align: baseline; width: 1169px; z-index: 10;">
<div class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding instance-5 no-left-margin" data-animation="" data-bg-color="" data-bg-cover="" data-bg-opacity="1" data-border-animation-delay="" data-border-animation="" data-border-color="" data-border-radius="none" data-border-style="solid" data-border-width="none" data-delay="0" data-has-bg-color="false" data-hover-bg-opacity="1" data-hover-bg="" data-padding-pos="all" data-shadow="none" style="background-position: center center; border: 0px; box-sizing: border-box; float: left; font-style: inherit; margin: 0px; min-height: 1px; outline: 0px; padding: 0px; position: relative; vertical-align: baseline; width: 1169px;">
<div class="vc_column-inner" style="border: 0px; box-sizing: border-box; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div class="wpb_wrapper" style="border: 0px; box-sizing: border-box; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div class="wpb_text_column wpb_content_element" style="border: 0px; box-sizing: border-box; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div class="wpb_wrapper" style="border: 0px; box-sizing: border-box; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div class="wpb_text_column wpb_content_element" style="border: 0px; box-sizing: border-box; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div class="wpb_wrapper" style="border: 0px; box-sizing: border-box; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div style="border: 0px; box-sizing: border-box; font-style: inherit; outline: 0px; padding: 0px; text-align: justify; vertical-align: baseline;">
<div style="text-align: left;">
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><b><br /></b></span>
<b style="font-style: inherit;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;">At LC3, attendees can expect to collaborate, share information and learn about the newest</span></b></div>
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><b> and most interesting open source technologies, including Linux, containers, cloud technologies, </b></span></div>
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><b>networking, microservices and more; in addition to gaining insight into how to navigate and</b></span></div>
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><b> lead in the open source community. Three conferences in one, this event is a technical conference</b></span></div>
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><b> for developers, operations experts (architects, sysadmins, develops), business, compliance and</b></span></div>
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><b> legal leadership and other professionals to come together in an informal setting to learn from</b></span></div>
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><b> open source experts, have fascinating discussions, collaborate with peers, and gain a competitive</b></span></div>
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><b> the advantage with innovative open solutions.</b></span><br />
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><b><br /></b></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf4gpKu8mOc89nKxw80HAXOXMJBTo1ByUsWzhnmEDAsTtQYBP19e_g3hi6M6FJao5yoifJZNY8V0Dm-xXcvgyEN8NoRTV5fCz1jEu-65j-wxtFTHWp85yYVUa9nHMF0CstkrC3r5D4IPdc/s1600/IMG_1696+-+Copy.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf4gpKu8mOc89nKxw80HAXOXMJBTo1ByUsWzhnmEDAsTtQYBP19e_g3hi6M6FJao5yoifJZNY8V0Dm-xXcvgyEN8NoRTV5fCz1jEu-65j-wxtFTHWp85yYVUa9nHMF0CstkrC3r5D4IPdc/s640/IMG_1696+-+Copy.JPG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihVvJvh6FGXMG7RrJi90UXnHf0DUtlGeSEPPUWMF4NgJ6dVJEdjvCDlDU79SmKyxhY2V8LTTIVWOoNlvErgGGgvppL6Ycznn5Y2OoMYybbdOTuX73F2LuHJQQiGiaZ282UESTBJObdeVvp/s1600/IMG_1702+-+Copy.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1499" data-original-width="1600" height="599" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihVvJvh6FGXMG7RrJi90UXnHf0DUtlGeSEPPUWMF4NgJ6dVJEdjvCDlDU79SmKyxhY2V8LTTIVWOoNlvErgGGgvppL6Ycznn5Y2OoMYybbdOTuX73F2LuHJQQiGiaZ282UESTBJObdeVvp/s640/IMG_1702+-+Copy.JPG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIbNFCo1ON2hEJn3DurW6G-D_-mWWkaSGEgoIMv6gfN1BsLwqLYIkBFGuZiYc9avEQv1LVpYoexZLSx-PZLFkqxQDD_d-TZog7MzXIYSRB1nocKUB9Hi-i9JDdnbaE45EQDeHn4BooK2nS/s1600/IMG_1755+-+Copy.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIbNFCo1ON2hEJn3DurW6G-D_-mWWkaSGEgoIMv6gfN1BsLwqLYIkBFGuZiYc9avEQv1LVpYoexZLSx-PZLFkqxQDD_d-TZog7MzXIYSRB1nocKUB9Hi-i9JDdnbaE45EQDeHn4BooK2nS/s640/IMG_1755+-+Copy.JPG" width="480" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuI-UHueNzhUFhlur3Qcl00jeruEUO0Dk22YXk3DMNxgAypIfJXCFNvwDtiBDCo9IysgQfi4Gw0bXXpRZyBXZR4UxNnhWCWLl7sonSxCDQCA7Fztng8IMQtseMjjQ6gGVWKo6Ko608L1wC/s1600/IMG_2011+-+Copy.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuI-UHueNzhUFhlur3Qcl00jeruEUO0Dk22YXk3DMNxgAypIfJXCFNvwDtiBDCo9IysgQfi4Gw0bXXpRZyBXZR4UxNnhWCWLl7sonSxCDQCA7Fztng8IMQtseMjjQ6gGVWKo6Ko608L1wC/s640/IMG_2011+-+Copy.JPG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD3tJpWjWDCVqqpoSD1Nf5JzpAebroOiBjHgmxkTGzX2cTiAi0PitCa8asuHabOWHgkzAn3v7huwDaPEmENYEuayBzg-c2Lid5vRLekYBYg5HOdgT9P11MXu4zvxf-JhNC2DZNEGmKIikx/s1600/IMG_2011.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD3tJpWjWDCVqqpoSD1Nf5JzpAebroOiBjHgmxkTGzX2cTiAi0PitCa8asuHabOWHgkzAn3v7huwDaPEmENYEuayBzg-c2Lid5vRLekYBYg5HOdgT9P11MXu4zvxf-JhNC2DZNEGmKIikx/s640/IMG_2011.JPG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiGt81lgnLKue8cRwobCiZbg-7s3RZobBbSh7mSxHL3l5e2_tKNbANL9tQLQXAJgjuHni8tdaoj0JsFrMBM6huAtLlRHiPOd0NFjliG-bVmKkzPXYfwgl1ERUixPZXvR3TRxdif8jlY7ei/s1600/IMG_2012.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiGt81lgnLKue8cRwobCiZbg-7s3RZobBbSh7mSxHL3l5e2_tKNbANL9tQLQXAJgjuHni8tdaoj0JsFrMBM6huAtLlRHiPOd0NFjliG-bVmKkzPXYfwgl1ERUixPZXvR3TRxdif8jlY7ei/s640/IMG_2012.JPG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCJji7Oxpq766RNKl5FZEqUvIEYoSIMu8OeQxBrJ5iVlzoHD6c053Cm5LTy3VwTokfysc_fmH95SpD1bhwIbYl4SZ3FMbp91yYRTBnRqWjveQ3Cuu_id6DoJlKOg7zFh5ObHULLHJCawDQ/s1600/IMG_2054.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1377" data-original-width="1043" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCJji7Oxpq766RNKl5FZEqUvIEYoSIMu8OeQxBrJ5iVlzoHD6c053Cm5LTy3VwTokfysc_fmH95SpD1bhwIbYl4SZ3FMbp91yYRTBnRqWjveQ3Cuu_id6DoJlKOg7zFh5ObHULLHJCawDQ/s1600/IMG_2054.JPG" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR0fF8-8cGLfGPfb5BpZV5oikbYB0L_mlJ2rSqbufTSeX5CP12_2kthcKn_aNeY7TRcFlyHshaTOIsQAdmLC739kd62QglnV6T2NQfS3AYAv1-0U6DfWS1LZ3r_wp115tTq6Gf3NqmchWS/s1600/IMG_2238.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1380" data-original-width="1600" height="552" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR0fF8-8cGLfGPfb5BpZV5oikbYB0L_mlJ2rSqbufTSeX5CP12_2kthcKn_aNeY7TRcFlyHshaTOIsQAdmLC739kd62QglnV6T2NQfS3AYAv1-0U6DfWS1LZ3r_wp115tTq6Gf3NqmchWS/s640/IMG_2238.JPG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfoJinwcDlDY_ldTMeh3pk_eL5V_q5wH_0ZnvLvQefOxEq2wlFSS2jnGjAaLhqpk5XKh6Xfu2C2dFkNAMv_V8X3hOrKOLZbvXXwcljvEyurd71QNAUuQ3b6iF1mjGlm01BRu1sBUtO8Pz1/s1600/IMG_2244+-+Copy.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1079" data-original-width="1600" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfoJinwcDlDY_ldTMeh3pk_eL5V_q5wH_0ZnvLvQefOxEq2wlFSS2jnGjAaLhqpk5XKh6Xfu2C2dFkNAMv_V8X3hOrKOLZbvXXwcljvEyurd71QNAUuQ3b6iF1mjGlm01BRu1sBUtO8Pz1/s640/IMG_2244+-+Copy.JPG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf0hgK0lq5n2gXtJh_Yl4Mp4lqC5co3aC6pCy4K9qEJSnD2_1uGIouWKImokEjGbdcN6XeT2tUjfsA_i3WGnXxxlqfCiiyIMKdKpYuSZTfF77P1Yv8hPZgfHCKGjHI_Fe_fmM9-2YykOaZ/s1600/IMG_2281+-+Copy.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1424" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf0hgK0lq5n2gXtJh_Yl4Mp4lqC5co3aC6pCy4K9qEJSnD2_1uGIouWKImokEjGbdcN6XeT2tUjfsA_i3WGnXxxlqfCiiyIMKdKpYuSZTfF77P1Yv8hPZgfHCKGjHI_Fe_fmM9-2YykOaZ/s640/IMG_2281+-+Copy.JPG" width="569" /></a></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYhS1K4T8XSMGoyC1wLm_w5qX5Me6uilDnGh3Nm-Sdu2nOF-675Pva7AVxUklvBvG43ZDDQQNHcFscJZtjGa8leaZDYNUJrGbeoDj1dfKQr8qOnxw6G543LVqN28kc79Ys6iOwWk02E6i3/s1600/IMG_2279.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYhS1K4T8XSMGoyC1wLm_w5qX5Me6uilDnGh3Nm-Sdu2nOF-675Pva7AVxUklvBvG43ZDDQQNHcFscJZtjGa8leaZDYNUJrGbeoDj1dfKQr8qOnxw6G543LVqN28kc79Ys6iOwWk02E6i3/s640/IMG_2279.JPG" width="640" /></a><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDu6SCQGC-dm85GeABI81wUYNUXeCaXNiTgyvGsU3zCLjsL2gW1YMiXuPb2mjM4l_1NmTHBB7Ar6RIvbSYuOddjo_K0VG6zalc5Bbtz8nqYEyVq7B1hJDOqUEm1qr1m5Y7ejh0Lubmplcx/s1600/IMG_3298.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDu6SCQGC-dm85GeABI81wUYNUXeCaXNiTgyvGsU3zCLjsL2gW1YMiXuPb2mjM4l_1NmTHBB7Ar6RIvbSYuOddjo_K0VG6zalc5Bbtz8nqYEyVq7B1hJDOqUEm1qr1m5Y7ejh0Lubmplcx/s1600/IMG_3298.JPG" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWUzu_AtR-5ijOaZ1gQ2c02qtd3J-tXKaVcWDAJFo5ZuQfPuYCys-a_zDZxzoi9_Mq5LyC8nB-WeIfcOM2315lJkGFyjDxzomJA5pY1TO1ziZ2SnY_o5creLm5UxtigTC0uHoAt3R6DUDF/s1600/IMG_E1716.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1593" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWUzu_AtR-5ijOaZ1gQ2c02qtd3J-tXKaVcWDAJFo5ZuQfPuYCys-a_zDZxzoi9_Mq5LyC8nB-WeIfcOM2315lJkGFyjDxzomJA5pY1TO1ziZ2SnY_o5creLm5UxtigTC0uHoAt3R6DUDF/s640/IMG_E1716.JPG" width="636" /></a></div>
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><b><br /></b></span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Sandhya Bankarhttp://www.blogger.com/profile/05699980933586164639noreply@blogger.com0tag:blogger.com,1999:blog-6083439994660540394.post-16503578443401322772018-07-12T23:50:00.001-07:002020-04-11T08:07:44.358-07:00LinuxCon + ContainerCon + CloudOpen China 2018 - LF Asia, LLC<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: center;">
<br /></div>
<div class="wpb_row vc_row-fluid vc_row standard_section" data-bg-mobile-hidden="" data-midnight="dark" id="fws_5b4848a48be19" style="background-color: white; border: 0px; box-sizing: border-box; color: #676767; font-family: "Open Sans"; font-size: 16px; margin: 0px 0px 35px; outline: 0px; padding: 0px; position: relative; vertical-align: baseline;">
<div class="row-bg-wrap instance-3" style="border: 0px; box-sizing: border-box; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div class="inner-wrap" style="border: 0px; box-sizing: border-box; font-family: inherit; font-style: inherit; font-weight: inherit; height: 44px; left: 0px; margin: 0px; outline: 0px; overflow: hidden; padding: 0px; position: absolute; top: 0px; vertical-align: baseline; width: 1170.16px; z-index: 1;">
<div class="row-bg" data-color_overlay="" data-color_overlay_2="" data-enable_gradient="false" data-gradient_direction="" data-overlay_strength="0.3" style="background-size: cover; border: 0px; box-sizing: border-box; font-family: inherit; font-style: inherit; font-weight: inherit; height: 44px; left: 0px; margin: 0px; outline: 0px; padding: 0px; position: absolute; top: 0px; vertical-align: baseline; width: 1170.16px;">
</div>
</div>
</div>
</div>
<div class="wpb_row vc_row-fluid vc_row standard_section" data-bg-mobile-hidden="" data-midnight="dark" id="fws_5b4848a48cdd4" style="background-color: white; border: 0px; box-sizing: border-box; color: #676767; margin: 0px 0px 35px; outline: 0px; padding: 0px 0px 100px; position: relative; vertical-align: baseline;">
<div class="col span_12 dark left" style="border: 0px; box-sizing: border-box; float: left; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; position: relative; vertical-align: baseline; width: 1169px; z-index: 10;">
<div class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding instance-5 no-left-margin" data-animation="" data-bg-color="" data-bg-cover="" data-bg-opacity="1" data-border-animation-delay="" data-border-animation="" data-border-color="" data-border-radius="none" data-border-style="solid" data-border-width="none" data-delay="0" data-has-bg-color="false" data-hover-bg-opacity="1" data-hover-bg="" data-padding-pos="all" data-shadow="none" style="background-position: center center; border: 0px; box-sizing: border-box; float: left; font-style: inherit; font-weight: inherit; margin: 0px; min-height: 1px; outline: 0px; padding: 0px; position: relative; vertical-align: baseline; width: 1169px;">
<div class="vc_column-inner" style="border: 0px; box-sizing: border-box; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div class="wpb_wrapper" style="border: 0px; box-sizing: border-box; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div class="wpb_text_column wpb_content_element" style="border: 0px; box-sizing: border-box; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div class="wpb_wrapper" style="border: 0px; box-sizing: border-box; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div class="wpb_text_column wpb_content_element" style="border: 0px; box-sizing: border-box; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div class="wpb_wrapper" style="border: 0px; box-sizing: border-box; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFrNnmshy91AXH-1ga4ur5xO8qY6j12cLCvxNqSUIf4U992nhixoKRelc92lLgeLw0Z4FPGtta1vjPRBw98B8KmOV4xXpcjTeWhjT4iWP8375EMTHWDWu7X4R2inkgOgZUrkh8WxhsbDJP/s1600/IMG_1213.JPG" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1600" data-original-width="1600" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFrNnmshy91AXH-1ga4ur5xO8qY6j12cLCvxNqSUIf4U992nhixoKRelc92lLgeLw0Z4FPGtta1vjPRBw98B8KmOV4xXpcjTeWhjT4iWP8375EMTHWDWu7X4R2inkgOgZUrkh8WxhsbDJP/s640/IMG_1213.JPG" width="640" /></a></div>
<div style="font-family: inherit; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIhqf9FMHnSfQgMcg5H7IuJzS1mjBuZ15H_hzTqmDaphSWPxv2S73ru5oM4zCayWD4mehSKt6P7r3dctESWCSQHUoHm1otY_yQDfUcnQ3Mm744mpQKFVGXtX8NZ__94O8qdlU2cRASUTbT/s1600/IMG_1218.JPG" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1600" data-original-width="1600" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIhqf9FMHnSfQgMcg5H7IuJzS1mjBuZ15H_hzTqmDaphSWPxv2S73ru5oM4zCayWD4mehSKt6P7r3dctESWCSQHUoHm1otY_yQDfUcnQ3Mm744mpQKFVGXtX8NZ__94O8qdlU2cRASUTbT/s640/IMG_1218.JPG" width="640" /></a></div>
<div style="font-family: inherit; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
</div>
<div style="font-family: inherit; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhvlO2Rq1nC0kxbeHHU0Aw5XI2FHest8nZSyOu97DnQWsnsNpW-dqFgDTKk18zKcdr4VholoJ4GS46P31fdETpNEhV_H-87xdod7uUfxKyba8J63O723nN-ChrjM-aHVsob_UWh13xXuU2/s1600/IMG_2046.JPG" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhvlO2Rq1nC0kxbeHHU0Aw5XI2FHest8nZSyOu97DnQWsnsNpW-dqFgDTKk18zKcdr4VholoJ4GS46P31fdETpNEhV_H-87xdod7uUfxKyba8J63O723nN-ChrjM-aHVsob_UWh13xXuU2/s640/IMG_2046.JPG" width="480" /></a></div>
<div style="font-family: inherit; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZo7hCkm5_FRjHKC6XIMd43ATqBvyvsgPpAWyASoaEtGH2LzvaiGnRLjafRoiKLS_KNae14dwDPR4gzk2Dm_dgvMeUVo4RteQo-4DgmwPySPS1BOLhpt1aDQddDWJrqw1DV9VdLdFNiLEc/s1600/IMG_2576.JPG" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZo7hCkm5_FRjHKC6XIMd43ATqBvyvsgPpAWyASoaEtGH2LzvaiGnRLjafRoiKLS_KNae14dwDPR4gzk2Dm_dgvMeUVo4RteQo-4DgmwPySPS1BOLhpt1aDQddDWJrqw1DV9VdLdFNiLEc/s640/IMG_2576.JPG" width="640" /></a></div>
<div style="font-family: inherit; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHYpYqPFWINlgU4pzA2AGxFNrlyStDIJP7CJefD-1tOVYtKA-3u8Ueon1k8QoPrMckRXl0Y9LWkMb9nJ6T8P9CttKdAEsKVmULzjE1qTO8mVTCxqks36qM9dvyj1-eTLiQHf7ZWwgFscWT/s1600/IMG_2577.JPG" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHYpYqPFWINlgU4pzA2AGxFNrlyStDIJP7CJefD-1tOVYtKA-3u8Ueon1k8QoPrMckRXl0Y9LWkMb9nJ6T8P9CttKdAEsKVmULzjE1qTO8mVTCxqks36qM9dvyj1-eTLiQHf7ZWwgFscWT/s640/IMG_2577.JPG" width="640" /></a></div>
<div style="font-family: inherit; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoSa0QSBey2jHBHwFGUfZNh7NUD0X5ulLCU9UCmtfNjuPTdqdvlTSAxfg3BmH6v_D0VTDvarwXZb7sSCdAaEAkR5XMQYgXv6D9opjKAazVnoeDadzcLXcnNHeZVk86P_2fT0H67pZ6ih35/s1600/IMG_2591.JPG" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoSa0QSBey2jHBHwFGUfZNh7NUD0X5ulLCU9UCmtfNjuPTdqdvlTSAxfg3BmH6v_D0VTDvarwXZb7sSCdAaEAkR5XMQYgXv6D9opjKAazVnoeDadzcLXcnNHeZVk86P_2fT0H67pZ6ih35/s640/IMG_2591.JPG" width="640" /></a></div>
<div style="font-family: inherit; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR3cmOq4Sdeh2_j6l_jjUXc514YQBmmhkPDQ3N-egRDBxn1qySGQDjiHK-j4EES4Aor_zMgsIqvpaWabcILTEnvyKjpsOZ9pjlBiPuACjUDuTAefUk8LVtZUxZ7L5vNERVjq6-jLddmWnD/s1600/IMG_2660.JPG" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR3cmOq4Sdeh2_j6l_jjUXc514YQBmmhkPDQ3N-egRDBxn1qySGQDjiHK-j4EES4Aor_zMgsIqvpaWabcILTEnvyKjpsOZ9pjlBiPuACjUDuTAefUk8LVtZUxZ7L5vNERVjq6-jLddmWnD/s640/IMG_2660.JPG" width="480" /></a></div>
<div style="font-family: inherit; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiugSs_3ljFDSGPzUZw8tliFiuyb0wBAOSSxJjjqiU-uaVlPqXNrmzVneCVNGM0iBEiJUnvJLNHspqmWPlfaYT5whggPD8x1XrOQEhVNsvCenhyX443fRx_t1DPb9gGZwdrtHG5qbXevM6m/s1600/IMG_2665.JPG" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiugSs_3ljFDSGPzUZw8tliFiuyb0wBAOSSxJjjqiU-uaVlPqXNrmzVneCVNGM0iBEiJUnvJLNHspqmWPlfaYT5whggPD8x1XrOQEhVNsvCenhyX443fRx_t1DPb9gGZwdrtHG5qbXevM6m/s640/IMG_2665.JPG" width="640" /></a></div>
<div style="font-family: inherit; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixBkKJhuYeMmixasLHZ3OQTY_ni2cYbZYYuQijOzmnVcj9qbzp3dGbjWYNaz2csklNdv9wB3QrlqSyLCrSdRm0oWoYGs9vMbLyWrKStah_EJFhUfvwmbumg3qxc4fm2F5OyuSgZBuld3Fs/s1600/IMG_2723.JPG" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixBkKJhuYeMmixasLHZ3OQTY_ni2cYbZYYuQijOzmnVcj9qbzp3dGbjWYNaz2csklNdv9wB3QrlqSyLCrSdRm0oWoYGs9vMbLyWrKStah_EJFhUfvwmbumg3qxc4fm2F5OyuSgZBuld3Fs/s640/IMG_2723.JPG" width="640" /></a></div>
<div style="font-family: inherit; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZhH3ghp9RPstLFK-arQ5jAITd8zbwu2rVgT7_FAq3YNfhIpx9qiHeH61b9nOpym1otAxr8O9pnXS73zauqdF1o74RPpcrBcUGdUBFs57y6LC7hupjc0soVTtxuTPo4giBaOZoVlPxZwDh/s1600/IMG_2765.JPG" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZhH3ghp9RPstLFK-arQ5jAITd8zbwu2rVgT7_FAq3YNfhIpx9qiHeH61b9nOpym1otAxr8O9pnXS73zauqdF1o74RPpcrBcUGdUBFs57y6LC7hupjc0soVTtxuTPo4giBaOZoVlPxZwDh/s640/IMG_2765.JPG" width="480" /></a></div>
<div style="font-family: inherit; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiifVFla3aN8dGJg3sh15I69VoPYiUrH8XDqQOn1jE9xYeMwQ5Nay7Fz6vkJJStNjIbvDDGeRm337RijrgTPqSs8R32dyzpX2swo80T8xQU7THzUPHl9X1YQktGrubzmtTR9ePTbeTnnSPz/s1600/IMG_2796.JPG" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiifVFla3aN8dGJg3sh15I69VoPYiUrH8XDqQOn1jE9xYeMwQ5Nay7Fz6vkJJStNjIbvDDGeRm337RijrgTPqSs8R32dyzpX2swo80T8xQU7THzUPHl9X1YQktGrubzmtTR9ePTbeTnnSPz/s640/IMG_2796.JPG" width="640" /></a></div>
<div style="font-family: inherit; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw9QzInPOdsUX2jTs4qcvpt5xNcbfMDb9br4LB5GIQnK3xqmQF_lRR3uJdlji1qvc-UKpFds67pu0O0cJyRpnHV89rq3LUUZQUbQrF8nzIMbUKcOOWhy1fh8rO1nMGDl8aGu7IAZ7IknwO/s1600/IMG_2896.JPG" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw9QzInPOdsUX2jTs4qcvpt5xNcbfMDb9br4LB5GIQnK3xqmQF_lRR3uJdlji1qvc-UKpFds67pu0O0cJyRpnHV89rq3LUUZQUbQrF8nzIMbUKcOOWhy1fh8rO1nMGDl8aGu7IAZ7IknwO/s640/IMG_2896.JPG" width="640" /></a></div>
<div style="font-family: inherit; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7hZQ-LlydsjmLAWlsOMHshrPvjDZ_CYN7jXCclaq9mi-Un-xTm0SZw9Zm2KJTk24C93neSh2RpkNGFTk8kNuthyphenhyphenlds739-3wOPvgHCEGShDlIfMTGZ_b21b5-wd2dDiC-z3B1HS5bjbfw/s1600/IMG_2938.JPG" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7hZQ-LlydsjmLAWlsOMHshrPvjDZ_CYN7jXCclaq9mi-Un-xTm0SZw9Zm2KJTk24C93neSh2RpkNGFTk8kNuthyphenhyphenlds739-3wOPvgHCEGShDlIfMTGZ_b21b5-wd2dDiC-z3B1HS5bjbfw/s640/IMG_2938.JPG" width="640" /></a></div>
<div style="font-family: inherit; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-7HvJUDcJJrfnYsXV4BWk_e6FdhCfWE-gGphGvDpYOqwyM_hlq-gDXSn55YdWsZgYxFFYucvBBs2wiu3JKdpKKuTQVD6Fi6k6sRdG0bvOUg2AN8GcCeHKUjE553IIuRiXPEfLooEElUBh/s1600/IMG_2970.JPG" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-7HvJUDcJJrfnYsXV4BWk_e6FdhCfWE-gGphGvDpYOqwyM_hlq-gDXSn55YdWsZgYxFFYucvBBs2wiu3JKdpKKuTQVD6Fi6k6sRdG0bvOUg2AN8GcCeHKUjE553IIuRiXPEfLooEElUBh/s640/IMG_2970.JPG" width="640" /></a></div>
<div style="font-family: inherit; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXRadX80LPuq-nO7xU_heVOLthP9f1jUk6A0lHqoPPGbPkTmbn598RdzJ3CqbbEDD7qwijYnrjL0Chs6sdqT25xh0M9pEH98qmxXnziYNB7d0qDCPY3DVbZZRaBNDM3IAQFz3cgrI16eo1/s1600/IMG_3004.JPG" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXRadX80LPuq-nO7xU_heVOLthP9f1jUk6A0lHqoPPGbPkTmbn598RdzJ3CqbbEDD7qwijYnrjL0Chs6sdqT25xh0M9pEH98qmxXnziYNB7d0qDCPY3DVbZZRaBNDM3IAQFz3cgrI16eo1/s640/IMG_3004.JPG" width="640" /></a></div>
<div style="font-family: inherit; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; font-size: 16px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY0B1jNU2cUZX-f-aKaph1AgmF0VeK-gJS7f26xp3XQnL9L0Ts-LRIGME62wPKJaOmX1O_0strdGz1ct-F9LkS_IMlhPnVKyK4yl1NK2asYqgT9OqE2TVaHiW_iXEcm9nQ40yhd13vlxPt/s1600/IMG_3025.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY0B1jNU2cUZX-f-aKaph1AgmF0VeK-gJS7f26xp3XQnL9L0Ts-LRIGME62wPKJaOmX1O_0strdGz1ct-F9LkS_IMlhPnVKyK4yl1NK2asYqgT9OqE2TVaHiW_iXEcm9nQ40yhd13vlxPt/s1600/IMG_3025.JPG" /></a></div>
<div style="border: 0px; box-sizing: border-box; font-family: inherit; font-size: 16px; font-style: inherit; font-weight: inherit; outline: 0px; padding: 0px; vertical-align: baseline;">
<br /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Sandhya Bankarhttp://www.blogger.com/profile/05699980933586164639noreply@blogger.com0tag:blogger.com,1999:blog-6083439994660540394.post-17185985384605280782017-09-26T18:23:00.000-07:002020-04-11T08:31:20.800-07:00OPEN SOURCE SUMMIT NORTH AMERICA 2017<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal" style="text-align: left;">
<br />
<div style="text-align: center;">
<h3>
<span style="color: blue;"><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: x-small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: xx-small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: inherit;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="background: white;"><span style="font-family: "verdana" , sans-serif;">Open Source Summit </span></span></span></span></span></span></span></span></span></span></span></span></span></h3>
</div>
</div>
<div class="MsoNormal" style="text-align: left;">
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><br /></span></span></span></span>
</div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfc71W2mClNHhuB2RLg-6oihaLwRMHIqoXi7hibiX2PjXlqvcu-eHIJcMBrKLfU-Y7mxqMbPk2qhYj2wFY58As-4b0_ZHs73CwLuEiNso9mrbf8Xxeg_yM60aYd7dXkGMPQjJ8zTWYfdaU/s1600/21751869_1480056832085305_5262981017517038871_n.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="960" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfc71W2mClNHhuB2RLg-6oihaLwRMHIqoXi7hibiX2PjXlqvcu-eHIJcMBrKLfU-Y7mxqMbPk2qhYj2wFY58As-4b0_ZHs73CwLuEiNso9mrbf8Xxeg_yM60aYd7dXkGMPQjJ8zTWYfdaU/s640/21751869_1480056832085305_5262981017517038871_n.jpg" width="640" /></a></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: x-small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: xx-small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: inherit;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="background: white;"><span style="font-family: "verdana" , sans-serif;">Open
Source Summit is an open source technical conference in North America,
gathering 2,000+ developers, operators and community leadership
professionals to collaborate, share information and learn about the
latest in open source technologies, including Linux, containers, cloud
computing and more.</span></span></span></span></span></span></span></span></span></span></span></span></div>
<div style="background-color: white; line-height: 20px; margin: 10px 0px; text-align: left;">
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: x-small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: xx-small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: inherit;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "verdana" , sans-serif; font-size: xx-small;">At
the Open Source Summit, you can expect to collaborate, share
information and learn across a wide variety of topics
like LinuxCon, ContainerCon, CloudOpen. read more</span></span></span></span></span></span></span></span></span></span></span></div>
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: x-small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: xx-small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: inherit;"><u><span style="font-family: Arial, Helvetica, sans-serif;"><span style="background: white; color: #545454;"><span style="font-family: "verdana" , sans-serif;"><a href="http://events.linuxfoundation.org/events/open-source-summit-north-america/program/about" target="_blank">http://events.linuxfoundation.org/events/open-source-summit-north-america/program/about</a></span></span></span></u></span></span></span></span></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><br /></span></span></span></span></div>
<div style="clear: both; text-align: center;">
<br />
<br />
<br />
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: blue; font-family: "verdana" , sans-serif; font-size: x-small;"><b><span style="font-family: "verdana" , sans-serif;">SPEAKER IN OPEN SOURCE SUMMIT CONFERENCE</span></b><span style="font-family: "verdana" , sans-serif;"> </span></span></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-size: x-small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></span></span></span></span></span></div>
<div style="clear: both; text-align: justify;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-size: x-small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "verdana" , sans-serif;"><span style="background-color: white; color: #444444;">My last week was the best </span><span style="background-color: white; color: #444444; text-align: left;">week </span><span style="background-color: white; text-align: start;"><span style="color: #444444; font-family: "verdana" , sans-serif;">than any other. Last week it was a great happened in </span><span style="color: blue; font-family: "verdana" , sans-serif;">Open Source Summit North America 2017</span><span style="color: #444444; font-family: "verdana" , sans-serif;">. </span></span><span style="text-align: left;"><span style="color: #444444; font-family: "verdana" , sans-serif;"> I was a speaker at the conference. <a href="http://events.linuxfoundation.org/events/open-source-summit-north-america/program/schedule" target="_blank">radix-tree-idr-apis-and-their-test-suite</a> I presented "Implementing IDR in file descriptor allocation code path". My</span></span><span style="color: #333333; text-align: left;"><span style="font-family: "verdana" , sans-serif;"> project deals with converting custom file descriptors allocation code to use the IDR resulting in memory saving for processes with relatively few open files and improving the performance of workloads with very large number of open files</span>.</span><span style="color: #444444; text-align: left;"> It was a very different experience. People loved my subject and internship.They enjoyed so much. I would like to say Special Thanks to my Mentors Matthew Wilcox and Rik Van Riel. I also want to give Thanks to Laura Abbott, Marina </span><span style="font-family: "verdana" , sans-serif;"><span style="background-color: #fefefe; color: #333333; text-align: left;">Zhurakhinskaya</span><span style="background-color: #fefefe; color: #333333; text-align: left;">, Sarah Sharp, Helen Koike.</span></span></span><span style="color: #444444; text-align: left;"> I met a lot of people there. They told me about their work, the projects going on in Open Source and a lot of other things.</span></span></span></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: #444444; text-align: left;"><br /></span></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: #444444; text-align: left;"><br /></span></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjskqVc6C51ANZzcyCmIM1nsmVVIkYFDwX2TcyOuEHRzpWrfckNAmq16HdUUtQL1VflkIBjdlqncWTVle8-dEwnExKrjh3vJqS_3g7GMzg2RG_A8ARgnzB_o7B97frpLcAaFTEZqwrQyNQL/s1600/IMG_2703.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjskqVc6C51ANZzcyCmIM1nsmVVIkYFDwX2TcyOuEHRzpWrfckNAmq16HdUUtQL1VflkIBjdlqncWTVle8-dEwnExKrjh3vJqS_3g7GMzg2RG_A8ARgnzB_o7B97frpLcAaFTEZqwrQyNQL/s640/IMG_2703.JPG" width="640" /></a></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: #444444; text-align: left;"><br /></span></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="text-align: left;"><span style="color: #444444; font-family: "verdana" , sans-serif;"><br /></span></span></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="text-align: left;"><span style="color: #444444; font-family: "verdana" , sans-serif;"><br /></span></span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihPyNMIpAOhBAzEPCJN_DoNRX9mio-YvX1eFlF-pK9c5lrLjqlevLxUvqiooN3DjDZY8NMV6jpN5tkcYpCsfufRMPUI92Bk0bkz1_oxuLIhSlpJhn3IeX7S8WZbxXdd9ahG77_LOqMqgKD/s1600/FullSizeRender.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihPyNMIpAOhBAzEPCJN_DoNRX9mio-YvX1eFlF-pK9c5lrLjqlevLxUvqiooN3DjDZY8NMV6jpN5tkcYpCsfufRMPUI92Bk0bkz1_oxuLIhSlpJhn3IeX7S8WZbxXdd9ahG77_LOqMqgKD/s320/FullSizeRender.jpg" width="240" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9QR_fI5eNj4BG4JYP8sYusC2sGSblMv3C6zPbnWVsVwvVI5EJLgCS0L1ZY6pVjrLCQlKtZozWIerm3Piex1iw2u_Q-AVTa0JQcewxc8bWEksW2_Dm_2v9zaeWsm7Dke2tnPOY5eIxyyyy/s1600/IMG-3220.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9QR_fI5eNj4BG4JYP8sYusC2sGSblMv3C6zPbnWVsVwvVI5EJLgCS0L1ZY6pVjrLCQlKtZozWIerm3Piex1iw2u_Q-AVTa0JQcewxc8bWEksW2_Dm_2v9zaeWsm7Dke2tnPOY5eIxyyyy/s320/IMG-3220.jpg" width="240" /></a></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="text-align: left;"><span style="color: #444444; font-family: "verdana" , sans-serif;"><br /></span></span></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><br /></span></span></span></span></div>
<div style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: blue; font-family: "verdana" , sans-serif; font-size: small;"><b><span style="font-family: "verdana" , sans-serif; font-size: x-small;">AS ATTENDEE IN OPEN SOURCE SUMMIT CONFERENCE</span><span style="font-family: "verdana" , sans-serif; font-size: medium;"> </span></b></span></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="text-align: left;"><span style="color: #444444; font-family: "verdana" , sans-serif;"><br /></span></span></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: #111111; font-family: "roboto" , "arial" , sans-serif;"><span style="color: red; white-space: pre-wrap;"><b>KEYNOTE: JIM ZEMLIN, EXECUTIVE DIRECTOR, THE LINUX FOUNDATION</b></span></span></span></span></span></span></div>
<div class="cue-group style-scope ytd-transcript-body-renderer" style="align-items: baseline; background: rgb(255, 255, 255); border: 0px; display: flex; flex-direction: row; margin: 16px 0px 0px; padding: 0px;">
<div class="cues style-scope ytd-transcript-body-renderer" style="background: transparent; border: 0px; margin: 0px; padding: 0px; text-align: left;">
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><br /></span></span></span></span>
</div>
<div class="cue style-scope ytd-transcript-body-renderer" start-offset="1620" style="background: transparent; border: 0px; color: var(--yt-primary-text-color); cursor: pointer; display: inline; line-height: 2.1rem; margin: 0px; padding: 0px;">
<div style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;">He has spoken a few minutes about open source </span><span style="background-color: transparent;">in 2017 and it's been a pretty </span><span style="background-color: transparent;">incredible year and open source and you </span><span style="background-color: transparent;">know things just keep getting better and </span><span style="background-color: transparent;">today I thought I would talk to everyone </span><span style="background-color: transparent;">about just how open source isn't growing </span><span style="background-color: transparent;">it's actually accelerating exponentially </span><span style="background-color: transparent;">in terms of its influence in technology </span><span style="background-color: transparent;">and in society and-and these numbers are </span><span style="background-color: transparent;">just amazing there are 23 million </span><span style="background-color: transparent;">open-source developers worldwide I think </span><span style="background-color: transparent;">they're like 22 million Republic </span><span style="background-color: transparent;">accounts on GitHub 64 million </span><span style="background-color: transparent;">repositories 41 million lines of code </span><span style="background-color: transparent;">eleven hundred new projects every single </span><span style="background-color: transparent;">day and then there are 10,000 new </span><span style="background-color: transparent;">versions of different open source </span><span style="background-color: transparent;">projects every single day it's pretty </span><span style="background-color: transparent;">amazing just the growth and the sheer </span><span style="background-color: transparent;">number of developers and projects in </span><span style="background-color: transparent;">open source and even within individual </span><span style="background-color: transparent;">projects speed is accelerating.</span><span style="font-size: x-small;"><br />
<span style="background-color: transparent; color: var(--yt-primary-text-color);">I liked Jim's keynote too much. The open source development he explained very beautifully. I met him personally later and he is very nice, he talked to me despite being very great.</span></span></span><br />
</span></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ4X1ilXfMVeUBwOSA5g2Q7UsCKQO7xfcJNtTpDKfQR45WbT1LonILcV6eLTuA1IZaUEDbBQE04_3UhyphenhypheniyFdufnDBXmaPTN5EZjvbrbLHXxtWvc8X74BFY4aTLGCNQkOhQe5aSKlWJWX5k/s1600/21731318_1479783298779325_2394017998726837761_n.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="960" data-original-width="540" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ4X1ilXfMVeUBwOSA5g2Q7UsCKQO7xfcJNtTpDKfQR45WbT1LonILcV6eLTuA1IZaUEDbBQE04_3UhyphenhypheniyFdufnDBXmaPTN5EZjvbrbLHXxtWvc8X74BFY4aTLGCNQkOhQe5aSKlWJWX5k/s1600/21731318_1479783298779325_2394017998726837761_n.jpg" /></a></span></span></span></span></span></div>
<div style="text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><br />
</span></span></span></span></span></div>
<div style="border: 0px; line-height: 2.4rem; margin: 0px; max-height: 4.8rem; overflow: hidden; padding: 0px; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: red; font-family: "verdana" , sans-serif;"><span style="font-size: x-small;">KEYNOTE: THE PRESENT AND FUTURE OF TECH - AI - TANMAY BAKSHI</span></span></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: red; font-family: "verdana" , sans-serif;"> </span></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #333333;">He’s using cognitive and cloud computing to change the world, through his open-source initiatives, for instance, “The Cognitive Story”, meant to augment and amplify human capabilities; and “AskTanmay”, the world’s first Web-Based NLQA System, built using IBM Watson’s Cognitive Capabilities. His learning and sharing experience of 8 years in the fields of software and cognitive development, has taught him how to best utilize and apply AI in fields ranging from banking and finance to healthcare and medicine to music and chatbots.</span></span></span></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"> </span></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgobMAdtvrs-RhgwEl2jY4qBizfnAGEJWR8RFGzXAGdsfxOuZOJiqfSAc_qZqs4pUfMYHyeNOpW8pBK7CKUPTBSv0fGvUOAsbMofHjSnbu4_h9_tylVdJgk5Uxa-XflBTqlPL3s5LlZaxzX/s1600/21752085_1477399079017747_377992391866959593_n.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="960" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgobMAdtvrs-RhgwEl2jY4qBizfnAGEJWR8RFGzXAGdsfxOuZOJiqfSAc_qZqs4pUfMYHyeNOpW8pBK7CKUPTBSv0fGvUOAsbMofHjSnbu4_h9_tylVdJgk5Uxa-XflBTqlPL3s5LlZaxzX/s640/21752085_1477399079017747_377992391866959593_n.jpg" width="640" /></a></span></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"> <span style="font-family: "verdana" , sans-serif;"><span style="background-color: transparent; color: var(--yt-primary-text-color);">He is very simple. When I met him, I felt like he is my younger brother and we know each other from a long time. He explained keynote on Present and Future of Tech - AI. It was amazing for me. he likes India so much. Her mother said he always tries to come in India. Tanmay's mom and dad are a very humble person.</span><br />
<span style="background-color: transparent; color: var(--yt-primary-text-color);">-----------------------------------------------------------------------------------------</span></span></span></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="font-family: "verdana" , sans-serif;"><span style="background-color: transparent; color: var(--yt-primary-text-color);">I have attended the following keynote by,</span></span></span></span></span></span></span><br />
<ul style="text-align: left;">
<li><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: red; font-size: xx-small;"><b style="background-color: transparent;"><span style="font-family: "verdana" , sans-serif;">KEYNOTE: A CONVERSATION WITH LINUX AND GIT CREATOR LINUS TORVALDS</span></b><span style="background-color: transparent;"> </span></span><span style="background-color: transparent;"> </span><a href="https://www.youtube.com/watch?v=qlRXFpUVPK4&list=PLbzoR-pLrL6oNLRbC03ziuX0JWzQFjnth&index=5" style="background-color: transparent;">https://www.youtube.com/watchv=qlRXFpUVPK4&list=PLbzoR-pLrL6oNLRbC03ziuX0JWzQFjnth&index=5</a></span></span></span></span></li>
</ul>
</div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="font-family: "verdana" , sans-serif;"><span style="background-color: transparent; color: red;"><b><b style="background-color: transparent;">KEYNOTE: OPEN SOURCE SOFTWARE AS ACTIVISM - CHRISTINE CORBETT MORAN</b></b></span></span></span></span></span></span></span></li>
</ul>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="font-family: "verdana" , sans-serif;"><span style="background-color: transparent;"> <a href="https://www.youtube.com/watch?v=MwXQezLjku8&list=PLbzoR-pLrL6oNLRbC03ziuX0JWzQFjnth&index=2">https://www.youtube.com/watch?v=MwXQezLjku8&list=PLbzoR-pLrL6oNLRbC03ziuX0JWzQFjnth&index=2</a></span></span></span></span></span></span></span></div>
<div style="text-align: left;">
</div>
<ul style="text-align: left;">
<li><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><b style="background-color: transparent;"><span style="color: red; font-size: xx-small;">KEYNOTE: THE DIFFERENCE BETWEEN A CROWD AND A COMMUNITY - JOSEPH GORDON-LEVITT</span></b></span></span></span></span></li>
</ul>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif; font-size: xx-small;"> <a href="https://www.youtube.com/watch?v=NvcIcDKJ1ws&index=16&list=PLbzoR-pLrL6oNLRbC03ziuX0JWzQFjnth">https://www.youtube.com/watch?v=NvcIcDKJ1ws&index=16&list=PLbzoR-pLrL6oNLRbC03ziuX0JWzQFjnth</a></span></span></span></span></span></div>
<div style="text-align: left;">
</div>
<ul style="text-align: left;">
<li><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><b style="background-color: transparent;"><span style="color: red; font-size: xx-small;">KEYNOTE LIGHTNING TALK: OPENNESS IN A CLOUD CENTRIC WORLD - APARNA SINHA</span></b></span></span></span></span></li>
</ul>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif; font-size: xx-small;"> <a href="https://www.youtube.com/watch?v=y2iV1MDDuqQ&list=PLbzoR-pLrL6oNLRbC03ziuX0JWzQFjnth&index=14">https://www.youtube.com/watch?v=y2iV1MDDuqQ&list=PLbzoR-pLrL6oNLRbC03ziuX0JWzQFjnth&index=14</a></span></span></span></span></span></div>
<div style="text-align: left;">
</div>
<ul style="text-align: left;">
<li><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><b style="background-color: transparent;"><span style="color: red; font-size: xx-small;">KEYNOTE LIGHTNING TALK: HUMAN ENABLEMENT - ALAN CLARK</span></b></span></span></span></span></li>
</ul>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif; font-size: xx-small;"> <a href="https://www.youtube.com/watch?v=HfZRv3Kcykc&list=PLbzoR-pLrL6oNLRbC03ziuX0JWzQFjnth&index=3" target="_blank">https://www.youtube.com/watch?v=HfZRv3Kcykc&list=PLbzoR-pLrL6oNLRbC03ziuX0JWzQFjnth&index=3</a></span></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;">------------------------------------------------------------------------------------------------------------------------</span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;">I also attended some following Talks,</span></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></span></span></span>
</div>
<div style="border: 0px none; box-sizing: border-box; line-height: 1.1; margin: 8px 0px 3px; outline: currentcolor none 0px; padding: 0px; text-align: left; vertical-align: baseline;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: magenta; font-family: "verdana" , sans-serif;">Matthew Wilcox</span></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #333333;">The new XArray is easier to use than the radix tree. Conceptually, it is an array of 16 quintillion pointers, all of which are initially NULL. Just like an array, its basic operations are 'load' and 'store', unlike a tree's 'lookup', 'insert' and 'delete'. It provides some more advanced operations and enables users to build their own operations. </span><span style="color: #333333;">This talk covers general aspects of API design for C programmers, as well as particular con</span></span><span style="background-color: transparent; color: #333333;">siderations for kernel API design due to the constrained environment.</span></span></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span class="event ev_7" style="background: rgb(243, 130, 127) none repeat scroll 0% 0%; border-color: transparent rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) transparent; border-radius: 4px; border-style: solid; border-width: 1px; box-shadow: rgba(0, 0, 0, 0.25) 0px 1px 2px; box-sizing: border-box; color: #333333; cursor: pointer; display: block; float: left; margin: 0px 0px 12px 12px; outline: currentcolor none 0px; padding: 0px; position: relative; text-shadow: rgba(255, 255, 255, 0.15) 1px 1px 0px; vertical-align: baseline; z-index: 10;"><a class="name" href="https://ossna2017.sched.com/event/BCss/replacing-the-radix-tree-matthew-wilcox-microsoft?iframe=yes&w=100%&sidebar=yes&bg=no#" id="1ad54c39322a13d39b2d9919296358f5" style="border-bottom-right-radius: 3px; border-top-right-radius: 3px; border: 0px none; box-sizing: border-box; color: black; float: left; font-weight: inherit; line-height: 32px; margin: 0px; outline: currentcolor none 0px; padding: 0px 10px; vertical-align: baseline;">Replacing the Radix Tree - Matthew Wilcox, Microsoft</a></span></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="background-color: transparent; color: #333333;"><br /></span></span></span></span></span> <br />
<div style="border: 0px; box-sizing: border-box; color: #333333; line-height: 1.1; margin: 0px 0px 5px; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;"><br /></span></span></span></span></span></div>
<div style="border: 0px; box-sizing: border-box; color: #333333; line-height: 1.1; margin: 0px 0px 5px; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;"><br /></span></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj18NDpsqe2VqSJclYjxqCwYHjQe3c5yE8KjGSyJsLQkdJbOs_ZYYYdnEXcZQdiFJKD07YYEEjg7X4YzuozcezJiJ8f9KHAmjeF6hzo6IfLViLGC7x7E-T7cfby-sBgUygDiCmtR6-1dEKn/s1600/IMG_2735.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj18NDpsqe2VqSJclYjxqCwYHjQe3c5yE8KjGSyJsLQkdJbOs_ZYYYdnEXcZQdiFJKD07YYEEjg7X4YzuozcezJiJ8f9KHAmjeF6hzo6IfLViLGC7x7E-T7cfby-sBgUygDiCmtR6-1dEKn/s640/IMG_2735.JPG" width="640" /></a></span></span></span></span></div>
<div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;"><br /></span></span></span></span></span></div>
<div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;"><br /></span></span></span></span></span></div>
<div style="border: 0px; box-sizing: border-box; line-height: 1.1; margin: 0px 0px 5px; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: magenta; font-family: "verdana" , sans-serif; font-size: x-small;">Paul McKenney</span></span></span></span></span></div>
<div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: #333333;"><span style="font-family: "verdana" , sans-serif;">This talk will look at a few representative RCU CPU stall warning messages and show how they can be decoded into real information that can help you find otherwise silent hangs the easy way. </span></span></span></span></span></span></div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif; font-size: xx-small;"><span class="event ev_7" style="background: rgb(243, 130, 127) none repeat scroll 0% 0%; border-color: transparent rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) transparent; border-radius: 4px; border-style: solid; border-width: 1px; box-shadow: rgba(0, 0, 0, 0.25) 1px 1px 3px; box-sizing: border-box; color: #333333; cursor: pointer; display: block; float: left; margin: 0px 12px 12px 0px; outline: currentcolor none 0px; padding: 0px; position: relative; text-shadow: rgba(255, 255, 255, 0.15) 1px 1px 0px; vertical-align: baseline; z-index: 10;"><a class="name" href="https://ossna2017.sched.com/event/BEVQ/decoding-those-inscrutable-rcu-cpu-stall-warnings-paul-mckenney-ibm?iframe=yes&w=100%&sidebar=yes&bg=no#" id="b5d1696e9376bd7a97f22763f151bcb3" style="background: rgba(0, 0, 0, 0) none repeat-x scroll 0px -200px; border-bottom-right-radius: 3px; border-top-right-radius: 3px; border: 0px none; box-sizing: border-box; color: black; float: left; font-weight: inherit; line-height: 32px; margin: 0px; outline: currentcolor none 0px; padding: 0px 10px; vertical-align: baseline;">Decoding Those Inscrutable RCU CPU Stall Warnings - Paul McKenney, IBM</a></span></span></span></span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><br /></span></span></span></span>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><span style="font-size: xx-small;"><a href="https://www.youtube.com/watch?v=HfZRv3Kcykc&list=PLbzoR-pLrL6oNLRbC03ziuX0JWzQFjnth&index=3" style="background-color: transparent;" target="_blank"> </a><a href="https://schd.ws/hosted_files/ossna2017/2b/stallwarning.2017.09.08a.pdf" style="background-color: transparent;" target="_blank">https://schd.ws/hosted_files/ossna2017/2b/stallwarning.2017.09.08a.pdf</a></span></span></span></span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXH6o5JOMHnYdDMWnZ3pyMOvGVyj0EZUhLZYvGXfLfmADzCuoUf73f4hi5WCaGtEUeOibkP1vjeYdpWO1lJKEzQUY7_d14wo092o3AmNp9betDNJdlGlaMVBquZtB28wFcDl-FZc4xrSMk/s1600/IMG_2838.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXH6o5JOMHnYdDMWnZ3pyMOvGVyj0EZUhLZYvGXfLfmADzCuoUf73f4hi5WCaGtEUeOibkP1vjeYdpWO1lJKEzQUY7_d14wo092o3AmNp9betDNJdlGlaMVBquZtB28wFcDl-FZc4xrSMk/s640/IMG_2838.JPG" width="480" /></a></span></span></span></span></div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><br /></span></span></span></span>
<br />
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: #333333;"><span style="color: magenta; font-family: "verdana" , sans-serif; font-size: x-small;">Gabriel Krisman Bertazi </span></span></span></span></span></span></div>
<div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: #333333;"><span style="font-family: "verdana" , sans-serif;">What influences a program's performance? Some reasons are quite obvious, like the algorithm implemented and the number of execution cycles, but what about the order in which libraries were linked? Or the shell environment size? Or even the sequence and which compiler optimizations were applied? In fact, modern computer systems include such a multitude of features and options, whose interaction with each other can affect the workload's performance, that it is surprisingly hard to write code that fully benefits from the potential of the CPU. In this talk, we will discuss how small changes in the code and in the execution environment can impact the execution time and how you can use Linux performance assessment tools, like perf and valgrind, to detect and mitigate such pitfalls.</span></span></span></span></span></span></div>
<div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: #333333;"><span style="font-family: "verdana" , sans-serif;"><a href="https://schd.ws/hosted_files/ossna2017/b3/code-detective.pdf" target="_blank">https://schd.ws/hosted_files/ossna2017/b3/code-detective.pdf</a></span></span></span></span></span></span></div>
<div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: #333333;"><br /></span></span></span></span></span></div>
<div>
<div style="border: 0px; box-sizing: border-box; line-height: 1.1; margin: 8px 0px 3px; outline: 0px; padding: 0px; vertical-align: baseline;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: magenta; font-family: "verdana" , sans-serif; font-size: x-small;">Sarah Sharp</span></span></span></span></span></div>
</div>
<div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #333333;">Sarah is also a co-coordinator for Outreachy, a paid internship program for increasing diversity in open source projects. Applications are open to women (cis and trans), trans men, and genderqueer people, and United States residents of any gender who are Black/African American, Hispanic/Latin@, American Indian, Alaska Native, Native Hawaiian, or Pacific Islander.</span></span></span></span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #333333;">I met her and I really enjoyed talking to Sarah. </span></span></span></span></span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQBW0VlINhAn736RkNFF9IydcsEY1TTnNmoJrm3Q3LUtlPz8SfWyiCsL10mwosgJroaCEFWm4KEcHJ1Y9ihYv7Rxg2wrsozoA5a3AAhqEsNBRC_qz99BMlPfQSMBOn7qupWW-RXutin6x_/s1600/IMG-2629.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1410" data-original-width="1200" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQBW0VlINhAn736RkNFF9IydcsEY1TTnNmoJrm3Q3LUtlPz8SfWyiCsL10mwosgJroaCEFWm4KEcHJ1Y9ihYv7Rxg2wrsozoA5a3AAhqEsNBRC_qz99BMlPfQSMBOn7qupWW-RXutin6x_/s400/IMG-2629.JPG" width="340" /></a></span></span></span></span></div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #333333;"><br /></span></span></span></span></span></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzHoJwapu841Iq-yspxzn-XwTkYO5pc-lYM_tCIc3B-7Ap15r6__6L1T3dPTop77nCS94oN_-V74tlh16RLEqcVLl5XfLyiA2xf_AgIjpYCFeN7YdWXgWBvh0TnsF-gBup0vUnWKnsHG_L/s1600/IMG_2630.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1445" data-original-width="1200" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzHoJwapu841Iq-yspxzn-XwTkYO5pc-lYM_tCIc3B-7Ap15r6__6L1T3dPTop77nCS94oN_-V74tlh16RLEqcVLl5XfLyiA2xf_AgIjpYCFeN7YdWXgWBvh0TnsF-gBup0vUnWKnsHG_L/s400/IMG_2630.JPG" width="331" /></a></span></span></span></span></div>
</div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: #660000;"><a href="https://schd.ws/hosted_files/ossna2017/bd/sarah-sharp-so-you-have-a-coc-what-now-low-res.pdf">https://schd.ws/hosted_files/ossna2017/bd/sarah-sharp-so-you-have-a-coc-what-now-low-res.pdf</a></span></span></span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><br /></span></span></span></span>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #333333;">Sarah is a Linux and open source developer and has been running Debian-based Linux systems since 2003. She was a Linux kernel developer from 2006 to 2013 and is the original author of the Linux USB 3.0 xHCI host controller driver.</span></span></span></span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #333333;">-----------------------------------------------------------------------------------------</span></span></span></span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #333333;"><br /></span></span></span></span></span></span> <span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: #333333; font-family: "verdana" , sans-serif;">I clicked some pictures with people. </span><span style="background-color: transparent; color: #333333;">I met people I wanted to meet them a lot of days</span></span></span></span></span><br />
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: purple;">Greg kroah-hartman</span></span></span></span></span></span></div>
<div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #333333;">My first kernel patch was accepted by gregkh. It was really beautiful feeling.</span></span></span></span></span></span></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxWya_eyLRwaFh17fmZwBC0bF_Jwc7RtaLTMl3ESvs4pH3blRwaIVcfW8sZ9h13Jb_xxTTd0iVb6xoi8QhFYFyGC7CCWAEvMFlbOgDWSRvPnYrtHc3RCn5RctNBX8UgCUV1nwNNpGvnkHk/s1600/IMG-2734.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="858" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxWya_eyLRwaFh17fmZwBC0bF_Jwc7RtaLTMl3ESvs4pH3blRwaIVcfW8sZ9h13Jb_xxTTd0iVb6xoi8QhFYFyGC7CCWAEvMFlbOgDWSRvPnYrtHc3RCn5RctNBX8UgCUV1nwNNpGvnkHk/s640/IMG-2734.JPG" width="343" /></a></span></span></span></span></div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #333333;"><br /></span></span></span></span></span></span></div>
<div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><br /></span></span></span></span></div>
<div>
<div style="border: 0px; box-sizing: border-box; line-height: 1.1; margin: 0px 0px 5px; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: purple; font-family: "verdana" , sans-serif;"> Nithya Ruff</span></span></span></span></span></span></div>
<div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="font-family: "verdana" , sans-serif;"><span style="color: purple;"><span style="color: #5e5e5e;">I also enjoyed Nithya's Talk on </span></span></span>First 90 Days - Building an OSS Practice. I believe<span style="background-color: transparent; color: #5e5e5e;"> her talk has helped me see successful open source project and community work in very first 90 days.</span></span></span></span></span></span></div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: purple; font-family: "verdana" , sans-serif;"> </span></span></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #990000; font-family: "verdana" , sans-serif; font-size: xx-small;"><a href="http://events.linuxfoundation.org/events/open-source-summit-north-america/program/schedule">http://events.linuxfoundation.org/events/open-source-summit-north-america/program/schedule</a></span></span></span></span></span></span></div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #333333;"><br /></span></span></span></span></span></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQKxfbusWPPYV044N-M8r7g7khd-MY7UP9hUxerC1Fn-YGDRYVPNbNPLUjKK3mg8aGznnW3GcMcCKI16aJu7c4982YL1IUwVT2TAAncURESJb1kwDb6FNO5nsI8vZpG9AWb_ThomYRzQTK/s1600/IMG-2839.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1184" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQKxfbusWPPYV044N-M8r7g7khd-MY7UP9hUxerC1Fn-YGDRYVPNbNPLUjKK3mg8aGznnW3GcMcCKI16aJu7c4982YL1IUwVT2TAAncURESJb1kwDb6FNO5nsI8vZpG9AWb_ThomYRzQTK/s640/IMG-2839.JPG" width="472" /></a></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><br /></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
<span style="font-family: inherit;">
<span style="font-family: "verdana" , sans-serif;"><span style="color: purple;"><span style="background-color: transparent;"> </span><span style="background-color: transparent;"><span style="font-family: "verdana" , sans-serif;">Angela Brown</span></span></span></span></span></span></span></span></div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #333333;"><span style="background-color: transparent; color: #6a6a6a;"><br /></span></span></span></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgATYBkcAf1D5C1Tp5GbumDYMXwE2sM0aaNL3kMl1JCy0pAlqbIiZIoVbxVVVYO-NbgXNRbmSKoOm8jfenEXvdyDqCvm2v71Lgdl64bxCznunmXZTYqabqqRZAu2796Gna_923h5QCNg_NR/s1600/IMG-2748.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgATYBkcAf1D5C1Tp5GbumDYMXwE2sM0aaNL3kMl1JCy0pAlqbIiZIoVbxVVVYO-NbgXNRbmSKoOm8jfenEXvdyDqCvm2v71Lgdl64bxCznunmXZTYqabqqRZAu2796Gna_923h5QCNg_NR/s640/IMG-2748.JPG" width="480" /></a></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #333333; font-family: "verdana" , sans-serif; font-size: x-small;"><span style="color: #6a6a6a; font-weight: bold;"><br /></span></span></span></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #333333; font-family: "verdana" , sans-serif; font-size: x-small;"><span style="color: purple; font-weight: bold;">Tameika Reed</span></span></span></span></span></span></span></div>
<div style="text-align: left;">
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #990000; font-family: "verdana" , sans-serif; font-size: xx-small;"><b><a href="http://www.womeninlinux.com/index.php/about/">http://www.womeninlinux.com/index.php/about/</a></b></span></span></span></span></span></span></div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;"><span style="color: #990000; font-family: "verdana" , sans-serif; font-size: xx-small;"><br /></span></span></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA80MggKpc74VJBImhdWdMc33qvl3TL0H4EufrPMAawWjIfSN7AfAr-QCiA59IGveYnhABnHHBcs-c8kK3DEqKgu0_2t5uKkSS31DBjq2lLUSTEjh5fGQSrsDU_h2ua0yx3YClkAw6fZ1z/s1600/IMG-2494.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA80MggKpc74VJBImhdWdMc33qvl3TL0H4EufrPMAawWjIfSN7AfAr-QCiA59IGveYnhABnHHBcs-c8kK3DEqKgu0_2t5uKkSS31DBjq2lLUSTEjh5fGQSrsDU_h2ua0yx3YClkAw6fZ1z/s640/IMG-2494.JPG" width="640" /></a></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><br /></span></span></span></span>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><br /></span></span></span></span>
<br />
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-weight: bold;"><span style="color: purple; font-family: "verdana" , sans-serif; font-size: x-small;">Marina Zhurakhinskaya</span></span></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk-vOkXHYHKiEeA0CB2Io085wUW_Pk4Q8Odx45CifYsfxMcFd1PYw8WOReN5IzVPy7DsVvjV6U02W0c-fECrfAeLvVoqx-eh6aDX1BVq7pORD_bDRr2_VwWAlUz_KO_QQV_Yl2vP_6F9Xr/s1600/FullSizeRender+%25281%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk-vOkXHYHKiEeA0CB2Io085wUW_Pk4Q8Odx45CifYsfxMcFd1PYw8WOReN5IzVPy7DsVvjV6U02W0c-fECrfAeLvVoqx-eh6aDX1BVq7pORD_bDRr2_VwWAlUz_KO_QQV_Yl2vP_6F9Xr/s640/FullSizeRender+%25281%2529.jpg" width="480" /></a></span></span></span></span></div>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><br /></span></span></span></span></div>
<div style="text-align: left;">
<div style="border: 0px; box-sizing: border-box; line-height: 1.1; margin: 8px 0px 3px; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: purple; font-family: "verdana" , sans-serif; font-size: x-small;">Hong Phuc Dang , </span><span style="color: purple; font-family: "verdana" , sans-serif; font-size: xx-small;">FOSSASIA</span></span></span></span></span></div>
</div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><a href="http://events.linuxfoundation.org/events/open-source-summit-north-america/program/schedule"><span style="color: #990000;">http://events.linuxfoundation.org/events/open-source-summit-north-america/program/schedule</span></a></span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1ttU7TKW5RxLGTjnQ06F4ldLAfzpetRRwdI-OtAEiB_XOYsTrkitRtw1Sh3Kqd4Irf_l61h7kwxvsJEH2oxZeKTpbukfkwWnUoFOqBfEX-0Jzi17_Hx0xrQTfJ2XEooJxKytKP8xJ78Ug/s1600/IMG-2493.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1600" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1ttU7TKW5RxLGTjnQ06F4ldLAfzpetRRwdI-OtAEiB_XOYsTrkitRtw1Sh3Kqd4Irf_l61h7kwxvsJEH2oxZeKTpbukfkwWnUoFOqBfEX-0Jzi17_Hx0xrQTfJ2XEooJxKytKP8xJ78Ug/s640/IMG-2493.JPG" width="640" /></a></span></span></span></span></div>
<div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><br /></span></span></span></span>
</div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="font-family: "verdana" , sans-serif;">Finally my Cospeaker and Outreachy friends,</span></span></span></span></span></div>
<div style="text-align: left;">
</div>
<ul style="text-align: left;">
<li><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: #38761d;">Rehas<span style="background-color: transparent;"> Sachdeva</span></span></span></span></span></span></li>
</ul>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<ul style="text-align: left;">
<li><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: #38761d; font-family: "verdana" , sans-serif;">Amitoj Kour<span style="background-color: transparent;"> Chawala</span></span></span></span></span></span></li>
</ul>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<ul style="text-align: left;">
<li><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="color: #38761d; font-family: "verdana" , sans-serif;">Jaminy Prabhakaran</span></span></span></span></span></li>
</ul>
<div style="text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLK8TNQPtQlPPjZe1rPBPEnopQDqCtjDOKhRIVwzbAdKk0stHJkDwvy0jGTHR0LnuJlwn0ZDsKv1Wc6It2ffM9S3lKL19NOA9ioCvph499AJxfVLGPBxN19aiPMyZDq8gHZRoutk-NPmow/s1600/IMG_2851.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLK8TNQPtQlPPjZe1rPBPEnopQDqCtjDOKhRIVwzbAdKk0stHJkDwvy0jGTHR0LnuJlwn0ZDsKv1Wc6It2ffM9S3lKL19NOA9ioCvph499AJxfVLGPBxN19aiPMyZDq8gHZRoutk-NPmow/s640/IMG_2851.JPG" width="640" /></a></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="background-color: transparent; color: #5e5e5e;"><br /></span></span></span></span></span> <span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="background-color: transparent; color: #5e5e5e;"><br /></span></span></span></span></span>
</div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="background-color: transparent;"><span style="color: red; font-family: "verdana" , sans-serif;">I would like to thanks to The Linux Foundation and Outreachy for sponsoring my trip.</span></span></span></span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="background-color: transparent;"><span style="color: red; font-family: "verdana" , sans-serif;"><br /></span></span></span></span></span></span>
<br />
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><br /></span></span></span></span>
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><span style="background-color: transparent;"><span style="color: red; font-family: "verdana" , sans-serif;"><br /></span></span></span></span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: inherit;"><br /></span></span></span></span>
</div>
<br /></div>
</div>
</div>
</div>
</div>
</div>
Sandhya Bankarhttp://www.blogger.com/profile/05699980933586164639noreply@blogger.com0tag:blogger.com,1999:blog-6083439994660540394.post-74405522151430930362017-02-22T02:00:00.001-08:002017-04-04T20:36:52.536-07:00Test cases of dup3() for radix tree__alloc_fd<div dir="ltr" style="text-align: left;" trbidi="on">
I have written dup3() test case.<br />
I am going to run this test case for the close_on_exec patch.<br />
Also, I have written one program (child_process.c) which will run on exec and try to open the file using fdopen().<br />
<br />
dup3() test case is given below,<br />
<br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.2em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<table><tbody>
<tr><td><pre style="line-height: 125%; margin: 0;"> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147</pre>
</td><td><pre style="line-height: 125%; margin: 0;"><span style="color: #333333;">/*</span>
<span style="color: #333333;">*</span> This <span style="color: black; font-weight: bold;">is</span> dup3() functionality testcase<span style="color: #333333;">.</span>
<span style="color: #333333;">*</span> The dup3() <span style="color: black; font-weight: bold;">is</span> duplicate a <span style="color: #007020;">file</span> descriptor to a given number, </pre>
<pre style="line-height: 125%; margin: 0;"><span style="color: #008800; font-weight: bold;"><span style="color: black;"> </span></span><span style="color: black;"></span><span style="color: black;">*</span><span style="color: #008800; font-weight: bold;"> with</span> flags<span style="color: #333333;">.</span>
<span style="color: #333333;">*/</span>
<span style="color: #888888;">#include <stdio.h></span>
<span style="color: #888888;">#include <unistd.h></span>
<span style="color: #888888;">#include <fcntl.h></span>
<span style="color: #888888;">#include <stdlib.h></span>
extern char <span style="color: #333333;">**</span>environ;
<span style="color: #888888;">#define WRONG_FLAG -1</span>
<span style="color: #007020;">int</span> dup3_basic_tests () {
<span style="color: #007020;">int</span> oldfd, newfd;
<span style="color: #007020;">int</span> ret;
oldfd <span style="color: #333333;">=</span> <span style="color: #007020;">open</span>(<span style="background-color: #fff0f0;">"/tmp/file1"</span>,O_CREAT <span style="color: #333333;">|</span> O_RDWR, <span style="color: #4400ee; font-weight: bold;">0644</span>);
<span style="color: #008800; font-weight: bold;">if</span> (oldfd <span style="color: #333333;"><</span> <span style="color: #0000dd; font-weight: bold;">0</span>) {
printf(<span style="background-color: #fff0f0;">"open() error </span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
}
ret <span style="color: #333333;">=</span> fcntl(oldfd, F_GETFD);
<span style="color: #008800; font-weight: bold;">if</span> (ret <span style="color: #333333;">!=</span> FD_CLOEXEC)
printf(<span style="background-color: #fff0f0;">"test 1 : pass</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
<span style="color: #008800; font-weight: bold;">else</span>
printf(<span style="background-color: #fff0f0;">"test 1 : fail</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
ret <span style="color: #333333;">=</span> dup3(oldfd, newfd, O_CLOEXEC);
<span style="color: #008800; font-weight: bold;">if</span> (ret <span style="color: #333333;">==</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>) {
printf(<span style="background-color: #fff0f0;">"dup3() error </span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
}
ret <span style="color: #333333;">=</span> fcntl(newfd, F_GETFD); <span style="color: #333333;">/*</span> Read the <span style="color: #007020;">file</span> descriptor flags <span style="color: #333333;">*/</span>
<span style="color: #008800; font-weight: bold;">if</span> (ret <span style="color: #333333;">==</span> FD_CLOEXEC)
printf(<span style="background-color: #fff0f0;">"test 2 : pass</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
<span style="color: #008800; font-weight: bold;">else</span>
printf(<span style="background-color: #fff0f0;">"test 2 : fail</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
close(newfd);
ret <span style="color: #333333;">=</span> dup3(oldfd, newfd, <span style="color: #0000dd; font-weight: bold;">0</span>);
<span style="color: #008800; font-weight: bold;">if</span> (ret <span style="color: #333333;">==</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>) {
printf(<span style="background-color: #fff0f0;">"dup3() error </span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
}
ret <span style="color: #333333;">=</span> fcntl(newfd, F_GETFD);
<span style="color: #008800; font-weight: bold;">if</span> (ret <span style="color: #333333;">!=</span> FD_CLOEXEC)
printf(<span style="background-color: #fff0f0;">"test 3 : pass</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
<span style="color: #008800; font-weight: bold;">else</span>
printf(<span style="background-color: #fff0f0;">"test 3 : fail</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
close(newfd);
ret <span style="color: #333333;">=</span> dup3(oldfd, newfd, WRONG_FLAG);
<span style="color: #008800; font-weight: bold;">if</span> (ret <span style="color: #333333;">==</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>)
printf(<span style="background-color: #fff0f0;">"test 4 : pass </span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
<span style="color: #008800; font-weight: bold;">else</span>
printf(<span style="background-color: #fff0f0;">"test 4 : fail </span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
close(oldfd);
unlink(<span style="background-color: #fff0f0;">"/tmp/file1"</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #0000dd; font-weight: bold;">0</span>;
}
<span style="color: #007020;">int</span> dup3_loop() {
<span style="color: #007020;">int</span> i,ret;
<span style="color: #007020;">int</span> oldfd, newfd;
oldfd <span style="color: #333333;">=</span> <span style="color: #007020;">open</span>(<span style="background-color: #fff0f0;">"/tmp/file2"</span>,O_CREAT <span style="color: #333333;">|</span> O_RDWR, <span style="color: #4400ee; font-weight: bold;">0644</span>);
<span style="color: #008800; font-weight: bold;">if</span> (oldfd <span style="color: #333333;"><</span> <span style="color: #0000dd; font-weight: bold;">0</span>) {
printf(<span style="background-color: #fff0f0;">"open() error </span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
}
<span style="color: #008800; font-weight: bold;">for</span> (i <span style="color: #333333;">=</span> <span style="color: #0000dd; font-weight: bold;">3</span>; i <span style="color: #333333;"><</span> <span style="color: #0000dd; font-weight: bold;">100</span>; i<span style="color: #333333;">++</span>) {
ret <span style="color: #333333;">=</span> dup3(oldfd, i, O_CLOEXEC);
<span style="color: #008800; font-weight: bold;">if</span> (ret <span style="color: #333333;"><</span> <span style="color: #0000dd; font-weight: bold;">0</span>) {
printf(<span style="background-color: #fff0f0;">"dup3_loop : dup3() error</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
}
}
<span style="color: #008800; font-weight: bold;">for</span> (i <span style="color: #333333;">=</span> <span style="color: #0000dd; font-weight: bold;">3</span>; i <span style="color: #333333;"><</span> <span style="color: #0000dd; font-weight: bold;">100</span>; i<span style="color: #333333;">++</span>) {
ret <span style="color: #333333;">=</span> fcntl(i, F_GETFD);
<span style="color: #008800; font-weight: bold;">if</span> (ret <span style="color: #333333;"><</span> <span style="color: #0000dd; font-weight: bold;">0</span>) {
printf(<span style="background-color: #fff0f0;">"dup3_loop : fcntl() error</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
}
<span style="color: #008800; font-weight: bold;">if</span> (ret <span style="color: #333333;">==</span> FD_CLOEXEC)
printf(<span style="background-color: #fff0f0;">"dup3_loop() : pass.</span><span style="background-color: #eeeeee;">%d</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>,i);
<span style="color: #008800; font-weight: bold;">else</span>
printf(<span style="background-color: #fff0f0;">"dup3_loop() : fail.</span><span style="background-color: #eeeeee;">%d</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>,i);
close(i);
}
unlink(<span style="background-color: #fff0f0;">"/tmp/file2"</span>);
}
void fork_exec() {
<span style="color: #007020;">int</span> fd,new_fd <span style="color: #333333;">=</span> <span style="color: #0000dd; font-weight: bold;">4</span>;
<span style="color: #007020;">int</span> pid,ret;
char fd_buf[<span style="color: #0000dd; font-weight: bold;">10</span>];
char <span style="color: #333333;">*</span>argv[<span style="color: #0000dd; font-weight: bold;">3</span>] <span style="color: #333333;">=</span> {<span style="background-color: #fff0f0;">"child_process"</span>,fd_buf, NULL};
fd <span style="color: #333333;">=</span> <span style="color: #007020;">open</span>(<span style="background-color: #fff0f0;">"/tmp/file3"</span>,O_CREAT <span style="color: #333333;">|</span> O_RDWR, <span style="color: #4400ee; font-weight: bold;">0644</span>);
<span style="color: #008800; font-weight: bold;">if</span> (fd <span style="color: #333333;"><</span> <span style="color: #0000dd; font-weight: bold;">0</span>){
printf(<span style="background-color: #fff0f0;">"fork_exec : open failed</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
<span style="color: #007020;">exit</span>(<span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>);
}
ret <span style="color: #333333;">=</span> dup3(fd, new_fd, O_CLOEXEC);
printf(<span style="background-color: #fff0f0;">"parent process new_fd </span><span style="background-color: #eeeeee;">%d</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>, new_fd);
<span style="color: #008800; font-weight: bold;">if</span> (ret <span style="color: #333333;"><</span> <span style="color: #0000dd; font-weight: bold;">0</span>){
printf(<span style="background-color: #fff0f0;">"dup3 : dup3 failed</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
<span style="color: #007020;">exit</span>(<span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>);
}
pid <span style="color: #333333;">=</span> fork();
<span style="color: #008800; font-weight: bold;">if</span> (pid <span style="color: #333333;">==</span> <span style="color: #0000dd; font-weight: bold;">0</span>) {
sprintf(fd_buf,<span style="background-color: #fff0f0;">"</span><span style="background-color: #eeeeee;">%d</span><span style="background-color: #fff0f0;">"</span>,new_fd);
ret <span style="color: #333333;">=</span> execvp(<span style="background-color: #fff0f0;">"./child_process"</span>, argv);
<span style="color: #008800; font-weight: bold;">if</span> (ret <span style="color: #333333;"><</span> <span style="color: #0000dd; font-weight: bold;">0</span>) {
printf(<span style="background-color: #fff0f0;">"execv() failed...</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
<span style="color: #007020;">exit</span>(<span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>);
}
}
}
<span style="color: #007020;">int</span> main() {
<span style="color: #007020;">int</span> ret;
ret <span style="color: #333333;">=</span> dup3_basic_tests();
<span style="color: #008800; font-weight: bold;">if</span> (ret <span style="color: #333333;">==</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>)
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
ret <span style="color: #333333;">=</span> dup3_loop();
<span style="color: #008800; font-weight: bold;">if</span> (ret <span style="color: #333333;">==</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>)
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
fork_exec();
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #0000dd; font-weight: bold;">0</span>;
}
</pre>
</td></tr>
</tbody></table>
</div>
<br />
<br />
<br />
Program for child_process.c which will run on exec,
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.2em 0.2em 0.2em 0.10em; border: solid gray; overflow: auto; padding: 0.4em 0.8em; width: auto;">
<table><tbody>
<tr><td><pre style="line-height: 125%; margin: 0;"> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24</pre>
</td><td><pre style="line-height: 125%; margin: 0;"><span style="color: #888888;">#include <stdio.h></span>
<span style="color: #888888;">#include <unistd.h></span>
<span style="color: #888888;">#include <fcntl.h></span>
<span style="color: #007020;">int</span> main(<span style="color: #007020;">int</span> argc, char <span style="color: #333333;">*</span>argv[]) {
<span style="color: #007020;">int</span> fd,ret;
FILE <span style="color: #333333;">*</span><span style="color: #007020;">file</span>;
<span style="color: #008800; font-weight: bold;">if</span> (argc <span style="color: #333333;"><</span> <span style="color: #0000dd; font-weight: bold;">2</span>) {
printf(<span style="background-color: #fff0f0;">"Usage : </span><span style="background-color: #eeeeee;">%s</span><span style="background-color: #fff0f0;"> fd</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>,argv[<span style="color: #0000dd; font-weight: bold;">0</span>]);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
}
fd <span style="color: #333333;">=</span> atoi(argv[<span style="color: #0000dd; font-weight: bold;">1</span>]);
printf(<span style="background-color: #fff0f0;">"child process fd </span><span style="background-color: #eeeeee;">%d</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>, fd);
<span style="color: #007020;">file</span> <span style="color: #333333;">=</span> fdopen(fd, <span style="background-color: #fff0f0;">"r+"</span>);
<span style="color: #008800; font-weight: bold;">if</span> (<span style="color: #007020;">file</span> <span style="color: #333333;">==</span> NULL)
printf(<span style="background-color: #fff0f0;">"fork-exec : test pass</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
<span style="color: #008800; font-weight: bold;">else</span>
printf(<span style="background-color: #fff0f0;">"fork-exec : test fail</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #0000dd; font-weight: bold;">0</span>;
}
</pre>
</td></tr>
</tbody></table>
</div>
</div>
Sandhya Bankarhttp://www.blogger.com/profile/05699980933586164639noreply@blogger.com0tag:blogger.com,1999:blog-6083439994660540394.post-77116508474947882432017-01-31T02:51:00.000-08:002017-01-31T02:51:40.569-08:00Test cases of dup2() for radix tree__alloc_fd<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="graf graf--p graf-after--h3" id="dbe7" name="dbe7">
I have written a test case of dup2()</div>
<div class="graf graf--p graf-after--p" id="2ebf" name="2ebf">
This is dup2() functionality test case. The dup2() makes newfd be the copy of oldfd, closing newfd first if necessary.</div>
<div class="graf graf--p graf-after--p" id="4451" name="4451">
This test case covers below scenarios</div>
<div class="graf graf--p graf-after--p" id="4451" name="4451">
* Provide invalid file descriptor to dup2()</div>
<div class="graf graf--p graf-after--p" id="4451" name="4451">
* Fill up all file descriptor table and try to duplicate a file descriptor using dup2().</div>
<div class="graf graf--p graf-after--p" id="4451" name="4451">
* Using dup2() duplicate both file descriptor return by the pipe.</div>
<div class="graf graf--p graf-after--p" id="4451" name="4451">
* Check inode number after passing newfd and oldfd to fstat(). inode number should be same.</div>
<div class="graf graf--p graf-after--p" id="4451" name="4451">
<br /></div>
<div class="graf graf--p graf-after--p" id="0801" name="0801">
Upon successful execution this program will return zero value, otherwise, it will return -1.</div>
<div class="graf graf--p graf-after--p" id="0801" name="0801">
<br /></div>
<div class="graf graf--p graf-after--p" id="0801" name="0801">
<br /></div>
</div>
<!-- HTML generated using hilite.me --><div style="background: #ffffff; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><table><tr><td><pre style="margin: 0; line-height: 125%"> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235</pre></td><td><pre style="margin: 0; line-height: 125%"><span style="color: #888888">#include <stdio.h></span>
<span style="color: #888888">#include <sys/types.h></span>
<span style="color: #888888">#include <sys/stat.h></span>
<span style="color: #888888">#include <fcntl.h></span>
<span style="color: #888888">#include <errno.h></span>
<span style="color: #888888">#include <time.h></span>
<span style="color: #888888">#include <stdlib.h></span>
<span style="color: #888888">#include <unistd.h></span>
<span style="color: #888888">#include <string.h></span>
<span style="color: #888888">#include <errno.h></span>
<span style="color: #007020">int</span> maxfd;
<span style="color: #007020">int</span> dup2_misc_tc()
{
<span style="color: #007020">int</span> <span style="color: #333333">*</span>fd, i, maxfd;
<span style="color: #007020">int</span> ret, goodfd;
goodfd <span style="color: #333333">=</span> <span style="color: #007020">open</span>(<span style="background-color: #fff0f0">"test/file1"</span>, O_CREAT <span style="color: #333333">|</span> O_RDWR, <span style="color: #4400EE; font-weight: bold">0644</span>);
<span style="color: #008800; font-weight: bold">if</span>(goodfd <span style="color: #333333">==</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>)
{
printf(<span style="background-color: #fff0f0">"dup2_misc_tc() : dup2 failed...</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
<span style="color: #008800; font-weight: bold">return</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>;
}
ret <span style="color: #333333">=</span> dup2(<span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>, goodfd);
<span style="color: #008800; font-weight: bold">if</span>(ret <span style="color: #333333">==</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>)
{
printf(<span style="background-color: #fff0f0">"dup2_misc_tc1 : Pass </span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
}
<span style="color: #008800; font-weight: bold">else</span>
{
printf(<span style="background-color: #fff0f0">"dup2_misc_tc1: fail </span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
}
ret <span style="color: #333333">=</span> dup2(goodfd, <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>);
<span style="color: #008800; font-weight: bold">if</span>(ret <span style="color: #333333">==</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>)
{
printf(<span style="background-color: #fff0f0">"dup2_misc_tc1 : Pass </span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
}
<span style="color: #008800; font-weight: bold">else</span>
{
printf(<span style="background-color: #fff0f0">"dup2_misc_tc1: fail </span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
}
close(goodfd);
unlink(<span style="background-color: #fff0f0">"test/file1"</span>);
<span style="color: #008800; font-weight: bold">return</span> <span style="color: #0000DD; font-weight: bold">0</span>;
}
<span style="color: #007020">int</span> max_fd_dup2()
{
<span style="color: #007020">int</span> <span style="color: #333333">*</span>fd, i;
<span style="color: #007020">int</span> ret;
char buf[<span style="color: #0000DD; font-weight: bold">15</span>];
maxfd <span style="color: #333333">=</span> getdtablesize();
fd <span style="color: #333333">=</span> malloc(maxfd <span style="color: #333333">*</span> sizeof(<span style="color: #007020">int</span>));
printf(<span style="background-color: #fff0f0">"maxfd = </span><span style="background-color: #eeeeee">%d</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>,maxfd);
<span style="color: #008800; font-weight: bold">for</span>(i <span style="color: #333333">=</span> <span style="color: #0000DD; font-weight: bold">0</span>; i <span style="color: #333333"><</span> (maxfd<span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">3</span>); i<span style="color: #333333">++</span>)
{
sprintf(buf, <span style="background-color: #fff0f0">"test/myfile</span><span style="background-color: #eeeeee">%d</span><span style="background-color: #fff0f0">"</span>, i);
fd[i] <span style="color: #333333">=</span> <span style="color: #007020">open</span>(buf, O_CREAT <span style="color: #333333">|</span> O_RDWR, <span style="color: #4400EE; font-weight: bold">0644</span>);
<span style="color: #008800; font-weight: bold">if</span> (fd[i] <span style="color: #333333">==</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>)
{
printf(<span style="background-color: #fff0f0">"max_fd_dup2() :: open() failed...</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
<span style="color: #008800; font-weight: bold">return</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>;
}
}
printf(<span style="background-color: #fff0f0">"here ***************</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
ret <span style="color: #333333">=</span> dup2(<span style="color: #0000DD; font-weight: bold">10</span>,<span style="color: #0000DD; font-weight: bold">24</span>);
<span style="color: #008800; font-weight: bold">if</span>(ret <span style="color: #333333">==</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>)
printf(<span style="background-color: #fff0f0">"max_fd_dup2: tc: Fail</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
<span style="color: #008800; font-weight: bold">else</span>
printf(<span style="background-color: #fff0f0">"max_fd_dup2: tc: Pass</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
ret <span style="color: #333333">=</span> dup2(<span style="color: #0000DD; font-weight: bold">10</span>,maxfd);
<span style="color: #008800; font-weight: bold">if</span>(ret <span style="color: #333333">==</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>)
printf(<span style="background-color: #fff0f0">"max_fd_dup2: tc: Pass</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
<span style="color: #008800; font-weight: bold">else</span>
printf(<span style="background-color: #fff0f0">"max_fd_dup2: tc: Fail</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
<span style="color: #008800; font-weight: bold">return</span> <span style="color: #0000DD; font-weight: bold">0</span>;
}
<span style="color: #007020">int</span> pipe_dup2_tc()
{
<span style="color: #007020">int</span> fd[<span style="color: #0000DD; font-weight: bold">2</span>];
<span style="color: #007020">int</span> ret;
ret <span style="color: #333333">=</span> pipe(fd);
<span style="color: #008800; font-weight: bold">if</span>(ret <span style="color: #333333">==</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>)
{
printf(<span style="background-color: #fff0f0">"pipe_dup2_tc : Pipe Failed</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
<span style="color: #008800; font-weight: bold">return</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>;
}
ret <span style="color: #333333">=</span> dup2(fd[<span style="color: #0000DD; font-weight: bold">0</span>],<span style="color: #0000DD; font-weight: bold">5</span>);
<span style="color: #008800; font-weight: bold">if</span>(ret <span style="color: #333333">==</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>)
printf(<span style="background-color: #fff0f0">"pipe_dup2_tc : fail</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
<span style="color: #008800; font-weight: bold">else</span>
printf(<span style="background-color: #fff0f0">"pipe_dup2_tc: pass1</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
ret <span style="color: #333333">=</span> dup2(fd[<span style="color: #0000DD; font-weight: bold">1</span>],<span style="color: #0000DD; font-weight: bold">6</span>);
<span style="color: #008800; font-weight: bold">if</span>(ret <span style="color: #333333">==</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>)
printf(<span style="background-color: #fff0f0">"pipe_dup2_tc : fail</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
<span style="color: #008800; font-weight: bold">else</span>
printf(<span style="background-color: #fff0f0">"pipe_dup2_tc: pass2</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
close(fd[<span style="color: #0000DD; font-weight: bold">0</span>]);
close(fd[<span style="color: #0000DD; font-weight: bold">1</span>]);
<span style="color: #008800; font-weight: bold">return</span> <span style="color: #0000DD; font-weight: bold">0</span>;
}
<span style="color: #007020">int</span> dup2_ino_tc()
{
struct stat buf1, buf2;
char buf[<span style="color: #0000DD; font-weight: bold">20</span>];
<span style="color: #007020">int</span> ret, oldfd, newfd, fd_fd;
oldfd <span style="color: #333333">=</span> <span style="color: #007020">open</span>(<span style="background-color: #fff0f0">"test/file11"</span>, O_CREAT <span style="color: #333333">|</span> O_RDWR, <span style="color: #4400EE; font-weight: bold">0644</span>);
<span style="color: #008800; font-weight: bold">if</span>(oldfd <span style="color: #333333">==</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>)
{
printf(<span style="background-color: #fff0f0">"dup_misc_tc() : open() failed...</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
<span style="color: #008800; font-weight: bold">return</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>;
}
newfd <span style="color: #333333">=</span> <span style="color: #007020">open</span>(<span style="background-color: #fff0f0">"test/file12"</span>, O_CREAT <span style="color: #333333">|</span> O_RDWR, <span style="color: #4400EE; font-weight: bold">0644</span>);
<span style="color: #008800; font-weight: bold">if</span>(newfd <span style="color: #333333">==</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>)
{
printf(<span style="background-color: #fff0f0">"dup_misc_tc() : open() failed...</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
<span style="color: #008800; font-weight: bold">return</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>;
}
ret <span style="color: #333333">=</span> dup2(oldfd,newfd);
<span style="color: #008800; font-weight: bold">if</span> (ret <span style="color: #333333">==</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>)
{
printf(<span style="background-color: #fff0f0">"dup2_ino_tc : fail</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
}
<span style="color: #008800; font-weight: bold">else</span>
{
printf(<span style="background-color: #fff0f0">"dup2_ino_tc : pass</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
}
ret <span style="color: #333333">=</span> fstat(oldfd, <span style="color: #333333">&</span>buf1); <span style="color: #333333">/*</span> get the <span style="color: #007020">file</span> status <span style="color: #333333">*/</span>
<span style="color: #008800; font-weight: bold">if</span>(ret <span style="color: #333333">==</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>)
{
printf(<span style="background-color: #fff0f0">"dup2_ino_tc() : fstat() failed...</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
<span style="color: #008800; font-weight: bold">return</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>;
}
ret <span style="color: #333333">=</span> fstat(newfd, <span style="color: #333333">&</span>buf2);
<span style="color: #008800; font-weight: bold">if</span>(ret <span style="color: #333333">==</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>)
{
printf(<span style="background-color: #fff0f0">"dup2_ino_tc() : fstat() failed...</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
<span style="color: #008800; font-weight: bold">return</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>;
}
printf(<span style="background-color: #fff0f0">"buf1.st_ino = </span><span style="background-color: #eeeeee">%lu</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>,buf1<span style="color: #333333">.</span>st_ino);
printf(<span style="background-color: #fff0f0">"buf2.st_ino = </span><span style="background-color: #eeeeee">%lu</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>,buf2<span style="color: #333333">.</span>st_ino);
<span style="color: #008800; font-weight: bold">if</span>(buf1<span style="color: #333333">.</span>st_ino <span style="color: #333333">==</span> buf2<span style="color: #333333">.</span>st_ino)
printf(<span style="background-color: #fff0f0">"dup2_ino_tc : pass</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
<span style="color: #008800; font-weight: bold">else</span>
printf(<span style="background-color: #fff0f0">"dup2_ino_tc : fail</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
close(oldfd);
close(newfd);
unlink(<span style="background-color: #fff0f0">"test/file1"</span>);
<span style="color: #008800; font-weight: bold">return</span> <span style="color: #0000DD; font-weight: bold">0</span>;
}
<span style="color: #007020">int</span> close_fd(<span style="color: #007020">int</span> count)
{
<span style="color: #007020">int</span> i;
<span style="color: #008800; font-weight: bold">for</span>(i <span style="color: #333333">=</span> <span style="color: #0000DD; font-weight: bold">3</span>; i <span style="color: #333333"><</span> count; i<span style="color: #333333">++</span>)
{
close(i);
}
}
void unlink_files(<span style="color: #007020">int</span> count)
{
char buf[<span style="color: #0000DD; font-weight: bold">15</span>];
<span style="color: #007020">int</span> i;
<span style="color: #008800; font-weight: bold">for</span>(i <span style="color: #333333">=</span> <span style="color: #0000DD; font-weight: bold">0</span>; i <span style="color: #333333"><</span> count; i<span style="color: #333333">++</span>)
{
sprintf(buf,<span style="background-color: #fff0f0">"test/myfile</span><span style="background-color: #eeeeee">%d</span><span style="background-color: #fff0f0">"</span>,i);
unlink(buf);
}
}
<span style="color: #007020">int</span> main(<span style="color: #007020">int</span> argc, char <span style="color: #333333">**</span>argv)
{
<span style="color: #007020">int</span> err <span style="color: #333333">=</span> <span style="color: #0000DD; font-weight: bold">0</span>;
char <span style="color: #333333">*</span>name;
<span style="color: #007020">int</span> goodfd;
<span style="color: #008800; font-weight: bold">if</span>(argc <span style="color: #333333"><</span> <span style="color: #0000DD; font-weight: bold">2</span>)
{
printf(<span style="background-color: #fff0f0">"usage: </span><span style="background-color: #eeeeee">%s</span><span style="background-color: #fff0f0"> <tcNUM> </span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>, argv[<span style="color: #0000DD; font-weight: bold">0</span>]);
printf(<span style="background-color: #fff0f0">"Provide oprion to program as tc1, tc2, tc3, tc4</span><span style="color: #666666; font-weight: bold; background-color: #fff0f0">\n</span><span style="background-color: #fff0f0">"</span>);
<span style="color: #008800; font-weight: bold">return</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>;
}
name <span style="color: #333333">=</span> argv[<span style="color: #0000DD; font-weight: bold">1</span>];
<span style="color: #008800; font-weight: bold">if</span>(strcmp(name, <span style="background-color: #fff0f0">"tc1"</span>) <span style="color: #333333">==</span> <span style="color: #0000DD; font-weight: bold">0</span>)
{
err <span style="color: #333333">=</span> dup2_misc_tc();
<span style="color: #008800; font-weight: bold">if</span>(err <span style="color: #333333">==</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>)
{
<span style="color: #008800; font-weight: bold">return</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>;
}
}
<span style="color: #008800; font-weight: bold">else</span> <span style="color: #008800; font-weight: bold">if</span>(strcmp(name, <span style="background-color: #fff0f0">"tc2"</span>) <span style="color: #333333">==</span> <span style="color: #0000DD; font-weight: bold">0</span>)
{
max_fd_dup2();
close_fd(maxfd<span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">3</span>);
unlink_files(maxfd);
}
<span style="color: #008800; font-weight: bold">else</span> <span style="color: #008800; font-weight: bold">if</span>(strcmp(name, <span style="background-color: #fff0f0">"tc3"</span>) <span style="color: #333333">==</span> <span style="color: #0000DD; font-weight: bold">0</span>)
{
pipe_dup2_tc();
}
<span style="color: #008800; font-weight: bold">else</span> <span style="color: #008800; font-weight: bold">if</span>(strcmp(name, <span style="background-color: #fff0f0">"tc4"</span>) <span style="color: #333333">==</span> <span style="color: #0000DD; font-weight: bold">0</span>)
{
dup2_ino_tc();
}
<span style="color: #008800; font-weight: bold">return</span> <span style="color: #0000DD; font-weight: bold">0</span>;
}
</pre></td></tr></table></div>
Sandhya Bankarhttp://www.blogger.com/profile/05699980933586164639noreply@blogger.com0tag:blogger.com,1999:blog-6083439994660540394.post-76333785538500817422017-01-31T02:47:00.000-08:002017-01-31T02:47:05.422-08:00Test cases of dup() for radix tree__alloc_fd<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="graf graf--p graf-after--h3" id="bb68" name="bb68">
I have written the test case for dup( ).</div>
<div class="graf graf--p graf-after--p" id="3249" name="3249">
This is dup( ) functionality test case. The dup( ) use for duplicate the file descriptor.<br />
This test case covers below different scenarios:</div>
<div class="graf graf--p graf-after--p" id="3249" name="3249">
* Duplicate file descriptor five times one by one.</div>
<div class="graf graf--p graf-after--p" id="3249" name="3249">
* Fill up all file descriptor table and try to duplicate a file descriptor. dup( ) should not be succeeded.</div>
<div class="graf graf--p graf-after--p" id="3249" name="3249">
* Give invalid file descriptor to the dup( ). dup( ) should be failed.</div>
<div class="graf graf--p graf-after--p" id="3249" name="3249">
* Check inode number after passing newfd and oldfd to fstat( ). inode number should be same.<br />
Upon successful execution this program will return zero value, otherwise, it will return -1.</div>
<div class="graf graf--p graf-after--p" id="3249" name="3249">
<br /></div>
<div class="graf graf--p graf-after--p" id="3249" name="3249">
<br /></div>
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<table><tbody>
<tr><td><pre style="line-height: 125%; margin: 0;"> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198</pre>
</td><td><pre style="line-height: 125%; margin: 0;"><span style="color: #888888;">#include <stdio.h></span>
<span style="color: #888888;">#include <sys/types.h></span>
<span style="color: #888888;">#include <sys/stat.h></span>
<span style="color: #888888;">#include <fcntl.h></span>
<span style="color: #888888;">#include <errno.h></span>
<span style="color: #888888;">#include <time.h></span>
<span style="color: #888888;">#include <stdlib.h></span>
<span style="color: #888888;">#include <unistd.h></span>
<span style="color: #888888;">#include <string.h></span>
<span style="color: #888888;">#include <errno.h></span>
<span style="color: #007020;">int</span> maxfd;
<span style="color: #007020;">int</span> dup_fd(<span style="color: #007020;">int</span> count)
{
<span style="color: #007020;">int</span> fd[count],i;
char buf[<span style="color: #0000dd; font-weight: bold;">15</span>];
<span style="color: #008800; font-weight: bold;">for</span>(i <span style="color: #333333;">=</span> <span style="color: #0000dd; font-weight: bold;">0</span>; i <span style="color: #333333;"><</span> count; i<span style="color: #333333;">++</span>)
{
sprintf(buf, <span style="background-color: #ffaaaa; color: red;">“</span>test<span style="color: #333333;">/</span>myfile<span style="color: #333333;">%</span>d<span style="background-color: #ffaaaa; color: red;">”</span>, i);
fd[i] <span style="color: #333333;">=</span> <span style="color: #007020;">open</span>(buf, O_CREAT <span style="color: #333333;">|</span> O_RDWR, <span style="color: #4400ee; font-weight: bold;">0644</span>);
printf(<span style="background-color: #ffaaaa; color: red;">“</span><span style="color: #007020;">open</span>: <span style="color: #333333;">%</span>d\n<span style="background-color: #ffaaaa; color: red;">”</span>, fd[i]);
<span style="color: #008800; font-weight: bold;">if</span>(fd[i] <span style="color: #333333;">==</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>)
{
printf(<span style="background-color: #ffaaaa; color: red;">“</span><span style="color: #007020;">open</span>() failed<span style="background-color: #ffaaaa; color: red;">…</span>\n<span style="background-color: #ffaaaa; color: red;">”</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
}
fd [i<span style="color: #333333;">+</span><span style="color: #0000dd; font-weight: bold;">1</span>] <span style="color: #333333;">=</span> dup(i);
<span style="color: #008800; font-weight: bold;">if</span> (fd [i<span style="color: #333333;">+</span><span style="color: #0000dd; font-weight: bold;">1</span>] <span style="color: #333333;">==</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>)
{
printf(<span style="background-color: #ffaaaa; color: red;">“</span>dup() failed<span style="background-color: #ffaaaa; color: red;">…</span>\n<span style="background-color: #ffaaaa; color: red;">”</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
}
printf(<span style="background-color: #ffaaaa; color: red;">“</span>dup: <span style="color: #333333;">%</span>d\n<span style="background-color: #ffaaaa; color: red;">”</span>, fd [i<span style="color: #333333;">+</span><span style="color: #0000dd; font-weight: bold;">1</span>]);
}
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #0000dd; font-weight: bold;">0</span>;
}
void close_fd(<span style="color: #007020;">int</span> count)
{
<span style="color: #007020;">int</span> i;
<span style="color: #008800; font-weight: bold;">for</span> (i <span style="color: #333333;">=</span> <span style="color: #0000dd; font-weight: bold;">3</span>; i <span style="color: #333333;"><</span> count; i<span style="color: #333333;">++</span>)
{
close(i);
}
}
void unlink_files(<span style="color: #007020;">int</span> count)
{
char buf[<span style="color: #0000dd; font-weight: bold;">15</span>];
<span style="color: #007020;">int</span> i;
<span style="color: #008800; font-weight: bold;">for</span>(i <span style="color: #333333;">=</span> <span style="color: #0000dd; font-weight: bold;">0</span>; i <span style="color: #333333;"><</span> count; i<span style="color: #333333;">++</span>)
{
sprintf(buf,<span style="background-color: #ffaaaa; color: red;">”</span>test<span style="color: #333333;">/</span>myfile<span style="color: #333333;">%</span>d<span style="background-color: #ffaaaa; color: red;">”</span>,i);
unlink(buf);
}
}
<span style="color: #007020;">int</span> max_fd_dup()
{
<span style="color: #007020;">int</span> <span style="color: #333333;">*</span>fd, i;
<span style="color: #007020;">int</span> ret;
char buf[<span style="color: #0000dd; font-weight: bold;">15</span>];
maxfd <span style="color: #333333;">=</span> getdtablesize(); <span style="color: #333333;">/*</span> get descriptor table size <span style="color: #333333;">*/</span>
fd <span style="color: #333333;">=</span> malloc(maxfd <span style="color: #333333;">*</span> sizeof(<span style="color: #007020;">int</span>)); <span style="color: #333333;">/*</span> allocate the memory <span style="color: #333333;">*/</span>
printf(<span style="background-color: #ffaaaa; color: red;">“</span>maxfd <span style="color: #333333;">=</span> <span style="color: #333333;">%</span>d\n<span style="background-color: #ffaaaa; color: red;">”</span>,maxfd);
<span style="color: #008800; font-weight: bold;">for</span> (i <span style="color: #333333;">=</span> <span style="color: #0000dd; font-weight: bold;">0</span>; i <span style="color: #333333;"><</span> (maxfd<span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">3</span>); i<span style="color: #333333;">++</span>)
{
sprintf(buf, <span style="background-color: #ffaaaa; color: red;">“</span>test<span style="color: #333333;">/</span>myfile<span style="color: #333333;">%</span>d<span style="background-color: #ffaaaa; color: red;">”</span>, i);
fd[i] <span style="color: #333333;">=</span> <span style="color: #007020;">open</span>(buf, O_CREAT <span style="color: #333333;">|</span> O_RDWR, <span style="color: #4400ee; font-weight: bold;">0644</span>);
<span style="color: #008800; font-weight: bold;">if</span> (fd[i] <span style="color: #333333;">==</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>)
{
printf(<span style="background-color: #ffaaaa; color: red;">“</span>max_fd_dup() :: <span style="color: #007020;">open</span>() failed<span style="background-color: #ffaaaa; color: red;">…</span>\n<span style="background-color: #ffaaaa; color: red;">”</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
}
}
printf(<span style="background-color: #ffaaaa; color: red;">“</span>here <span style="color: #333333;">*****************</span>\n<span style="background-color: #ffaaaa; color: red;">”</span>);
ret <span style="color: #333333;">=</span> dup(<span style="color: #0000dd; font-weight: bold;">10</span>); <span style="color: #333333;">/*</span> duplicate the <span style="color: #007020;">file</span> descriptor <span style="color: #333333;">*/</span>
<span style="color: #008800; font-weight: bold;">if</span>(ret <span style="color: #333333;">==</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>)
printf(<span style="background-color: #ffaaaa; color: red;">“</span>max_fd_dup: tc : <span style="color: #008800; font-weight: bold;">pass</span>\n<span style="background-color: #ffaaaa; color: red;">”</span>);
<span style="color: #008800; font-weight: bold;">else</span>
printf(<span style="background-color: #ffaaaa; color: red;">“</span>max_fd_dup: tc : fail\n<span style="background-color: #ffaaaa; color: red;">”</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #0000dd; font-weight: bold;">0</span>;
}
<span style="color: #007020;">int</span> dup_misc_tc()
{
<span style="color: #007020;">int</span> <span style="color: #333333;">*</span>fd, i, maxfd;
struct stat buf1, buf2;
char buf[<span style="color: #0000dd; font-weight: bold;">20</span>];
<span style="color: #007020;">int</span> ret, oldfd, newfd;
ret <span style="color: #333333;">=</span> dup(<span style="color: #0000dd; font-weight: bold;">10</span>);
<span style="color: #008800; font-weight: bold;">if</span> (ret <span style="color: #333333;">==</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>)
{
printf(<span style="background-color: #ffaaaa; color: red;">“</span>dup_misc_tc1 : <span style="color: #008800; font-weight: bold;">pass</span>\n<span style="background-color: #ffaaaa; color: red;">”</span>);
}
<span style="color: #008800; font-weight: bold;">else</span>
{
printf(<span style="background-color: #ffaaaa; color: red;">“</span>dup_misc_tc1 : fail\n<span style="background-color: #ffaaaa; color: red;">”</span>);
}
ret <span style="color: #333333;">=</span> dup(<span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>);
<span style="color: #008800; font-weight: bold;">if</span> (ret <span style="color: #333333;">==</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>)
{
printf(<span style="background-color: #ffaaaa; color: red;">“</span>dup_misc_tc2 : <span style="color: #008800; font-weight: bold;">pass</span>\n<span style="background-color: #ffaaaa; color: red;">”</span>);
}
<span style="color: #008800; font-weight: bold;">else</span>
{
printf(<span style="background-color: #ffaaaa; color: red;">“</span>dup_misc_tc2 : fail\n<span style="background-color: #ffaaaa; color: red;">”</span>);
}
oldfd <span style="color: #333333;">=</span> <span style="color: #007020;">open</span>(<span style="background-color: #ffaaaa; color: red;">“</span>test<span style="color: #333333;">/</span>file1<span style="background-color: #ffaaaa; color: red;">”</span>, O_CREAT <span style="color: #333333;">|</span> O_RDWR, <span style="color: #4400ee; font-weight: bold;">0644</span>);
<span style="color: #008800; font-weight: bold;">if</span>(oldfd <span style="color: #333333;">==</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>)
{
printf(<span style="background-color: #ffaaaa; color: red;">“</span>dup_misc_tc() : <span style="color: #007020;">open</span>() failed<span style="background-color: #ffaaaa; color: red;">…</span>\n<span style="background-color: #ffaaaa; color: red;">”</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
}
newfd <span style="color: #333333;">=</span> dup(oldfd);
<span style="color: #008800; font-weight: bold;">if</span>(newfd <span style="color: #333333;">==</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>)
{
printf(<span style="background-color: #ffaaaa; color: red;">“</span>dup_misc_tc() : dup() failed<span style="background-color: #ffaaaa; color: red;">…</span>\n<span style="background-color: #ffaaaa; color: red;">”</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
}
ret <span style="color: #333333;">=</span> fstat(oldfd, <span style="color: #333333;">&</span>buf1); <span style="color: #333333;">/*</span> get the <span style="color: #007020;">file</span> status <span style="color: #333333;">*/</span>
<span style="color: #008800; font-weight: bold;">if</span>(ret <span style="color: #333333;">==</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>)
{
printf(<span style="background-color: #ffaaaa; color: red;">“</span>dup_misc_tc() : fstat() failed<span style="background-color: #ffaaaa; color: red;">…</span>\n<span style="background-color: #ffaaaa; color: red;">”</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
}
ret <span style="color: #333333;">=</span> fstat(newfd, <span style="color: #333333;">&</span>buf2);
<span style="color: #008800; font-weight: bold;">if</span>(ret <span style="color: #333333;">==</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>)
{
printf(<span style="background-color: #ffaaaa; color: red;">“</span>dup_misc_tc() : fstat() failed<span style="background-color: #ffaaaa; color: red;">…</span>\n<span style="background-color: #ffaaaa; color: red;">”</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
}
printf(<span style="background-color: #ffaaaa; color: red;">“</span>buf1<span style="color: #333333;">.</span>st_ino <span style="color: #333333;">=</span> <span style="color: #333333;">%</span>d\n<span style="background-color: #ffaaaa; color: red;">”</span>,buf1<span style="color: #333333;">.</span>st_ino);
printf(<span style="background-color: #ffaaaa; color: red;">“</span>buf2<span style="color: #333333;">.</span>st_ino <span style="color: #333333;">=</span> <span style="color: #333333;">%</span>d\n<span style="background-color: #ffaaaa; color: red;">”</span>,buf2<span style="color: #333333;">.</span>st_ino);
<span style="color: #008800; font-weight: bold;">if</span>(buf1<span style="color: #333333;">.</span>st_ino <span style="color: #333333;">==</span> buf2<span style="color: #333333;">.</span>st_ino)
printf(<span style="background-color: #ffaaaa; color: red;">“</span>dup_misc_tc3 : <span style="color: #008800; font-weight: bold;">pass</span>\n<span style="background-color: #ffaaaa; color: red;">”</span>);
<span style="color: #008800; font-weight: bold;">else</span>
printf(<span style="background-color: #ffaaaa; color: red;">“</span>dup_misc_tc3 : fail\n<span style="background-color: #ffaaaa; color: red;">”</span>);
close(oldfd);
close(newfd);
unlink(<span style="background-color: #ffaaaa; color: red;">“</span>test<span style="color: #333333;">/</span>file1<span style="background-color: #ffaaaa; color: red;">”</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #0000dd; font-weight: bold;">0</span>;
}
<span style="color: #007020;">int</span> main(<span style="color: #007020;">int</span> argc, char <span style="color: #333333;">**</span>argv)
{
<span style="color: #007020;">int</span> err <span style="color: #333333;">=</span> <span style="color: #0000dd; font-weight: bold;">0</span>;
char <span style="color: #333333;">*</span>name;
<span style="color: #008800; font-weight: bold;">if</span>(argc <span style="color: #333333;"><</span> <span style="color: #0000dd; font-weight: bold;">2</span>)
{
printf(<span style="background-color: #ffaaaa; color: red;">“</span>usage: <span style="color: #333333;">%</span>s <span style="color: #333333;"><</span>tcNum<span style="color: #333333;">></span> \n<span style="background-color: #ffaaaa; color: red;">”</span>, argv[<span style="color: #0000dd; font-weight: bold;">0</span>]);
printf(<span style="background-color: #ffaaaa; color: red;">“</span>provide options to program <span style="color: #008800; font-weight: bold;">as</span> tc1, tc2, tc3 etc\n<span style="background-color: #ffaaaa; color: red;">”</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
}
name <span style="color: #333333;">=</span> argv[<span style="color: #0000dd; font-weight: bold;">1</span>];
<span style="color: #008800; font-weight: bold;">if</span>(strcmp(name, <span style="background-color: #ffaaaa; color: red;">“</span>tc1<span style="background-color: #ffaaaa; color: red;">”</span>) <span style="color: #333333;">==</span> <span style="color: #0000dd; font-weight: bold;">0</span>)
{
err <span style="color: #333333;">=</span> dup_fd(<span style="color: #0000dd; font-weight: bold;">5</span>);
<span style="color: #008800; font-weight: bold;">if</span> (err <span style="color: #333333;">==</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>)
{
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">1</span>;
}
close_fd(<span style="color: #0000dd; font-weight: bold;">10</span>);
unlink_files(<span style="color: #0000dd; font-weight: bold;">5</span>);
}
<span style="color: #008800; font-weight: bold;">else</span> <span style="color: #008800; font-weight: bold;">if</span>(strcmp(name, <span style="background-color: #ffaaaa; color: red;">“</span>tc2<span style="background-color: #ffaaaa; color: red;">”</span>) <span style="color: #333333;">==</span> <span style="color: #0000dd; font-weight: bold;">0</span>)
{
max_fd_dup();
close_fd(maxfd<span style="color: #333333;">-</span><span style="color: #0000dd; font-weight: bold;">3</span>);
unlink_files(maxfd);
}
<span style="color: #008800; font-weight: bold;">else</span> <span style="color: #008800; font-weight: bold;">if</span>(strcmp(name, <span style="background-color: #ffaaaa; color: red;">“</span>tc3<span style="background-color: #ffaaaa; color: red;">”</span>) <span style="color: #333333;">==</span> <span style="color: #0000dd; font-weight: bold;">0</span>)
{
dup_misc_tc();
}
<span style="color: #008800; font-weight: bold;">else</span>
printf(<span style="background-color: #ffaaaa; color: red;">“</span>Invalid option \n<span style="background-color: #ffaaaa; color: red;">”</span>);
<span style="color: #008800; font-weight: bold;">return</span> <span style="color: #0000dd; font-weight: bold;">0</span>;
}
</pre>
</td></tr>
</tbody></table>
</div>
</div>
Sandhya Bankarhttp://www.blogger.com/profile/05699980933586164639noreply@blogger.com0tag:blogger.com,1999:blog-6083439994660540394.post-67797434243320664332017-01-31T02:38:00.001-08:002017-01-31T02:38:02.938-08:00Threaded test case for radix tree __alloc_fd<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="graf graf--p graf-after--h3" id="06cd" name="06cd">
The purpose of this test cases is to stress the locking inside the kernel.</div>
<div class="graf graf--p graf-after--h3" id="06cd" name="06cd">
<br /></div>
<div class="graf graf--p graf-after--p" id="9fa9" name="9fa9">
All threads share a common file descriptor table. As each thread opens and closes its file descriptors, it must ensure that other threads do not interfere. So if we have many threads running, simultaneously opening and closing file descriptors, we’re trying to provoke a crash, or a corruption, or some other bad behavior by the kernel.</div>
<div class="graf graf--p graf-after--p" id="9fa9" name="9fa9">
<br /></div>
<div class="graf graf--p graf-after--p" id="9fa9" name="9fa9">
<br /></div>
</div>
<!-- HTML generated using hilite.me --><div style="background: #ffffff; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><table><tr><td><pre style="margin: 0; line-height: 125%"> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49</pre></td><td><pre style="margin: 0; line-height: 125%"><span style="color: #888888">#include <stdio.h></span>
<span style="color: #888888">#include <sys/types.h></span>
<span style="color: #888888">#include <sys/stat.h></span>
<span style="color: #888888">#include <fcntl.h></span>
<span style="color: #888888">#include <errno.h></span>
<span style="color: #888888">#include <pthread.h></span>
<span style="color: #888888">#define NUM_THREADS 12</span>
<span style="color: #888888">#define BUF_SIZE 1024</span>
void <span style="color: #333333">*</span>fd_task(void <span style="color: #333333">*</span>arg)
{
<span style="color: #007020">int</span> fd, err <span style="color: #333333">=</span> <span style="color: #0000DD; font-weight: bold">0</span>;
<span style="color: #007020">int</span> ret;
char buf[BUF_SIZE];
fd <span style="color: #333333">=</span> <span style="color: #007020">open</span>(<span style="color: #FF0000; background-color: #FFAAAA">“</span><span style="color: #333333">/</span>etc<span style="color: #333333">/</span>passwd<span style="color: #FF0000; background-color: #FFAAAA">”</span>,O_RDONLY);
<span style="color: #008800; font-weight: bold">if</span>(fd <span style="color: #333333">==</span> <span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">1</span>) {
printf(<span style="color: #FF0000; background-color: #FFAAAA">“</span><span style="color: #007020">open</span> failed<span style="color: #FF0000; background-color: #FFAAAA">…</span>\n<span style="color: #FF0000; background-color: #FFAAAA">”</span>);
}
ret <span style="color: #333333">=</span> read(fd, buf, <span style="color: #0000DD; font-weight: bold">1024</span>);
<span style="color: #008800; font-weight: bold">if</span>(ret <span style="color: #333333"><</span> <span style="color: #0000DD; font-weight: bold">0</span>) {
printf(<span style="color: #FF0000; background-color: #FFAAAA">“</span>read failed<span style="color: #FF0000; background-color: #FFAAAA">…</span>\n<span style="color: #FF0000; background-color: #FFAAAA">”</span>);
}
close(fd);
}
<span style="color: #007020">int</span> main(<span style="color: #007020">int</span> argc, char <span style="color: #333333">*</span>argv[]) {
<span style="color: #007020">int</span> i, err;
pthread_t thread[NUM_THREADS];
<span style="color: #333333">/*</span> Create threads<span style="color: #333333">*/</span>
<span style="color: #008800; font-weight: bold">for</span> (i <span style="color: #333333">=</span> <span style="color: #0000DD; font-weight: bold">0</span>; i <span style="color: #333333"><</span> NUM_THREADS; <span style="color: #333333">++</span>i) {
<span style="color: #008800; font-weight: bold">if</span> ((err <span style="color: #333333">=</span> pthread_create(<span style="color: #333333">&</span>thread[i], NULL, fd_task, NULL)))
{
printf(<span style="color: #FF0000; background-color: #FFAAAA">“</span>Error : pthread_create()<span style="color: #FF0000; background-color: #FFAAAA">…</span>\n<span style="color: #FF0000; background-color: #FFAAAA">”</span>);
goto out;
}
}
<span style="color: #333333">/*</span> block until <span style="color: #007020">all</span> threads complete <span style="color: #333333">*/</span>
<span style="color: #008800; font-weight: bold">for</span> (i <span style="color: #333333">=</span> <span style="color: #0000DD; font-weight: bold">0</span>; i <span style="color: #333333"><</span> NUM_THREADS; <span style="color: #333333">++</span>i)
{
pthread_join(thread[i], NULL);
}
out:
<span style="color: #008800; font-weight: bold">return</span> err;
}
</pre></td></tr></table></div>
Sandhya Bankarhttp://www.blogger.com/profile/05699980933586164639noreply@blogger.com0tag:blogger.com,1999:blog-6083439994660540394.post-50969898782230396562017-01-31T02:13:00.000-08:002017-12-07T23:24:39.273-08:00About me...<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="graf graf--p graf-after--h3" id="1141" name="1141">
<span style="font-family: Times, Times New Roman, serif;"><b>Hello,</b></span><br />
<span style="font-family: Times, Times New Roman, serif;"><b><br /></b></span></div>
<div class="graf graf--p graf-after--p" id="1c74" name="1c74">
<span style="font-family: Times, Times New Roman, serif;"><b> My name is Sandhya Bankar, recently finished my internship with <a class="markup--anchor markup--p-anchor" data-href="https://www.linuxfoundation.org/" href="https://www.linuxfoundation.org/" rel="nofollow">The Linux Foundation</a> as <a class="markup--anchor markup--p-anchor" data-href="https://wiki.gnome.org/Outreachy/2016/DecemberMarch" href="https://wiki.gnome.org/Outreachy/2016/DecemberMarch" rel="nofollow">Outreachy</a> intern.</b></span><br />
<span style="font-family: Times, Times New Roman, serif;"><b><br /></b></span>
<div style="text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><span style="background-color: white; font-family: Times, Times New Roman, serif;"><b>I am Open Source enthusiast who is passionate about to learn and explore the Linux kernel. It is a fun to work and enjoy bit more. </b></span></span></div>
<span style="font-family: Times, Times New Roman, serif;"><span style="background-color: white; font-family: Times, Times New Roman, serif;"><b>I was the Linux kernel Interned through Outreachy in Round 13. I have just completed Outreachy Internship (<a href="https://wiki.gnome.org/Outreachy/2016/DecemberMarch">https://wiki.gnome.org/Outreachy/2016/DecemberMarch</a>). Outreachy is hosted by Software Freedom Conservancy with special support from Red Hat and the GNOME Foundation for Women in technology to support women participating in free and open source software since contributors to free and open source projects have mostly been men.</b></span></span><br />
<span style="font-family: Times, Times New Roman, serif;"><b><br style="background-color: white; box-sizing: inherit;" /><span style="background-color: white;">I have been selected for the project "radix tree __alloc_fd" under the guidance of mentor Matthew Wilcox and Rik Van Riel. I got amazing support through the mentor for the __alloc_fd project.</span><br style="background-color: white; box-sizing: inherit;" /><span style="background-color: white;">Specific about the project, I have worked for patchset of the IDR (integer ID management). IDR is like radix tree structure. In this currently converting file allocation code to use the IDR. The file descriptors are allocated using a custom allocator. So patchset of this will replaces the custom code with an IDR. This replacement will result in some memory saving for processes with relatively few open files and improve the performance of workloads with very large numbers of open files.</span><span style="background-color: white;">The link to submitted patch is</span></b></span><br />
<span style="font-family: Times, Times New Roman, serif;"><b><br style="background-color: white; box-sizing: inherit;" /><span style="background-color: white;"><a href="http://marc.info/?a=146149549800002&r=1&w=2">http://marc.info/?a=146149549800002&r=1&w=2</a></span></b></span><br />
<span style="font-family: Times, Times New Roman, serif;"><b><br style="background-color: white; box-sizing: inherit;" /><span style="background-color: white;">I have completed my Master of Engineering in Computer Networking and Bachelor of Engineering in Electronics engineering with distinction. I have done P.G. Diploma course in embedded system and VLSI design from CDAC Pune., Maharashtra, India. My initial preference is C programming through the data structure and algorithms. Extensive experience of Patch sending through git via mutt.</span></b></span><br />
<span style="font-family: Times, Times New Roman, serif;"><b><br /></b></span></div>
<div class="graf graf--p graf-after--p graf--last" id="63ff" name="63ff">
<span style="font-family: Times, Times New Roman, serif;"><b>Other than technical studies I love reading books. I also like to spend time on outdoor games.</b></span><br />
<span style="font-family: Times, Times New Roman, serif;"><b><br /></b></span>
<span style="font-family: Times, Times New Roman, serif;"><b>Please do visit my LinkedIn Profile,</b></span><br />
<span style="font-family: Times, Times New Roman, serif;"><b><br /></b></span>
<span style="font-family: Times, Times New Roman, serif;"><b><a href="https://www.linkedin.com/in/sandhya-bankar-78938498/">https://www.linkedin.com/in/sandhya-bankar-78938498/</a></b></span></div>
</div>
Sandhya Bankarhttp://www.blogger.com/profile/05699980933586164639noreply@blogger.com0