> -----Original Message----- > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Qian Xu > Sent: Sunday, August 9, 2015 11:35 PM > To: dev at dpdk.org > Subject: [dpdk-dev] [PATCH]doc: Add performance tuning guide about how to > get DPDK high perf on Intel platform. > > Signed-off-by: Qian Xu <qian.q.xu at intel.com> > > Add a new guide doc under guides folder. This document is a step-by-step guide > about how to get high performance with DPDK on Intel's platform and NICs. > It is designed for users who are not familiar with DPDK but would like to > measure > the best performance. It contains step-by-step instructions to set the > platform > and NICs to its best performance. > The document will add more sections with the DPDK features' increment. > Currently, the document has only one section about PF performance test setup, > and will add below cases in near future. > > * VF performance tuning. > * Vhost/virtio performance tuning. > * new features.... > > > diff --git a/doc/guides/perf_tuning_guide/img/pf_performance_test_setup.svg > b/doc/guides/perf_tuning_guide/img/pf_performance_test_setup.svg > new file mode 100644 > index 0000000..50ce92d > --- /dev/null > +++ b/doc/guides/perf_tuning_guide/img/pf_performance_test_setup.svg > @@ -0,0 +1,375 @@ > +<?xml version="1.0" encoding="UTF-8" standalone="no"?> > +<!-- Created with Inkscape (http://www.inkscape.org/) --> > + > +<svg > + xmlns:dc="http://purl.org/dc/elements/1.1/" > + xmlns:cc="http://creativecommons.org/ns#" > + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" > + xmlns:svg="http://www.w3.org/2000/svg" > + xmlns="http://www.w3.org/2000/svg" > + xmlns:xlink="http://www.w3.org/1999/xlink" > + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" > + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" > + id="svg2" > + version="1.1" > + inkscape:version="0.91 r13725" > + width="609.375" > + height="349.6875" > + viewBox="0 0 609.375 349.6875" > + sodipodi:docname="Performance_test_setup.svg"> > + <metadata > + id="metadata8"> > + <rdf:RDF> > + <cc:Work > + rdf:about=""> > + <dc:format>image/svg+xml</dc:format> > + <dc:type > + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> > + <dc:title></dc:title> > + </cc:Work> > + </rdf:RDF> > + </metadata> > + <defs > + id="defs6" /> > + <sodipodi:namedview > + pagecolor="#ffffff" > + bordercolor="#666666" > + borderopacity="1" > + objecttolerance="10" > + gridtolerance="10" > + guidetolerance="10" > + inkscape:pageopacity="0" > + inkscape:pageshadow="2" > + inkscape:window-width="1596" > + inkscape:window-height="1108" > + id="namedview4" > + showgrid="false" > + inkscape:zoom="0.56123077" > + inkscape:cx="308.2511" > + inkscape:cy="174.84375" > + inkscape:window-x="0" > + inkscape:window-y="27" > + inkscape:window-maximized="1" > + inkscape:current-layer="svg2" /> > + <image > + width="609.375" > + height="349.6875" > + preserveAspectRatio="none" > + > +xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAooAAAF1 > CAIAA > +ADgOlyKAAAAAXNSR0IArs4c6QAAAARnQU1BAACx > +jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAEUsSURBVHhe7d0JcBT3nS/w > v3yA1htqkcx > +l78qW > +0AgjLHadxY84owBCCIOgEstOVlbWSSG24hF6rofGu6YCu7AyDxJIOVmPXGULydlF > VHZjWS+xSVJI > +HDKHeYy9xGych2BsNDqCtmxhsERCDvARvf/VPd093aM5ejQ9o++npobunp6r0cx > 3ft3//v+ > +zxsbG > +CAAAADjJTfJfAAAAcAzEMwAAgOMgngEAABwH8QwAAOA4iGcAAADHQTwDAA > A4DuIZAADAcRD > +PAAAA > +joN4BgAAcBzEMwAAgOMgngEAABwH8QwAAOA4iGcAAADHQTwDAAA4DuIZA > ADAcRDPAAAAjoN > +4BgAA > +cBzEMwAAgOMgngEAABwH8QwAAOA4iGcAAADHQTwDAAA4DuIZAADAcRDPA > AAAjoN4BgAAcBz > +EMwAA > +gOMgngEAABwH8QwAAOA4WWNjY3ISIEWysrLkFABAhoo1bVE9AwAAOA7iGQA > AwHGwcxtST92 > +5jb9G > +AMgwcX+/oXoGAABwHMQzAACA4yCeAQAAHAfxDAAA4DiIZwAAAMdBPAMA > ADgO4hkAAMBxEM8 > +AMgwcX+AAACO > +g3gGAABwHMQzAACA4yCeAQAAHCfBPrevNHme9/bJGaaiemwLqVtxYkHbhoY8 > uSxuwfY9RS8 > +Snx0P > +BU6GPrcBIFOlss9tz47GsdeUy5ZiuTRBQydLV2wvGpjlkfMAAACTyATs3A7UrdieJS6 > 7AmJ > +R167t > +pe1XxLQGrcW31/n5xI6jJTT1DWHvfyVrxZ6mITkHAACQqZIdzzRxO3oef4LX1k/4Bj > pEKlc > +uW+gf > +uKysoMb25fN9C6vcdGJGQ2tjC5vQcz8y9hp2dAMAQOazIZ5btynF8YpXuuQyhf91 > b9/CrTU > +z+MyM > +htqF/hdfZ+vkzXR3B9jEUKCjj5CBK0E67Q+0VhRXsjUBAAAmNXuPPT9iEq6FM4vkF > E9lOVF > +cXfjB > +hSESPHWOPF7tI+cO0OmLH7gLZorbYXLKguSQ2xcA0kfyjz33Xe6VU7RWvsyOLDM > z1paTjlO > +hSESPHWOPF7tI+BA0dJ > +dWmxZlrU2QAAAJNakuPZvdRXeHanbAV2pantrPvxpaLCdt01y3/0RAe5d20ecZXe > S5RpAAA > +ASEY8 > +F1dVXPLWiuPQMxpaq0tefJ4fmX7eW1B9Sh6Hpsld7Om7RMqLXXQ6r7iaXPIXzGD > TEaDldqY > +bA1vJ > +zQoAaSjBbkkAbKAeHMVfo72wYQFSLu6PYfKPPQMAAECMEM8AAACOg3gGAAB > wHMQzAACA4yC > +eAQAA > +HAfxDEl2/bqcAACAqCUYz3xAC9nhNrvw8aZsoY5eJac1zxLx1Gd2brSypjJAVrhg+57 > Ij5P > +4CkCG > +h8mTT5KHH5azAAAQNRuq51Cf223lPdtMR4qMxGJwSaPQs+yYpfR5Eu5K04mZv > WK116o93R0 > +h8mTT5KHH5azAAAQNRuq51Cf223lPdtMR4qMxGJwSaPQs+mPxfG > +HUk68RVABHNBAfH5UD0DAMTB1p3beUtO7VDGpGJCIz2rMUnDWKluWelJZ9d0 > Ez/rVizqSpR > +3FLqf > +PqBJJ2IzGrYsUboeK66qID0XDcFvMZJ0SOIrTG4IZgAAO9h97Nld7CFsKCqezepIz9V > kG89 > +R/ytr > +BsqV6paN3Fy5pbGzgrjZarEP5DzO8M+B/d2k5C7DGBsWI0mHJL7CZIVgBgCwTzKa > hl06z5I > +BsqV6paN3Fy5pbGzgrjZarEP5DzO8M+40FpY > +vk/2sM164WYL82a6+9jYkQnhY0hXjROQ8scBcnQiIJgBAOyWjHievUBUtH1Hi5Sd22 > u6+RK > +293uW > +t5YvtG63Zap1m3yorG0f+NrMBpZWsZ3eHWRHY2j4DUgSu4M5K2ryDgAAGcrueK > ZFM5k1T8R > +t5YvtG63Zap1m3yorG0f+zobof > +m11kIcv2SNPZJ3wDHTE1Igs1DYu8G5xm8zbSqT4dJAkqZgCAZLI1nodOlm5TRnR2L > /WRo+s > +MATx0 > +sklpI0aJA8NFBbP9A5fFkoQF6satrSFBsQbz8eO0KB7nEgfDI6TpBQDAgg3xHNrtXM > uaNCu > +7lLUj > +PdOLPBWqQ678vJeUb+IFrqtmmae7I4aW26rwlttDV3rIJbnznF9kgW7Sxlsv8RUmj > 4MHyf7 > +PdOLPBWqQ678vJeUb+9SaqY > +x8a7AIxv9MzLzQYvnxmVN2r0HzG7gd/7SL+cA0gZjPcMcWlrI9u3k8FBORtBWRk5d > kxOW1C > +PJY/7 > +1xj9mkBNus1FA/dQUE6bca2qXzlXTkdcW78iQALi/hgmVj0//XRowq5pSAu1tWRgg > OzdS/L > +z5RK7 > +ddXRv2qmzqIPGqfBIfhU6z8i0jZ3cU29Qc3iXHZL8BDKYkgbiVXPyUhTJHTaiVxJx1c9 > 03Be0+Pr > +PbX2QGmRt6RzrEW0JzBZ0zHWr2fXjY3J+8USMydvriToP/Ly6P2PLsqRs+FGz7z8Vs > 6jaln > +PbX2QGmRt6RzrEW0JzBZ0zHWr2fXjY3J+MqueR > +xTWGe9CV2k/nonoGu8T9MUT1DAlLQiUdvNBDSMk8F3HNKyGk50KkHZYOQn+o > FBSwnI5mrz9 > +D1/P5 > +yDvvyFlIyNyVkbKZylkUymZq7sr6+vB70JXqkc3gADj2DLYKr6Tjqp6DTUrRrJTRDbyz > Vod > +yDvvyFlIyNyVkbKZylkUymZq7sr6+Xz/Td > +q+iPlqgqaZrndHPNn09WryarVrFr+0yy6hnAiVJUPUPyifOYli9nl/p6xxdaNlXSatHM > y+i > +q+iPlqgqaZrndHPNn09WryarVrFr+0FG0l > +vW4du6b/r7SMrqwkOTnkq19ld756ld8MycNabgs4Ig0OhOrZ0fbvZ9/v2i/q7Gzy7L > NkwwY > +562ii > +kqY5HU/LbV4/+/mkRz30nMxysL99ST3Ze6iGVukHvRUPtRPyV984x2dDjuye+nXR > AR5Z3Lj > +3pOs/ > +lgQfO1kve8kxVM/Sbbtvufmxr305T1bSR3azu2jvSNObxripBx4gDz1EqqpYbR2XSV > k9R98 > +e22TN > +3LBD0QAJivtjmHA8D50srT0qvkUJme3Z8ZUW9ww+QvPz3j65lC73tWm6+tLdhY2H > oe99k93 > +3LBD0QAJivtjmHA8D50srT0qvkUJme3Z8ZUW9ww+QvPz3j65lC73tWm6+3fK3o > +9ivi4+hEv2bU/K9ktc3sbVWHwJpo9Hv7s581L6LeeIN9daeH48fZ/u2Iov/zTVre+Ot > XvU6 > +9ivi4+K8//B > +V+MSCUqz88juerK5eaVcg+X3c3ed9Mnu6IL9Q665ur8w63heSqb+M/l999eq5e5u > Y/wvX86 > +V+MSCUqz88juerK5eaVcg+X3c3ed9Mnu6IL9Q665ur8w63heSqb+2UgT0 > +PmLXN43qWCCe9cxOl+ItwUbkjAonVoFt4v8Y0jsk4Lyn/GnPKTlDZ30vXeYTl32Pa5 > af+jE > +PmLXN43qWCCe9cxOl+p/3Fn > +aFpz08XznRflpEJ7X+vHMYp+zajRB3n89V45kwK1tfT/0vxSVibXyQzyb5G+sfHI9aJY > MxY > +aFpz08XznRflpEJ7X+vHMYp+Xmx7c > +1UWvG16i/929L3g2HOaL+17a8ELorzO0XHV41xfoCod3TZm9QlxuuY2+wlO3yNldN > 9P/rNv > +orZ5b > +bhm7eTq/9bZddyy9OPADfkfV3r3y/3XcS3b2WFXV2BtvyDuOR24sesdJpO/wCy+8 > cLhPzin > +Ml1Ij > +b7W/8EL7WyN8hq/FmK0JEBf5IYz9Y5jYsWfWS5d28KjiBtNRKLSjTG4769mh6RA7r7 > gy+ho > +30kjP > +euozDgXqPEonYp6Tym/qQB29ezt9EMNySh2jek/TRbmIC41drRnMQ/c4rIcy9sIM6 > 8Tv7bf > +lRLho > +OspMo4vKsDz8ojIsT+RyS87Ofzi6uTKL/MM+Mj+LzP8m+X4Vv+ke8v1vhlZTl9+SU > zF1TsX > +OspMo4vKsDz8ojIsT+UHH9W > +FXnzm+SWL5M/ftj90aXuT39fyF9aHvmU/0sGsm5h//zx91s/+YR8+ttvkJvZn+zlX5C > CjR/ > +FXnzm+9V/Ov > +Pr/ugu+Hl9gaNTXsoEU0rl9nl/vuk7Ngk5HT7fwYtFXZDZACicVz3owScnbNeFEUbD > 8hx8k > +wxnm8 > +xhnpWfOMeaSqVo6l0Vmg7QP8kvfoTD5ixxOavsHlMJR8/a+Qo2f5QupKk0ddbhj > M45J3oJg > +v5z2Y > +tonHrPZ0d9Spu+/jNSnbBtEEjnyx36dXt5LpFVNmr79p6vezpg19+mmByFEyRdemi > y6/aQr > +tonHrPZ0d9Spu+7T/30 > +avdHH37jj2IpM0CmyCnq5mn/QegKNK1vyCWS+mg3f0zuuPbRjd++ee7ak//y38V > fOTf8u5t > +ZQkeD > +BvOrr0ab5ZNUTm4uzdtRfV+do6MjhOTm6o8q86Zh+j3bSo8m2LMNqZdgy+3iFh5 > XsmTUlaG > +BvOrr0ab5ZNUTm4uzdtRfV+do6MjhOTm6o8q86Zh+j3bSo8m2LMNqZdgy+hvriL > +XpzV+RofpmLockKZNd5IzybPSIorlfUrly3Ujr3hqRUHlWesLVfG5GDDbS3cqvYZXru > QT8j > +XpzV+n1S73 > +v/i60pPVbN/XivnEzAWF6mMWV1WQnov64UBiF6FGojeNjWXOJQ6GR0jskvfx5e > 4bw3ufqfl > +G4Dd5 > +Y7977HufXz9ldsWUaeRndFZd7Xebz317H1tOL7d//6Z1ZGw/eeA75JPfrPvGNLbw5 > ttY24d > +PPyU3 > +3c5np4pXSm66TT7a2DX2i3JK9q0r7l/617/+7pT/PnB3fvY7g9e/+o8D1x/j7bcjo//rx4 > 4 > +hm8eT > +k8Pi+XS7pjV2/xEewrk5Vo2+XKt4KJudBg2QKomfWDWjoZXWi+xCy9MiTULzISCf8 > BUSOYY > +k8Pi+VlTfT > +LfdyxyD6kZ5NnpGQrl3q3dVqmFIGpTYonFkkp/S0y9m7mAgNDXIiXF2dnAD75G30 > iXbaeRs > +P0bSm > +l82Gc5Bd9S18Ob/43GTlZt762t3Ml5T9eSH5iJDfb6alM7+0fPKJdnbzzDnk2W9t/nAg > r3v > +fF/+T > +3eWf32yZN+f2W4+fubbng+JxTkWjt9K6efp0OQvW5q5cxf4fg4f4/mqG77N2rTKW > xKxbEgH > +3eWf32yZN+f2W4+fubbng+FMjiQ > +nec9V36t3N13uVfOCaLW/JE8Tsx2hl86H2M8RzvSs6R7xmD7njUDyrDTO5RqOALj6 > 1dolye > +4DyBq > +ZWVk82Y5rbV6dZqcWBU72SIiCvIOjuCvn8OORl+czfPYzBwazM+yE8K9Xl31S7O5ec > tddOI7+y4N > +13jEQhP0/rRujpzfEMJyl0e0gu2zRgRDmkksnv2vaNtAdf37UX949el+pLPikneHqKq > LW3Y > +spNVw > +6LisfgRoe+iekZCCGfxzeqWpTVs9m2ENys7uVI9Dq9U2b5KmLGePo63Ok2rXLtLVF > drLPX++XAJO > +IqvnB2bLeS2rYFZVlU2/b95twx9+3PSZh+SicPQXGbI5RqHSmMI+a0hDicWz+5Heg > hNy1/G > +K7axO > +NTtLuHJLtafvaJEIcvcjY23lPaEhos+dJ7Efox2v5bb6jK6aryiHxn9Easvd47TYKm5pKyd > +NTtLuHJLtafvaJEIcvcjY23lPaEhos+yjOoT > +Cx5Xq23t2NXPewuq9SdqJxf9Zv7FL+Thz0DAvJ4GBxo3mFWNnjvoddvrn1wvqxBL > Qug96aW > +Cx5Xq23t2NXPewuq9SdqJxf9Zv7FL+tjbz5 > +plwCAJMDeg2D1Etx7xn97Uvc3z8tpmv+9421r6vdkmg7BRuX2i0JDeZvfpMdgGCp > HN2DFH/ > +plwCAJMDeg2D1Etx7xn97Uvc3z8tpmv+l3DuD > +119d86uqHV+Wiyh6/1dfJYcOsf4+acjTtI9RIhtWdtch+udQu/pIg+46YuyWBCDJ4v4Y > 2nn > +119d86uqHV+sGSBN > +lTTuVRt8HTzQfXr7+qmr2vlX/NBzqyrqj/CVohBeMesfzVLdI2x/TMtIibybsHcv23nyE > N/ > +lTTuVRt8HTzQfXr7+pvX8/ > +XzRhRvuDI0pzKmUcZSp46OUz+lOWACA5UD1D6jm2ep769YFn/C3znqv4ydruZqJ2 > uF1IF27 > +XzRhRvuDI0pzKmUcZSp46OUz+sk7N/ > +V1Pxb+2yI+51/9rdOsW4WjTV89Vrn+Ysfzt7yk2j857P3vevbBHN5tpafiM7V4idBU9 > jP8Y > +V1Pxb+2yI+j0Als > +WF6Daktn1hv13H5aUROHd0uteeWaae1ShXhjplBng21QPQPET1s9y0Xc4satG+eS > 1WvZIeF > +WF6Daktn1hv13H5aUROHd0uteeWaae1ShXhjplBng21QPQPET1s9y0Xc4satG+gc > EAs > +JKQvwHt3X8zv1bxWTtz4QcXNU0xWi8b0aTeXLZp2/aM/HryfR3JjYyibKdHV9kQX0 > BLv0UO > +cNCxO > +KR5B+QwwARDPAFEqeMbPI5xGsjpOhokoVzNatugz9PonH+aR5mby9NNiobRqF > bs+cYLPTAy > +KR5B+QwwARDPAFEqeMbPI5xGsjpOhokoVzNatugz9PonH+aR5mby9NNiobRqF > bs+17y2x > +l5u4CjOvmFQbd7OTsJT+wvRnZAGkDuIZgPRsX8+60aYXr5+sXFrCZncflDdKrvqlATd > fZ06 > +l5u4CjOvmFQbd7OTsJT+wvRnZAGkDuIZgPRsX8+60aYXr5+ko9HG > +1SweLVxVGety5PiZayZnta/m/aNEHtXKZjlzXbm8K2rR6aVI5/6+IM0xQ9eYAJAUO > PYMqZf > +iY8+O > +kbP87avXPh346cL8OzW9eAsFBWyE0V/8IlJfr2ES3LDqsVlxJFbXljuj8Dcqh3oW7xLH > nsE > +2cX8M > +E4xnwyjLrIcvZTQq402ELGT9YJuND921a/sa2bZGo6J6bIvozlrgD1gw/kL+aPy55AJu > nEG > +mtQyv > +PPGho9lIG61iUn1T/leythHjizQxYe86lRDPwsNP9e0/fvXZv/8L79+GdXEiTtt69lnWK > Dx > +q2LBR > +MjYSk1ENYIO4P4Y27NwOdbrJ+xvRjOak7Y+TXmhyBOpqj5aEFi5bwAdtrNwil3RWs > AiRt+o > +MjYSk1ENYIO4P4Y27NwOdbrJ+xvRjOak7Y+TXmhyBOpqj5aEFi5bwAdtrNwil3RWs > AiRt+C > +MjYSk1ENYIO4P4Y27NwOdbrJ+xvRjOak7Y+TXmhyBOpqj5aEFi5bwAdtrNwil3RWs > AiRt+S > +MjYSk1ENYIO4P4Y27NwOdbrJ+xvRjOak7Y+TXmhyBOpqj5aEFi5bwAdtrNwil3RWs > AiRt+d > +MjYSk1ENYIO4P4Y27NwOdbrJ+xvRjOak7Y+TXmhyBOpqj5aEFi5bwAdtrNwil3RWs > AiRt+F > +MjYSk1ENYIO4P4Y27NwOdbrJ+xvRjOak7Y+TXmhyBOpqj5aEFi5bwAdtrNwil3RWs > AiRt+9 > +QtcbCRusQk4qAvtZ0qudfHE0C7XP21a9tXSclAq98h2zvLWvxNRPF01KzUagUdrRSl > OZPZp > +mtCvW > +Exm/PRoT9a4htR5axvZvn/iv34pZnWXL2PWEHn7OFLQeFl1vN2tGydCT3XRLuYsfR > DZD6tl > +67Dlv > +yakd2tGcwkQ5PrQ1T8WsUG+dNPnaPvBU6OsMf6C1sLzz8dn+owFlNZsGmWbG > G/V5V0DsCfC > +yakd2tGcwkQ5PrQ1T8WsUG+dNPnaPvBU6OsMf6C1sLzz8dn+zLsZ4 > +v2Z8tKtO+VNDM9rVUKCjoFhUuvQu8jEtukJLwbuGVHhg4Z/S6zfP/k7M6pSVseuJ > 7TuM1pQ > +v2Z8tKtO+hltHm > +VGoqi6Pn49D2AYrCGRzB7qZhrNtq6zGpohsfOpJlS33k6DMiLGnyFSzbVMCnFV0nz > rrLiyt > +L73X3 > +nTsgXoblINO0rlVzkV/GeWGsDrYc9VmMHr2luHKLug+A7RIPXvwgbLQrvn3oTxllL3 > do0A6 > +rMT/s > +fNdg5shu0XNIsLlOafY19Nyq3Qf72+ublb9muo5oPjanYomy8KA31ObroJffKnogUR > 4wJvP > +fNdg5shu0XNIsLlOafY19Nyq3Qf72+zs6dP > +u3n4w4/pRS5S5eez4aqGh9llQhj39wYPpUlCKz8qQqmsNsrG4WRIJ8louR0akyo0F > qSsCyO > +NDx0d > +VoC2ttE7siJSGWtZMXRyZ/fs6tIZtFKsLrzUcYrHp+UAU6GhMOXFdHc6L39ZzvEJi1G > f1ZG > +ex8N+ > +oOjRwFYz1ZKN7xrCDT13IP/cITaapKt+a/F3WeIGm3cGntIPKLlyszhd6lxjYYmL/oxiH > Yo > +91C5v > +pHn8rXv42c9PDX6PNdjeTCfWq9Eetfvm3Uav337392JW54EH2PUEFdC8kbZLGQZZ > nG4U7Eu > +nCloN > +ZctqWLd3QC/t9hVABkpGPIeGUtYce1brQsvxoaPlZqXkOs+PaBFpqDWDp875C+9d > yxbOWFs > ++W8an > +jYNMW476bDF6dDhW1OqxIwKzvLX8uSKU7xPyriep/lOBe0qVX1d5G5vzv7Wqbv2 > 76yzOWvZ > +/b//y > +f2A3sWGhf1IjFrLeSHhm0z+SfBLk233l0pL9p2L9877vHh7PF/4gZnVEm+233+YzMB > 52Vhi > +f2A3sWGhf1IjFrLeSHhm0z+Hbkgh > +Pdkdz/5AK5k1L7qsMhsfOhq8cu0jxiKSXDlw9BLpO1rEY7XoxUuE8GPGloNMR9q5 > bfbDIp5 > +Rn113 > +zQq7V9j2cT/Cn8iww9zArncNYfoGiUhWYe5dJb/sI/eY/xEHm/eRp1idHYW8YjIYazx > /roT > +F83/2 > +mB1+/tzn2PUvf8lnkm1uISuXD4mAo9iO7vTomkQ5ilyzOFcsUHPatCbW7CHQwG5 > wSD1b43n > +mB1+oZOm2 > +iGMhRzM+dDRYnoUdphWNsGSmsktnBWk9QZ/OapDp6HZuq6Ie9bmoYLZ/4LKc4 > fdSDreb3Us > +iGMhRzM+/4nXJ > +XdZt5ex512CiR9S73EHvvmJ/9z+9u/M5k+9y//csqmqXq0A+SN9gaAdJcX50QR4id > m6/M3h > +dzOpM > +bPVMU07Xf1banQmcs+hREbVqTgOkFRviObQfmJ/Goz2zVnPsmV5e6YpufOj4sOZ > R+uRj1bk > +bPVMU07Xf1banQmcs+4JcmW > +QaZZnEc16rOrZpmnuyNLHm5n9+KzlvfqkC/seS8p3xRjY67kv+sJlRU1eQdbrFxa8q6 > M52B > +QaZZnEc16rOrZpmnuyNLHm5n9+z3bfu > +4f1s+9YF3OwgtNqh2JLmIZbcG9X/IXHsufuhOXUsyFc+9jf7+ZpfJ/8kB8AYCpC7Yv3z > np+ > +4f1s+fnT3l > +JhrP1z/6o1ykEq3DBgfZ8BgTQtuaOY3rSTWnURNDWkGvYZB6ccStvX+3B711Fza20 > FS2UbB > +5d+eq > +zXE85mf/NvD2hd+/sXe+OM9K5/OfZ03D3nhDNhMbj7ph8TE3wxuno38wSLK4P4 > bJaBoGkGb > +UWtk2 > +R3avJ4/Fl/cilWlCi1mdid2/HerPI53aV7H22OGvlr8XtMeGdILqGVJPWz1H/oOcDOW > g74e > +XnvyX > +//b+7exn//4v5CKVz0eefJL16/nss3JJRIlsLtH3tJzh0qSnS+MJ2xqolCEFUD0DZIj5+d > n > +02rx1 > +2Pz57Pqdd/hMUolxJNVmzayV2EiwP7POUAqd94yyGhwI8QxO1FVHf3HW8V5fgk > 2lWVmlTTG > +fH5+2 > +5uf/Cb0efO+GmNURO7cHB/lMUo2OjNBy+X6l1px7/+JcMjKSLvEc6pJEEbn5tnoG > Gc6RBuf > +Azm1I > +PbOd2zSg17R6OnsX7CzylnSOtYjW6ZNh5zaVdf8Zej321iIxq5OTw1pu/+EPJJsV2ZEl > sLm > +MzaYy > +thlV+E58BrvBwTbYuQ0ZprKl1+duXVPk9Xs6ZTZPHmL/9uB7H4lZnfx8dp30Alp0S/Jz > WUy > +thlV+E58BrvBwTbYuQ0ZprKl1+Onvl5 > +2nRLEg+l2tad6Q2QWqieIfXMqme+V5uGMyEetXZOqBxMJ5Ubgwf9vz7WMq9s0 > TS5SPXww2T > +2nRLEg+l2tad6Q2QWqieIfXMqme+/fvLq > +q6SqSi6xNkk2lxl9A7EIrdpQPUOSxf0xRDxD6pnFMw9n4vOVeL2toYCeJHlTv+vinh9 > f3tu > +q6SqSi6xNkk2lxl9A7EIrdpQPUOSxf0xRDxD6pnFMw9n4vOVeL2toYCeJHlTv+YX/v > F > +2+Ui1ZYtZPdu1nLb65VLrCWwuSK0f6acnV7miRse0SbvMU1ap0M6iftjiJ3b4ERddb > Rwdvv > +2+2NTS0 > +dHpI65rJ1DSMuvuOKfR68H2z1mF3382uf/UrPgMm+t/i2Ux/Qij4PuuR029Zts9W1 > 0U2g3O > +geobU > +M6uezU2S6rn98MhX/3Gg9osz9jbyMNY6eJBUVrI926++KpdYS3xzqQVm+uzt5S/Z > WAWLghq > +7rCEF > +UD0DZI78O6bSa/NzqyaoaRhFIy2085edepRGZwfn5uir4JycqIfFoPGOE6HBCRDPAI > 6Tf6f > +YuZ3C > +lts0pMTxW7Hfl+8eDvalQ2jl5NIkNr7U/j76OyM3F3uuIY0gnsFZsiKSK2W6ObffSq+ > Hr3w > +lts0pMTxW7Hfl+sZnWy > +s8mcOezU5wkYt4qdbyT2BrPBq9LkrKOcuS6Wz4c0BXD/EbYXINc1F/EMaQTHniH1 > 4sjdjP+ > +7LfhS > +z+B7N94/9JciqnU++1k2KkYgIPv4tKZu2Ng3V/+RI2Rlhh+oNWm5rcBRarBN3B9DV > M8ATpQ > +z+vGm9H > +6JlkeJjPJMncTM9mAKdD9Qypl0CRl7HWb/9V28+uvPrdwqqy6XKRqr6e7NlD9u4lt > bVyiYU > +EN6z2 > +/OH0OSE40ZqY3x/VM9gG1TNARpk+7WZ6ffXap2JWZ/Zsdp3c6tnYt8fI6XYMFwE > wkRDPAE4 > +0O/cW > +em3eM4nYuZ3cnknUASXZUE/in0j9ejgNfcVqg3M+jd60Ie0gngGcSLQIu/ThJ2JWZy > KOPRs > +GlIzl > +xOE0xxqpY882OADiGcCJxKnPwx+anVs1nR+NnoATqxSsT5JDwYw7b5h3QGIO3ZJ > A6iGeAZw > +xOE0xxqpY882OADiGcCJxKnPwx+anVs1nR+o0rFn > +Ec9Jbrld6CIjpw+HDjdjsAiAiYWW25B6aLkdbvC9jwq+dDb/zqkDPy2Ri1S0bs7JYZ2T > vP+ > +Ec9Jbrld6CIjpw+HDjdjsAiAiYWW25B6aLkdbvC9jwq++XGIB > +GzZavCEc4b9A0HIb7IWW2wAZRezcvn7jj2JWZyKqZyPWATd2+QJMIMQzgENlT7nJ > /NgzRUt > +GzZavCEc4b9A0HIb7IWW2wAZRezcvn7jj2JWZyKqZyPWATd2+nKqmH > +n/VHZvlJVuwYdDPOrwKYEIhncJAs0Lj+xl+TM/fLGYPh4Sy6uXJy5KwFuVnjMXrm5 > xZ9ewD > +AhMCx > +Z0i9xIIExhf7x5wdgR3RtAbjB2dzcUQWIFbq91usH0PEM6Qe4jnZJls8G7o8U6DBF6 > QA4hn > +SWNx/ > +vpntq/840H545FjLvLJF0+Qi1Ve/StrbyUsvkZoauQQUFtlMmcYzb6ktpylEONgM8Qx > pDPF > +sSoyK > +sbcxv/aLt8tFqvXrSVtbNKNiTD4inaM7Tds8yXGKN9gp7u83NA0DcKjsKfJTDbFg3ZE > S1/+ > +IIl9H > +zxxm2UzTmHfQzbG+uXXdsQCkCuIZwKFm385Gxbh6zazb7bvvZteDg3wG4sODPH > fxg9okn7u > +zxxm2UzTmHfQzbG+SB/QI > +4hlSDvEM4GhXf2vWrydYysnNJST4c9S/kO4QzwAOlT3F+uMpOg779a/5TDKwTkk > MHZCYLHK > +inLku > +ms8jp9tFfypahl7PeJDr92SPnnmZtRPLtME/IC0hngEcSowp+av3HTFolZQOe31zFj3 > KBqk > +eX86i > +B9l62iTnDcUM+7sBUgMttyH10HLbVNvPPly/fbD2izP2NvIjzVptbazxdm0ta7ydFIb > TjbQ > +B9l62iTnDcUM+y7NQj > +nFgFyYWW2wCZJnsq+1SbNw0TfW5P7KgYGWruStloW0A2g1OgeobUQ/Vs6viZa8 > vrLpQtmna > +nFgFyYWW2wCZJnsq+sZZ5c > +pDp+nCxfTsrKyLFjconNWE2p7TUsfUyeuh/SA6pngMkkO5tdX7/OZ0DLUA3XR3cc > GsBxUD1 > +pDp+D6qF6 > +NhWpeh4cJAUFJD+fDAzIJWBGW0qHdQaGOhsmAqpngEwzfdrN9PrqNZz3HB+av > hGyGcDpUD1 > +NhWpeh4cJAUFJD+fDAzIJWBGW0qHdQaGOhsmAqpngEwzfdrN9PrqNZz3HB+D > 6qF6 > +NjX43kcFXzqbf+fUgZ+WyEWqq1dJTg47vWoUvW+Y0RfG49bCbHXlSDu/K6pnsA2 > qZ4DJJFX > +NjX43kcFXzqbf+fUgZ+WyEWqq1dJTg47vWoUvW+nPaeD > +0TMvx5TNsisSAIdBPANAJul/SzMG1XjZzKJcjlk1EuxneyJGR0P3Bkgl7NyG1MPObV > NXr32 > +as/zt > +6dNuHj12n1ykJTYatphR9A2+QmvmLl6ce/p0DBU3QNTi/n5DPEPqIZ6tZN1/hl6Pvb > VIzOo > +6dNuHj12n1ykJTYatphR9A2+gnhMl > +4llpNBYa+xnhDHZCPEMaQzxbQTwnU/+RI2QlghiSDPEMaQzxbAXxHLvod24DTATE > M6QxxLM > +4llpNBYa+VxHPs > +4jn2HAZBDrZBPEMaQzxbQTzHjoduWLyaL9XRpjXiGWwT9/cbTqwCgEmOnV6l9jB > GkxnjVoE > +TIJ4B > +IJPk5OYSMmLoTY2fzZyba9arZ6jFdu7iGiQzOAfiGQAySU4Oi+fT7Uf65QK225oHcG > 5O5E6 > +IJPk5OYSMmLoTY2fzZyba9arZ6jFdu7iGiQzOAfiGQAySU4Oi+3x7sd > +YELh2DOkHo49W8Gx57iYtvmKcDg5VEDzEhpjZ4Cd0DQM0hji2QriOW66iI4qc9E0D > JIC8Qx > +pDPFs > +BfGcTKZFtoB4BtvE/f2GY88AAACOg+oZUg/VsxVUz7FDTQzOguoZAAAgcyCeASDj > 8L5F6ut > +XuZRp > +PgWQThDPAGno+nV2nZ3NZwAgAyGeAdLQ8DC7njOHzwBABkI8AwAAOA5abkP > qoeW2FcuW24O > +PgWQThDPAGno+DpKCA > +zJ9PAgG5BAAcCS23ASYTGs8Udm4DZC5Uz5B6qJ5NDX/48R2r/t+c2299/9BfykWq4 > 8fJ8uW > +krIwc > +OyaXgITznsFZUD0DZJrrN9iHOXuq9YcULbcBMhfiGSANoeW2pbkr+SnPFDvXWYzh > jPOeIQ0 > +OyaXgITznsFZUD0DZJrrN9iHOXuq9YcULbcBMhfiGSANoeW2pbkr+hngHS > +kDjvGayNnnnZah83QFpAPAOkrenT5QTo0GhulgM4jwT7R9mSUTmcM0DaQDwD > ONTwhx/T6zm > +33yJm > +da5eZdd/9md8BrT6jyjRnLt4sYuMnG5vbhZLXIVoFwZpBPEM4FDXP/ojvc6eYvYhFf > EMltg > +x50cX > +LVpZszhXLnGtQqttSCuIZ4C0hZ3bptgYGI8uyuHTOYse5U3D6nFKFaQbxDNAGrpxg > 10jnk3 > +MXYkg > +hoyAeAZIQ+LEKgDIXIhnAIdSmobdKmZNoHoGyFyIZwCHitRrmKieEc9R6z/S3Nx8 > pF/OAaQ > +hoyAeAZIQ+BxDOA > +Q4nqefq0m8Wsjmi5jV7DADIX4hnAocSJVX/2GevqGX1uA2QujFgFqYcRq0zV77q4 > 58eXn/3 > +7v/D+ > +7Wy5SJWTwwpobC4TGLEKnAUjVgFkmusfsQ/z9GkWvYbhwDNARkP1DKmH6tlU > 5cbgQf+vX/1 > +uYVWZ > +PomHh8kdd5D8fDIwIJfAeHhNjeoZUgDVM0CmuX6DHXs2aRomhqtCuzCAjIZ4Bn > Coq9c+pdc > +PomHh8kdd5D8fDIwIJfAeHhNjeoZUgDVM0CmuX6DHXs2aRomhqtCuzCAjIZ4Bn > Coq9c+m8T > +PomHh8kdd5D8fDIwIJfAeHhNjeoZUgDVM0CmuX6DHXs2aRomhqtCuzCAjIZ4Bn > Coq9c+w4 > +yK6xcxsgoyGeARzq6m95PH8m7NiziGdUz7GYuxLdbkOawbFnSD0cezaVs/xtWkCP > HrvPWED > +v3k22 > +bCGNjeTpp+USCEHLbXAWHHsGyDSWO7cvXWLXqJ4BMhriGcCJLLOZEn2S5OfzGT > DDxpSkVrm > +bCGNjeTpp+UaT4F > +kE4QzwBOpMSz2UnPOPYMMAkgngGc6OpvP6HX0z9jXT0jngEyGuIZwIki7dym1X > N2NuIZILO > +h5Tak > +Hlpuh2v72Yfrtw/WfnHG3sa75SKBZnNBAZk/nwQCcgkAOBhabgNkFDFclWWfJGg > XBpDpEM8 > +ATiQG > +ezYZTRLxPJ7RMy83U0f62Uz/ETatzgKkD8QzgBP9+reses6/Y6qYDRHxfLd+jzeEjPYH > R9j > +ZVKwD > +kv4jag8lwUMvnxmV0wDpAPEM4ESWTcPefZddo3q2NDrC0rmQ9Q7W38fCOXdx > TX3N4lwyEux > +HPkMa > +QTwDONHgezfo9ZzbbxWzIdi5HbXRURrUNJ5zckhOTi4hIyOIZ0gjiGcAJxLHnk3i+Z1 > 32PX8+XwG > +wuXksiQeHZV7uWUhDZB2EM8ATjT43kf0Ov/OKWJWGh4mV6+yM54xmqSlnLmu > XDJyur25/XQ > +onflu > +7tzcHL4GQFpIPJ6vNHm2Z63QXHYFCAnUrdjTNCTXiJP/Ff1jAkwWV699ev2jP+bfad > EuDKV > +zRDmL > +HlV72BYtxEbP/JwfhM5BPEMaSbxbEhrPz5+vbWxxy3mOxvOJBW0bGvLkfOyuNO > 0KrN2yhH/ > +K6KN1 > +kB2Gp4DMoZ62D9Jt80jxD8nvzpJ31ssl3AZCmgnZQ0i9XBAt9PcCkCoO75aE5quxDu > 7atb2 > +0/YqY > +1mC1eJ2fTsxokNlMFVdVkJ6LfGVWUidclwM43C23s+sb7/OZkHv4NW+6DbHh5z/j > 3GdIJxM > +1mC1eJ2fTsxokNlMFVdVkJ6LfGVWUidclwM43C23s+QzzRx > +O3oef2Lstcax157wDXSIVK5cttA/cFlZQY3ty+f7FlYZq+TA/m5SctcMNul+ZOy1RIpyg > HQ > +w9U52 > +/cmHfCZE7NTmbcMAIMPZE8+t25TieMUrXXKZwv+6t2/h1hoerrQmrl3of/F1tk7eT > Hd3gE0 > +MBTr6 > +CBm4wg4O+QOtFcWVbE0V27NN0x17tieDMeA2/3MT3RrP7t4k5xWr+TAYXe+/L+ > fHwzcqAKQ > +CBm4wg4O+le+LZ > +s4NWxuLyiD5cucKZRXKKp7KcKK4u/ODCEAmeOkcer/aRcwfo9MUP3AUzxe0M25 > XNjjqfkuk > +OMCm8 > +M3idXs/Pzxaz0vAwu0yfjrGqIlK78dRRew8DSBcTcuy573KvnKK18mV2ZJmZsbacdJ > wKHDh > +KqkuL > +NdNKEtNs3kY6X0OLMJh0lLOq9C23336bXT/wAJ8BgAyX/Hh2L/UVnt0pW4FdaWo > 76358qai > +wXXfN > +8h890UHuXZtHXKX3EmWaC9Rt+8DXZlaLA2Q68+pZxDPOqhrH3JX1JtRTrQDSRZLiu > biq4pK > +8h890UHuXZtHXKX3EmWaC9Rt+8DXZlaLA2Q68+3VhyH > +ntHQWl3y4vP8yPTz3oLq0J5qd7Gn7xIpL2YfnLzianLJXzBDfoiGrvQQ+gjqIW2lmTda > bkO > +ntHQWl3y4vP8yPTz3oLq0J5qd7Gn7xIpL2YfnLzianLJXzBDfoiGrvQQ+GevPs > +78TE8Icfm5/0/J//ya4/9zk+AwAZLvHzngESFfd5gRnjoP/XDz/Vf6xl3gML/5ROV24M > rnb > +/Wddz > ++oqvoIB1SxIIRF9AY8Oq+o80Hwq6VtWzXkoAJpLDz3sGAEsim2nF/JMTV+ms+Z7t > q1dZNk+ > ++oqvoIB1SxIIRF9AY8Oq+fjp3b > +8eG7vJHNkE4Qz5BcNHXkFJhRs5lOt/2Mnej87q/YWFX33K3fuX38OLu+7z4+AwCZ > D/EMyTL > +84cdP > +/st/0+yR8xDm+JlrajZTdIvRJW9f+D2dvm/ebWKhJA48L1vGZ8BU/5GXz0QcMnL0z > MvoOAz > +SBuIZ > +7CeCueCLPb4fXrp+A9WzORrDDz/VZ9i78PLhUfOd22++ya5RPUfGBqpqbjYJaRrM > 9AYxhhV > +7CeCueCLPb4fXrp+AekDT > +MLATDebv7Lu050eX1dQpWzTtWMs8MW1lErZgotm8vO7C1Wufynm9/DunDvy0 > RM5Q16+TnBx > +2PToa > +01CSk27D8gZgctoM2obBxIv7Y4h4BnuEB7OAeA4XOZup5i13bfiypvu848fJ8uWsUV > ggtpFVJ+Hv > +HoaWysY6OXdxzaOLMJwkpEIK45kNKOntkzOUx7aRH7VDVRqeZbZvvNEqg+17il4 > kEVabgBU > +HoaWysY6OXdxzaOLMJwkpEIK45kNKOntkzOUx7aRH7VDVRqeZbZvvNEqg+mCat > g > +FhDPBuNms8kW27KF7N5NvF7y7LNySXQmaTwDOEncH0N7jj2H+txuK+/ZZjpSZC > QWg0sahZ5 > +FhDPBuNms8kW27KF7N5NvF7y7LNySXQmaTwDOEncH0N7jj2H+txuK+lxyyl > +zxMzQydLV2wvGpjlkfNhJmCFyUF3jNksm8Fg8L2PKv9XMEI2U2+e/Z1xY+7fz65Xr > eIzADA > +zxMzQydLV2wvGpjlkfNhJmCFyUF3jNksm8Fg8L2PKv9XMEI2U2+p2N00 > +LG/JqR3KmFRMaKRnPoozQ8NY6QuM9f9FZ9d0Ez/rVizq7sB4R6H76QOadCJ2pWn > H0RIa5Fu > +K5QKj > +CVgh8yUpmOnPzGjItdMNzeblGy7QTSfnLdDtuf84OwFaGhwk77xDsrNJWZlcAgC > TgD07t5V > +d0AKN > +5BML2C5fORYk78VTWTj0SlbbzN7WJdr+kGhC7ywQq2kZd25rniX8ScOpL0POh5m > AFTJQ5F3 > +5BML2C5fORYk78VTWTj0SlbbzN7WJdr+ZEBH9 > +YRHVx03XZZjPR558kqxeTbosdxhZUX/KYOc2QKrE/TFM0olVl87TitYfaC0s3ydDl/XC > zRb > +mzXT3 > +sbEjE8LHkK6KlM2QLAf9v6G1HbI5dtFmM3X8rWuhHeA/+Qm7fughPgMAk0Uyq2 > daKG87K5d > +xstUY > +GymSL6+oFvuHo6yeY2oahuo5qdp+9uH2F98ffI/1bxWZjU3D0rQWpD9lvvqPA7r9 > 1VGQjbe > +GymSL6+oFvuHo6yeY2oahuo5qdp+Hh8kd > +d7A92++/H9MpVQKqZ4CUc1L1TItmMmueSKzC8l7RmItfZIS7H+GzT/gGOmJqRBZ > qGvbaZEx > +d7A92++ER6n9 > +4u0DPy3Z25hvMrAS6GVPuenV7xaOvbVo9Nh99JfKS98uaPTcQaOX/nAx9j2i8fJh3 > rVGWxu > +7Xr06 > +jmwGgLRmdzwPnSzdpozo7F7qI0fXGQJ46GST0kaMKrmLVcxFBbP9A5fFEkgjSQ3p > rrqsrLq > +Yj7Y6 > +2fRpN9NIrnkw92nPnbQ4plEd+NG9NLYHfrqQTtPNSGOb3krXmXP7rcfPXGONyM > Se7XXr+AM > +2fRpN9NIrnkw92nPnbQ4plEd+NG9NLYHfrqQTtPNSGOb3krXmXP7rcfPXGONyM > Se7XXr+Aw > +2fRpN9NIrnkw92nPnbQ4plEd+NG9NLYHfrqQTtPNSGOb3krXmXP7rcfPXGONyM > Se7XXr+CR > +2fRpN9NIrnkw92nPnbQ4plEd+NG9NLYHfrqQTtPNSGOb3krXmXP7rcfPXGONyM > Se7XXr+i > +Tzy3blMaY9eyJs3KbmrtSM/0Ik+F6pArP+8l5Zt4Pe2qWebp7oih5bYq+uGfx10z8RU > mqyS > +ENIvm > +Na1yJuPl3zmFRjLdjDS2aW1No/r9Q39JY3vO0DnWl+ecOax6BoBJBr2GgZ3Cj0nHfe > yZRvQ > +a0jnW > +wnbECJPuSOrDD7MznjdvJrt2ySUxwrFngJRL3bHngwflxNtv2zYNaQvHpI2efJI8/TQ > brTl > +Ww8Ps > +Q5GdTRoa5BIAmEwSjueWFvYlQjOVfg3ZNQ1pLi1Dur99yap2MZzCQW/F1DkVU5 > XZkCO72XJ > ++WdI8 > +RGfZdWTnT5Lt20lBAeuYkyauuEs0d/zOd9gYGDU1bOc2AExCtNxOyB/+MFZVNVZ > WNjY6ats > +0ZJBj > +b/1GTlmTf4uhv8ZOTW+pnk65MHw1G53a8OCuDQ0v9dLJw7u+8MJFtuzwrg2H2b > 9S30tfaDg > +lp8fG > +evv4OuN6cBF93fKSnT3m9Y69/35Xw4ops1dMeZA/nalf/IKtTC+BgFwSF7m9krLFA > CAq8kM > +Y+8fQ > +js8tTVY1U+2ahslE/vGO9+crV7I/bC42Pbiri17zeO59wSNTue+lDSKnudBylQjyw7tY > 1vI > +js8tTVY1U+LX+HU > +BjlLH1Mfz/xy49apY4+Ufmn3Gf4QFuhPVboyzfLEyO1FHwoAUkR+CGP/GNrRcjs7 > O3RSpl3 > +ToBoe > +Zgcvly9nl/p61v0y2Oqgdydp3hx922i569vrF7PBIHnG331juPtcYyFfkFf8V/xfMnChX > 0z > +oTPn4 > +Bnnl1P/Z5mbHcQYH5VItn4+1CKOfhW9+Uy4BgMnH7vOewV70a7q4mB28PH6cXf > bsIZ/9LLs > +G+6z2 > +bSX1NHHXb2r//vrmIZeroCfIDwz3DfbwFQS6/N8OsEhe7eu+4f/GYrGUGQhoBlQN > Nv8HaWZ > +p/ZMa > +ucQUC2kawwUFZP16XUgfPCibX+zahaPOAJOZHSdWDZ0srT0qSwky27PjKy3uGe > N0w6m7C3H > +ucQUC2kawwUFZP16XUgfPCibX+LYTNU > +8XXnGUfHn+PxmwzgMXFo3Uyz2bTR7xtvkAcekNPpTz3xIEo2/NGaGHrOe2qNr8 > ZFJ1at3/R > +8XXnGUfHn+LuqTi > +J8O6qjrYXHfvduUvrOZ/31j7+pLgYyfrh+rn/PO/8WV/94PuZrJ76te7+VzhM/6WjfX > 3k8N > +n+GxE > +tbXsBKpXX2UtyKgETqbSwolVACkX98cw8XgO1K3oIKIzbT7b1D6zgWWtNmJ5zm0j > na89wk5 > +iZdNn > +Zf/b1FCgixRX6nLUGM/mj2MU/ZpRS20819dbFsplZeTYMTk9Md55h/1cSI7ly5fLKQ > u0ipw > +vJ5nG > +xkY5NTFu3GDdg4xnJHjh938+7y/+RM5KcWw3Gsw0nu2AeAZIufg/hvQOCbn4urv > 8x2rbWo3 > +xkY5NTFu3GDdg4xnJHjh938+Lvsef > +9oQaup73lDf7WDsbOqFdbkp7X8PjKLOnfkzkA6osnvHiec/jT5Nyfnn8daWtLL/1Jfo > ghuU > +Ue4V8 > +OV9Bdxflcb59Xi7TP477pcv8hRnWidd999H/TFwm0eXWW8eeeEL+79tBfsjpIwNAi > sgPYew > +fQ3uq > +51Zl7CkNXS0bbN9T9OIsVsuy3dqXt45T1FpXz8ZZLYtnJIEuf3ElX6gZGou/7MJyXhmz > O3a > +Uh5Yr > +Y1Sz5V4Svo5xfeXtax+TTWt2KsSluNhBDcHmz0/eodDjx4+LibKyMjFhNH06+SvZ4C > o1rF7 > +Y1Sz5V4Svo5xfeXtax+YuPbt > +k8NaRDZjBtm4kWzaxBpI2gfVM0DKpa56ZljZyupFegnVmpqF7KJU2Ky4NK22tbR1s > L4mjnR > +3i2fU > +oneXRS0rhdWH7X2pWS43PD6dFe8ofLmc5dWzLOJ1L7Xz27yYTkRtLf3PNL/QwjqD > yL9F+r4 > +yT2Oj > +7j8u/DJnztizz7KzCpNAblb6LACQIvJDGPvH0JaW2zMaWuVQj50FR4s8J9W+lvgQkE > /4Cok > +cw4rK > +m+kmH1yIcWCJ0JAb2z7wtUWqvE2ekRfNyt2140/PXmDacKxwZpGc0tMuZ+8i+SK > MU1RXJyc > +m+gcf3t > +S5S+wNjpUmqXXtH07TWu/v8rJ8JNn84OMw8MEK/X3qIZADKAzSdWVX6t3N13u > VfOCTMaahf > +S5S+6X/yR > +HOspb0YJuXQ+xi+9GEd61j1jsH3PmgFl2OkdC/kKERlfv0K7fOiy2uw8icrKzJsIrV5NN > my > +HOspb0YJuXQ+xi+Q02CH > +ksa9N4bZ2VA3fO6DB7pPb1+v9Og59NyqivojfKW4BE3PfabB3NjIgpn+/yKYAcBM > wvHsfyV > +ksa9N4bZ2VA3fO6DB7pPb1+v9Og59NyqivojfKW4BE3PfabB3NjIgpn+rV0BO > +0zr134/6w6tP9yOdFZe8O0RVXdyyYyGthuvUfNOPAG0P3TMSUjCDN72+0tSmrZ7 > NuIs95Ox > +OOUZ1 > +oE6ttt1LfYXqcvY42uo8iWh11dUVOodq/ny5BGzVQ/NYqZ5Xr61YTNP6UA39mzm9 > fR9p7n7 > +oAE/o > +UIfbdc/RzFVm672hjrjDV3PNmyufQ1CD+emn2TQAgIWE49n9SG/BCbnreMV2Vq > eanYZUuaX > +a03e0 > +SAS5+5GxtvKe0BDR584TEXuxoD8LIo6+rD6jq+YrvoEO/lw/IrXl7u6O0C8DE8UtbeV > EjlF > +SAS5+5GxtvKe0BDR584TEXuxoD8LIo6+rD6jq+9YsHj > +arWtHbv6eW9BNW8XNiForfzGG2SM9b9KAgG7TrkBLW31LBdxixu3bpxLaGDT6W > BwQCwkpE/ > +0Q8JS > +fLi7ea2cuPED89UkBDMAxEQegwZIHfm3mKq/Rn3f2tohMbRjY/S+sKupj81JUa729 > RWsk20 > ++EoZc > +MoHkZsXHHCB15IcwRU3DANKbduc2Wbm0hM3uVkYgl1z1SwNuzU5sC8bV/uej2 > 6YvnvrS7IP > +ooRMA > +YmFHp54AicHpuUmCDQuQcnF/DFE9AwAAOA7iGQAAwHEQzwAAAI6DeAbgJyvz > fkiCzXVKs6+ > +h51bt > +PtjfXq92HBY6oblC7U3soDfUguygl98q+jNRHhAAID6Jx/OVJo9yBjO/aM4qNt6UteI > V1qH > +PtjfXq92HBY6oblC7U3soDfUguygl98q+G0MnS > +0JI9dX520nOo303tRdPhCccfMIqF/NH4c2npnnd7qexjxJThlUc6wTp6wfY9uodip26 > HvUg > +TE/au > +J62h5w7kn+P9kLjqtxZ/lyVusHln4CndYM9k5WZxbvS5xsISVx7P74qH2uWNNI+/d > Q8/+/m > +J62h5w7kn+pwe/R > +gKcrPzW4PvE+QQFg0hpLlH7ICja+pDoUhP4mSTcWBZ316ceNiDiShBj0Qj+OJBudw > jB6oxz > +gKcrPzW4PvE+QQFg0hpLlH7ICja+pDoUhP4mSTcWBZ316ceNiDiShBj0Qj+5Ufc4 > +fDXN6zzfqX0QI/0rN4yHEQXju+CbhXz7x5rxMyj6LNE87IS965SRf4s2/DXGxXDec99 > LX3j > +Q84UG > +vtUMNzGnNjz4kjr8aFfDri4+0fuCZ8NhPhW6i27NlJCbNVUbFgAS+BjavXM7b8mp > HQv9L75 > +vtUMNzGnNjz4kjr8aFfDri4+0fuCZ8NhPhW6i27NlJCbNVUbFgAS+uWRQO > +XekhC6tCXTMVN8TY/ZanYlaot05aRLZ94KmYLecEf6C1sLzz8dn+owFlNdY9p0c7vG > NeceX > +4fXcr > +eI+e++VegUCdWoyGile6cE9TO62G2UJaxa7pJn7WxZiola807ThasqPROObmUKCj > oFj0DKr > +eI+e++ZeWBe > +qafgXU8efYOEVcOKuXeV/LKP3GO+pYLN+8hTrM6OQl4xGcT+bQCITxKOPbNuq63 > HpGJDYpx > +dY9xV > +G4tlS33k6DMiLP2vewuWbSrg04quE2fd5cWVpfe6+84dEC/D+JtAZdiJHb4P2YCuz0 > aD5oN > +G4tlS33k6DMiLP2vewuWbSrg04quE2fd5cWVpfe6+zPOEb > +6NDsK77kPTqTDbyxpbhyS2NnBXGz1cQAHmxEL5OBn+lPGRHY/ldCg3ZYjflh57t2rq > zoyLX > +6NDsK77kPTqTDbyxpbhyS2NnBXGz1cQAHmxEL5OBn+t0xMM > +/b0e9O4r9nf/07s7WcfaRv7vvbuueaWc0XK5CuSD9A328CVMcX50QQ4AYJSkpmG > hMalCY0H > +KurC4 > +hQebXKgZfTJqbECq1jZ6R1ZE+r5mKElP7uyeXV06g5Yu1YWXOk7x+LQcYCo0FKa8G > ApcgcZ > +hQebXKgZfTJqbECq1jZ6R1ZE+r5mKElP7uyeXV06g5Yu1YWXOk7x+hH885 > +PrFVlvtiXKzQfgJPrUln41HJm+lWM9WSje8a9FYuLXlXbv1gc9237uH9bPvWBdzsILTa > odi > +PrFVlvtiXKzQfgJPrUln41HJm+S5iGW > +3BvV3zvi2HP3Q2KEjJWP/c1+vubXyT/Vi19YQwFyF+IZAOKTpHgODaVsNhak5fjQ0X > KzUnK > +d50e0 > +iDTUmsFT5/yF965lC2esLZ8t49PGQaYtR322GD06GuyIwCxvLX+uCOX7hLzrScn9EN > knamV > +XfctJ > +Ga7u5uHNq+fWnBRDZQx30+WrfS00uRV5Gw+Jm8RCdVY2KAs2v67JcgCA2CQhn > v2BVjJrXnRZZTY+ > +dDR45dpHjEUkuXLg6CXSd7SIx2rRi5cI4ceMLQeZjrRz23yQ6SSN+ux+hD+RYYe5gV > 3v2rl > +dDR45dpHjEUkuXLg6CXSd7SIx2rRi5cI4ceMLQeZjrRz23yQ6SSN+ux+hD+kiwgL > +cqUkUGtl2xzZvZ48pslyAIDY2B3PQydLt0UcCzma8aGjwfIs7DAt3/ncKTOVXTorSOs > J+nR > +Wg0xH > +t3NbFfWoz0UFs/0Dl+XMuPQjXpfcZd1Wzp53DeF4rSyn7bBys1KFAwDEw554Du0 > HrmVNlLV > +jIWuO > +PdPLK13RjQ8dH9Y8Sp+XrDrvPsGOedsyyDSL86hGfXbVLPN0d2RZNMMO1yFf2P > NeUr4pxh2 > +PdPLK13RjQ8dH9Y8Sp+iyX/X > +E62rLisrq44f1A82lWZllTah/TMATDYYsQpST22Mrfw10oBe0+rp7F2ws8hb0jnWIn58 > hK0 > +G48AW > +A0i5uD+GiGdIPZM/X1o2F3n9hHjUcEbYxA5bDCDl4v4YJqnlNgAAAMQP8QwOFGx > a5/W7fT4 > +A0i5uD+PaV0j > +DkIDAEwuiGdwnK66IhbO+xoaWjpZQKNpGABMPjj2DKkX5bEZHEmNFbYYQMrh > 2DMAAEDmQDw > +DkIDAEwuiGdwnK66IhbO+DAAA4 > +DnZuQ+qpO3+ihD/aKGHnNkDKYec2AABA5kA8AwAAOA52bkPqYR9skmDDAqQc > dm4DAABkDsQ > +DnZuQ+qpO3+zAACA > +4yCeAQAAHAfxDAAA4DiIZwAAAMdBPAMAADgO4hkAAMBxEM8AAACOg25JIP > XU0/YhSfAxB0g > +VdEsC > +AACQORDPAAAAjoOd25B66BoaADIVdm4DAABkDsQzAACA4yCeAQAAHAfxDAA > A4DiIZwAAAMd > +BPAMA > +ADgO4hkAAMBxcN4zpB469QSAjIfzngEAANIe4hkAAMBxsHMbAADAcVA9AwAA > OA7iGQBSJNh > +UmkXV > +dcl5AAhBPEMmkd/3XGlTUC4N6aqTN1LydvUuPCTEnMwLOqM+iPaRTVcQtE9geA > Wmj8Do7hN > +arluf > +L9atKGkeR38Xs7dvwFcPvRXjHS1fMCNuDN1Z3Eu9S2ht/aPoXlXXM96SzrGxsZZKu > cAOJv/ > +FjMVG > +Dn95dEX1Zn4nNqe7d2lTU4T/iK463XvUUR9PMN+GuufSrK0yvBjxZIYtb/Ug2tV0b1 > 1ZxfT > +B9aua > +qmvSvwD9A4ll4lHk7XRGs6H42sproPS36ujfGlvLfGWTF0AXqc/BXkzoXvIW7X2snn > 8CIZ4 > +hk/Se > +59/3TGeJd53+A0Y/kDsX9Mqb6e3ne9lSV8OpTg/xdKoh4fb5yM6wexZ1VKt3Hes0r > qBFH0o > +61eCS > +yyS3Tz5Gr69njfj40y+ENUS9B33kNZrvBWV9tjr99qhs4XN0Lf6COV20RXz7Bvw9Ebc > ys05 > +yyS3Tz5Gr69njfj40y+5f73V > +HeyOUbxlkw1l3Jj03RWd3yofgqIP/oz6HRy80ONeUCRn7GH+X2y5kc1e3n5+D0q5k > 3wr2v/ > +WBvP/ > +CHqPrKw1rXx1M137Wz0eT6t2m5lsQyr0XOylalJLoazQ6yMdB/i9w/6MzR/EsJrhD0 > wI3VH > +8AYdt > +JZ9brqJ9+w3aR7ba4Bbv12zLRBJ6heGfMcH8BVRWeVr3i7cZPMD++OXGY8/vXkD > M/3hSCPE > +JZ9brqJ9+w3aR7ba4Bbv12zLRBJ6heGfMcH8BVRWeVr3i7cZPMD++MmaSy > +Rf12Klogo0fLH/rIaVY1WltV4g2lCP3wPuMlvn2a74HKFotvhWi5GrZ62GsJNu3s8fVq > Xkh > +lS+gb > +VyeqIDN5+zSwNIUACxA2w8KXfuPuqxaL2XdV9Vrxjlxrq+kLaIrqLRs3lEHYu2PpoM > zSXwR > +VyeqIDN5+zSwNIUACxA2w8KXfuPuqxaL2XdV9Vrxjlxrq+ev99b > +xCsb+nooVrPwkOA5Jyihwd+HKlSrhd6bFP5fbLWRu0xfXhWfkl/v2hvHx34+0eySc0 > b8ZWx > +xCsb+nooVrPwkOA5Jyihwd+q2WT4 > +/428DdlL7YmYWiXzxv1LHP9BKKs/sIj/ieasNjj/jzF5vxZbJn5WL0CTz73nSfVW9pfOn > pD > +9UKxe > +S99/dN8PEwbxDBmpq47Wftp4oejXSu+CnfJbPexrXatyk69H/sqW5JegGhIR7t26R > qwSaSX > +6/dHq > +qaqkXxJ+49era16J+iXB04uiURrb74HQ26dvmhWFRfS10Mhh1cGptQd4No/37RPN > Ww7fUFo > +qaqkXxJ+49era16J+m7y7E > +1bDP5+bVm3gh/hJeoLVU0icMFT607FGfV9330Olp7SD7+CT91tV+2Zv+F1tt5P1WL > 4/+D65 > +1bDP5+p9XTq > +N1A0/62RKD+BxM8fzSNE3oa6vweV8mKKvH65JDLTB6FM/8D07zTif6I5qw1+gU+ > GvV/LLWM > +p9ArV > +kl/H+mNFf7XyfO7a31O9tlI+oXwB0X8/TBTEM2QcVnvtrzLd7cXCSmCRZf7ZZmh1S > 3Y2ab7 > +Pei7w > +D6u4v3WFxBj3DWoo34ZZbL8x+/an3xbykVXaXb4ikDo9ytNHJfzts+8d+nZpNrOFX > c/Q73T > +D6u4v3WFxBj3DWoo34ZZbL8x+xBce+ > +3elU3QG5ok5UbzlsQ2mZvDtr6pum363sl4tAyx3TXFG+fem3Lv83JPy/2GojV1m9P > LbZw/Y > +3elU3QG5ok5UbzlsQ2mZvDtr6pum363sl4tAyx3TXFG+qR/hv > +jQaNALGvgG10v65+jLgNzQ8BhF4MDZQogsTqOILpH5j+ncb0nyhYbfB5YtrwfiNsG > SuhV2j+G9P6 > +Y0V/ArCbeDqLHwTne5WfB1S03w8TBPEMGUVmk+nHNlKjnTCVm6o7dnYo07RGi > 3wkNzpq/ad > +8xbPv > +B6/2a4CWvd6Srfrv/8qWqL8rzN8+rUdpecQehG0A9Qi2CF36VdfSoKlbxJdVQ9RvW > buhDOj > +3cInu > +3bFXMu77oN+tygFC+obYQUGTXLFg+l9stZErTV/efpH9dCtpK/dEKa3gBFr+6+pH6 > 21o9ve > +3bFXMu77oN+tygFC+obYQUGTXLFg+gQ3/M > +yClr4z1IxD+wOP4TrTa4+v+ofb+Rt0x8Inys2E0d63a2it93dK5n5zqZzjF9P0wMuVUA > MkB > +yClr4z1IxD+wOP4TrTa4+v+ofb+YjRf6 > +mc3QKiFEiUr1PnxdOqdmKFtdndE/tHxcw/PRpaZPIWgfWkd3n9Ar1q/PVlJvozOh9 > UIML4f > +fgS9T > +VuYzmgdl8/K20H0jv2UFvVFdMbSh1LuE1ta9O92jaB5C+2iU5j6al659PvVxDJtC92w > WD6l > +7Fbrl > +7AbtA/K3w+asHla7sn4tzWJKv54yb3hP8oG1j2J8HM50Bf5SQ/NWD6JdTfv04h50o > e6Oulc > +Xoj4c > +XaxOG16A/i5imdn71T4EI+fVRxO0qxjvYbWyyQvg+NrqPF/L7B6aTZMy6DUMAAD > AcbBzGwA > +AwHEQ > +zwAAAI6DeAYAAHAcxDMAAIDjIJ4BAAAcB/EMAADgOIhnAAAAx0E8AwAAOA7i > GQAAwHEQzwA > +AAI6D > +eAYAAHAcxDMAAIDjIJ4BAAAcB/EMAADgOIhnAAAAx0E8AwAAOA7iGQAAwHE > QzwAAAI6DeAY > +AAHAc > +xDMAAIDjIJ4BAAAcB/EMAADgOIhnAAAAx0E8AwAAOA7iGQAAwHEQzwAAAI6 > DeAYAAHAcxDM > +AAIDj > +IJ4BAAAcB/EMAADgOIhnAAAAx0E8AwAAOA7iGQAAwHEQzwCQiK66LI3SpqBcP > g56t7ouOR0 > +SbCqV > +D2R2awxsfVXq60rsNQHEBPEMAIKSjTGHkNvXOyZ0lniL4s+wrroib0knf6BeX8+aiK > FKX+w > +D2R2awxsfVXq60rsNQHEBPEMAIKSjTGHkNvXOyZ0lniL4s+wrroib0knf6BeX8+aiK > FKX+4 > +D2R2awxsfVXq60rsNQHEBPEMAIKSjTGHkNvXOyZ0lniL4s+wrroib0knf6BeX8+aiK > FKX+o > +D2R2awxsfVXq60rsNQHEBPEMAIKSjTGHkNvXOyZ0lniL4s+wrroib0knf6BeX8+aiK > FKX+W > +D2R2awxsfVXq60rsNQHEBPEMAIKSjTGHkNvXOyZ0lniL4s+wrroib0knf6BeX8+aiK > FKX+v > +D2R2awxsfVXq60rsNQHEBPEMAIKSjTGHkNvXOyZ0lniL4s+wrroib0knf6BeX8+aiK > FKX+X > +q2KbpaijurfTIxcATAjEMwBwXc94/XyidU3cWVZZ5SE9F1hqmtTBrDStU6raNa30ef > R1bdf > ++Vrdv > +UyWfdjVs9fg7Dljnr6vh1NbzRdEVxgm9KvZMY2OnGlxyFmCCIJ4BwDY0YUnJPBerg > 2m9yUt > +XXR3c > +2rNAlrS0FvXQQlkTe8ELPfy+UtECt/98r5wxVdlCHyeajE7kVQGkCuIZALjKFrn71tPZI > kr > +2rNAlrS0FvXQQlkTe8ELPfy+YaPm9 > +NCJF9dnj66V3pnno2SojTlcHq0tjpql7dWHMMrq3uqMoPKEn4lUBJA/iGQAkXo6O > jcUYztq > +jvInU > +na55JXIXNNd73u9eUCRn5C5mQX0OJbLXkX0mT2zPqwJIFcQzANitssrTulOWs8Gm > na3u6rUm+ajJ > +Yo7ey+99RhwStr6XxKKZxXIM6RvfqwJIEcQzANiusoXtcOalLWuMbZKfPIuLjDuq2S > HhSPc > +Yo7ey+KYdV0 > +rEVxfK8KIDWy6E9POQkAAADOgOoZAADAcRDPAAAAjoN4BgAAcBzEMwAAgOM > gngEAABwH8Qw > +AAOA4 > +iGcAAADHQTwDAAA4DuIZAADAcRDPAAAAjoN4BoBEdNXxTqylqHurpnerE6Nf6 > MlRqExvi4G > +tr0oz > +mGWirwsgaohnABCUFIo5gkJDN3aWeIviTzD2Aoo6qnvluNMR0XXHCV27XlVXHRs > /gz8QG7E > +Dw2XA > +BEE8AwDX9YzXzyda18SdZZVVHjkio0nFyUrTOqWqXdNKn8dQ1/IxnaMchoquu/V > 8UXSFcUK > +vqmt/ > +q9u3SQyB7WrY6vF3HBj/GQESh3gGANvQLCMl81ys4qRVcHjF2dqzQJa0tEL20JI01j > EhtSp > +b6ONE > +k9GJvKrghR5+X6logdt/vlfOACQT4hkAuMoWuVPZ09kiisVosSGSZfXZ4+uld6Z56N > kqI05 > +k9GJvKrghR5+XcapL > +Y6ape3VhzDKajeIcntAT8aoAkgfxDAASL0fHxmIMZ+1R3oSq4Yj4jm9BfQ4lsteRfSZ > PbM+rcs0r > +kTvGud7zfveCIjkDkEyIZwCwW2WVp3WnLGeDTTtb3dVrTfJRk3qxY9HMYjmG9I3 > vVdF7+b3 > +kTvGud7zfveCIjkDkEyIZwCwW2WVp3WnLGeDTTtb3dVrTfJRk3qxY9HMYjmG9I3 > vVdF7+Pi > +kTvGud7zfveCIjkDkEyIZwCwW2WVp3WnLGeDTTtb3dVrTfJRk3qxY9HMYjmG9I3 > vVdF7+AP > +kTvGud7zfveCIjkDkEyIZwCwW2WVp3WnLGeDTTtb3dVrTfJRk3qxY9HMYjmG9I3 > vVdF7+V > +1vcCsB3iGQBsV9nCdjjz0pY1ezbJT556RVG17DLFqulYi+L4XhW9l69nTaR7ASRDFv3 > pKSc > +1vcCsB3iGQBsV9nCdjjz0pY1ezbJT556RVG17DLFqulYi+BAADA > +GVA9AwAAOA7iGQAAwHEQzwAAAI6DeAYAAHAcxDMAAIDjIJ4BAAAcB/EMAAD > gOIhnAAAAx0E > +8AwAA > +OA7iGQAAwGEI+f9N9WD9hjqa+wAAAABJRU5ErkJggg== > +" > + id="image10" > + x="0" > + y="0" /> > +</svg> > diff --git a/doc/guides/perf_tuning_guide/index.rst > b/doc/guides/perf_tuning_guide/index.rst > new file mode 100644 > index 0000000..ff325e9 > --- /dev/null > +++ b/doc/guides/perf_tuning_guide/index.rst > @@ -0,0 +1,47 @@ > +.. BSD LICENSE > + Copyright(c) 2010-2015 Intel Corporation. All rights reserved. > + All rights reserved. > + > + Redistribution and use in source and binary forms, with or without > + modification, are permitted provided that the following conditions > + are met: > + > + * Redistributions of source code must retain the above copyright > + notice, this list of conditions and the following disclaimer. > + * Redistributions in binary form must reproduce the above copyright > + notice, this list of conditions and the following disclaimer in > + the documentation and/or other materials provided with the > + distribution. > + * Neither the name of Intel Corporation nor the names of its > + contributors may be used to endorse or promote products derived > + from this software without specific prior written permission. > + > + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND > CONTRIBUTORS > + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS > FOR > + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE > COPYRIGHT > + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, > INCIDENTAL, > + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > NOT > + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > USE, > + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND > ON ANY > + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF > THE USE > + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH > DAMAGE. > + > +Performance Tuning Guide for Intel's platform > +============================================= > + > +|today| > + > +Contents > + > +.. toctree:: > + :maxdepth: 2 > + :numbered: > + > + intro > + performance_tuning > + > + > + > + > diff --git a/doc/guides/perf_tuning_guide/intro.rst > b/doc/guides/perf_tuning_guide/intro.rst > new file mode 100644 > index 0000000..5672549 > --- /dev/null > +++ b/doc/guides/perf_tuning_guide/intro.rst > @@ -0,0 +1,44 @@ > +.. BSD LICENSE > + Copyright(c) 2010-2015 Intel Corporation. All rights reserved. > + All rights reserved. > + > + Redistribution and use in source and binary forms, with or without > + modification, are permitted provided that the following conditions > + are met: > + > + * Redistributions of source code must retain the above copyright > + notice, this list of conditions and the following disclaimer. > + * Redistributions in binary form must reproduce the above copyright > + notice, this list of conditions and the following disclaimer in > + the documentation and/or other materials provided with the > + distribution. > + * Neither the name of Intel Corporation nor the names of its > + contributors may be used to endorse or promote products derived > + from this software without specific prior written permission. > + > + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND > CONTRIBUTORS > + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS > FOR > + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE > COPYRIGHT > + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, > INCIDENTAL, > + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > NOT > + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > USE, > + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND > ON ANY > + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF > THE USE > + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH > DAMAGE. > + > +Introduction > +============ > + > +This document is a step-by-step guide about how to get high performance with > DPDK on Intel's platform and NICs. > +It is designed for users who are not familiar with DPDK but would like > +to measure the best performance. It contains step-by-step instructions to set > the platform and NICs to its best performance. > +The document will add more sections with the DPDK features' increment. > +Currently, the document has only one section about PF performance test setup, > and will add below cases in near future. > + > +* VF performance tuning. > +* Vhost/virtio performance tuning. > +* new features.... > + > + > diff --git a/doc/guides/perf_tuning_guide/performance_tuning.rst > b/doc/guides/perf_tuning_guide/performance_tuning.rst > new file mode 100644 > index 0000000..e701d48 > --- /dev/null > +++ b/doc/guides/perf_tuning_guide/performance_tuning.rst > @@ -0,0 +1,157 @@ > +Performance Tuning DPDK with Intel's Platform and NICs > +====================================================== > + > +This document is a step-by-step guide for getting high DPDK performance with > Intel's platform and NICs. > + > +Prerequisites > +------------- > + > +Hardware platform essential requirements: > + > +1. Use a standard Intel? Xeon? server system (e.g. Ivy Bridge, Haswell or > newer). > + > +2. Ensure that each memory channel has at least one memory DIMM inserted, > and the memory size for each can be 4GB or above (e.g: 8GB or 16GB). You can > use ``dmidecode -t memory`` to check the memory status. **Note**: This is one > important element to impact the performance. > + > +Hardware platform Network Interface Card Essential requirements: > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > ~~~~ > + > +1. Get an high end Intel? NIC, e.g: Intel? XL710. > + > +2. Make sure each NIC has flashed the latest version of NVM/firmware, if > there > is. > + > +3. Use PCIe Gen3 slots, such as Gen3 x8 or Gen3 x16 because PCIe Gen2 slots > can't provide enough bandwidth for 2x10G and above. Pci gen2 x 8 may not provide enough, pci gen2 x 16 may support that.
> + > +4. When inserting NICs to the PCI slots, be careful about the NUMA. If you > will > use 2 or more ports from different NICs, please make sure these NICs on the > same CPU socket. > + > +BIOS settings: > +~~~~~~~~~~~~~~ > + > +1. To be sure, reset all the BIOS settings to default. > + > +2. Disable all power saving options, and set all options for best > performance. > + > +3. Disable Turbo to ensure the performance scaling with core numbers > increment. > + > +4. Set memory frequency to the highest number, NOT auto. > + > +5. Disable all Virtualization options when you test physical function of > NIC, and > turn on VT-d if you wants to use VFIO. > + > + > +Linux System Essential Requirements: > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > + > +1. Get an widely used 64 bits Linux distribution installed, e.g. Fedora 20 - > 64 bits. > + > +2. Make sure to select as more components as possible during system > installation, to avoid install necessary components again and again. > + > +3. Make sure the widely used and fully validated version of kernel > installed, e.g. > 3.18. > + > +4. Make sure the required components are enabled for some old version of > kernels, before rebuilding the kernel. The kernel may need to be rebuilt if > any > DPDK component is missing. Refer to Getting Started Guide on www.dpdk.org > for more details. > + > + > +Grub Parameters Essential Requirements: > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > + > +1. Use the default grub file as a good start. > + > +2. Reserve 1G huge pages via grub configurations, e.g. add > ``default_hugepagesz=1G hugepagesz=1G hugepages=8`` to reserve 8 huge > pages in 1G size. > + > +3. Isolate CPU cores which will be used for DPDK from scheduler, e.g: > +isolcpus=2,3,4,5,6,7,8 > + > +4. If it wants to use VFIO, additional grub parameters are needed. e.g: > +``iommu=pt intel_iommu=on`` > + > + > +Configurations before running DPDK > +---------------------------------- > + > +1. For Intel? 40G NICs, special configurations should be set before > compiling it, > as follows. **Note**: This is very important:: > + > + for at least DPDK release 1.8, 2.0 and 2.1, in > <dpdk_folder>/config/common_linuxapp > + CONFIG_RTE_PCI_CONFIG=y > + CONFIG_RTE_PCI_EXTENDED_TAG=?on? > + > +2. Build DPDK target and reserve huge page, refer to GSG guide for more > details. > Below scripts are for your reference:: > + > + cd <dpdk_folder> > + make install T=x86_64-native-linuxapp-gcc -j # Build DPDK > target > + awk '/Hugepagesize/ {print $2}' /proc/meminfo # Get the > hugepage size > + awk '/Hugepage_Total/ {print $2} ' /proc/meminfo # Get the total > huge page numbers > + umount `awk '/hugetlbfs/ {print $2}' /proc/mounts` # Umount > + mkdir -p /mnt/huge # Create > the hugepage mount folder > + mount -t hugetlbfs nodev /mnt/huge # Mount to > the specific folder > + > +3. Check the CPU layout by dpdk tools or system commands ``lscpu``:: > + > + cd <dpdk_folder>/tools > + ./cpu_layout.py #Run the script to check your > system's cpu layout. > + > + Or run ``lscpu`` to check the the cores on each socket > + > +4. Check your NIC id and related socket id:: > + > + lspci -nn|grep Eth # List all the NICs with PCI > address and device IDs. > + > + e.g. Suppose your output is as below:: > + > + 82:00.0 Ethernet controller [0200]: Intel Corporation Ethernet > Controller > XL710 for 40GbE QSFP+ [8086:1583] (rev 01) > + 82:00.1 Ethernet controller [0200]: Intel Corporation Ethernet > Controller > XL710 for 40GbE QSFP+ [8086:1583] (rev 01) > + 85:00.0 Ethernet controller [0200]: Intel Corporation Ethernet > Controller > XL710 for 40GbE QSFP+ [8086:1583] (rev 01) > + 85:00.1 Ethernet controller [0200]: Intel Corporation Ethernet > + Controller XL710 for 40GbE QSFP+ [8086:1583] (rev 01) > + > + Check the PCI device related numa node id:: > + > + cat /sys/bus/pci/devices/0000\:xx\:00.x/numa_node > + > + Usually ``8x:00.x`` is on socket 1, ``0x:00.x`` is on socket 0. **Note**: > To get > best performance, please make sure the core and NICs are in the same socket. > Take ``85:00.0`` for example, it's on socket 1, then use cores on socket1 for > best > performance. > + > +5. Bind the test ports to igb_uio. For example bind two ports to dpdk > compatible > driver and check the status:: > + > + # Bind ports 82:00.0 and 85:00.0 to dpdk driver > + > + ./<dpdk_folder>/tools/dpdk_nic_bind.py -b igb_uio 82:00.0 85:00.0 > + > + # Check the port driver status > + > + ./<dpdk_folder>/tools/dpdk_nic_bind.py --st > + > + > +Example > +------- > + > +Below is an case of running dpdk l3fwd sample to get high performance with > Intel platform and NIC. > + > +**Note**: The scenario is to get best performance with two Intel?XL710 40G > ports. See below Figure1 as the performance test setup. > + > +.. figure:: img/pf_performance_test_setup.* > + > +**Figure 1. PF_Performance_Test_setup** > + > + > +1. Insert two NICs(Intel?XL710) into the platform, and use one port per card > to > get best performance. The reason using two NICs is the PCIe Gen3's > limitations. > **Note**: As PCIe Gen3 can't provide 80G bandwidth for two 40G ports, but two Pci gen3 x 8 cannot provide .... > different PCIe Gen3 slot can. Refer to the sample NICs output above, then we > can select 82:00.0 and 85:00.0 as test ports:: > + > + 82:00.0 Ethernet controller [0200]: Intel Corporation Ethernet > Controller > XL710 for 40GbE QSFP+ [8086:1583] (rev 01) > + 85:00.0 Ethernet controller [0200]: Intel Corporation Ethernet > + Controller XL710 for 40GbE QSFP+ [8086:1583] (rev 01) > + > +2. Connect the ports to the traffic generator, such as IXIA and Spirent. > + > +3. Check the PCI devices numa node(socket id) and get the cores number on > the exact socket id. In this case, 82:00.0 and 85:00.0 are both in socket1, > and the > cores on socket1 in the referenced platform is 18-35,54-71. Note: Don't use > one > core's 2 thread(e.g core18 has 2 lcores, lcore18 and lcore54), instead, use 2 > logical > cores from different cores(e.g core18 and core19). > + > +4. Bind these two ports to igb_uio. > + > +5. As it is known that XL710 40G port need at least two queue pairs to > achieve > best performance, then two queues per port will be required, and each queue > pair will need a dedicated CPU core for receiving/transmitting packets. > + > +6. Basically l3fwd will be using for performance testing, with using two > ports for > bi-directional forwarding. Compile the l3fwd sample with default lpm mode. > + > +7. Final command line of running l3fwd could be as followings. That means use > core 18 for port 0, queue pair 0 forwarding, core 19 for port 0, queue pair 1 > forwarding, core 20 for port 1, queue pair 0 forwarding, core 21 for port 1, > queue > pair 1 forwarding:: > + > + ./l3fwd -c 0x3c0000 -n 4 -w 82:00.0 -w 85:00.0 -- -p 0x3 --config > '(0,0,18),(0,1,19),(1,0,20),(1,1,21)' > + > +8. Configure the traffic to a traffic generator such as IXIA or Spirent. > + > +* Start creating a stream on packet generator, e.g. IXIA. > +* Set the Ethernet II type to 0x0800 > +* Set the protocols to IPV4. > +* Do not set any L4 protocols, just keep it as none.**Note**: this is very > important, if you set UDP or TCP protocol, you may get relative low > performance > since the l3fwd example default using none protocols for RSS enabling. > +* The flow's DEST MAC, DEST IP, SRC IP's settings can be seen in the above > figure. It's for the user's reference. Set the correct destination IP address > according to "ipv4_l3fwd_route_array" in the l3fwd example code, such as > 2.1.1.1 > for port0, then it will forward the packets to port1. Set the source IP as > random, > **Note**: this is very important to make sure the packets will be received in > multiple queues. > + > + > -- > 2.1.0