From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============2348470837522170945==" MIME-Version: 1.0 From: Walker, Benjamin Subject: Re: [SPDK] Problem with Blobstore when write 65MB continously Date: Wed, 10 Jan 2018 16:32:58 +0000 Message-ID: <1515601977.6063.28.camel@intel.com> In-Reply-To: 6CE0D7EB-15CC-44A2-888B-C283A1C54050@intel.com List-ID: To: spdk@lists.01.org --===============2348470837522170945== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable On Wed, 2018-01-10 at 16:21 +0000, Harris, James R wrote: > Hi Paul and Zhengyu, > = > The problem is that the app is not giving the block device a chance to > complete any I/O while submitting the 520 back-to-back requests. Blobsto= re is > passive here =E2=80=93 it does not do any polling on the block device =E2= =80=93 that is up to > the application. To additionally clarify - the bdev layer will poll for completions on your behalf, but it does so on the same thread that you are submitting I/O from.= If you are in a tight loop submitting I/O and never yield back to the event reactor, the polling won't have a chance to occur. You can either increase = the number of reqs per channel or submit smaller batches at a time. Basically, = do what Jim said below. > Increasing the number of channel reqs would work =E2=80=93 but at some po= int these > will still run out. So it really depends on your application =E2=80=93 e= ither > increase the channel reqs to the absolutely maximum you will ever need, o= r add > ENOMEM handling. --===============2348470837522170945==--