From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============8845770783273192243==" MIME-Version: 1.0 From: Yijing Wang Subject: [SPDK] Re: A question for bdev_io cache Date: Wed, 09 Oct 2019 14:37:49 +0800 Message-ID: In-Reply-To: 54691133-86D5-4605-8CEE-01EF39A81B21@intel.com List-ID: To: spdk@lists.01.org --===============8845770783273192243== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Jim, thanks for your information, now I understand why we use spdk = bdev owner cache. Thanks! Yijing. =E5=9C=A8 2019/10/9 =E4=B8=8B=E5=8D=8812:06, Harris, James R =E5=86=99=E9= =81=93: > Hi Yijing, > > We used to use a DPDK rte_mempool for the spdk_bdev_io structures. Here'= s the commit where we changed it: > > https://github.com/spdk/spdk/commit/534d9c20020018aa2eac0a113987f6ba04855= b5a > > The primary problem we had with the rte_mempool cache is that it only wor= ks on DPDK threads. So applications that use the SPDK bdev layer without u= sing DPDK threads would incur massive contention on the rte_mempool global = lock. This was especially evident with the SPDK bdev fio_plugin, which was= specifically designed to show how to use the SPDK bdev layer without using= DPDK threads (or the rest of the SPDK event framework). > > -Jim > > = > =EF=BB=BFOn 10/8/19, 7:09 PM, "Yijing Wang" = wrote: > > Hi James, > = > I'm a spdk developer from china, I'm sorry to disturb you, > recently I read the latest spdk bdev io code, and found that spdk > prepopulate per-thread bdev_io cache in bdev module. > = > As we knew, dpdk rte_mempool_create has a parameter cache_size which > allow users to cache some objects in local cpu, my question is why = you > post the patch to create bdev io cache > = > in bdev own list, but not use default dpdk rte_mempool cache mechnas= im=EF=BC=9F > The reason is dpdk rte_mempool cache cannot prevent a bdev device in= a > thread from starvation? Since dpdk > = > rte_mempool cache is preserved for all users in the same cpu thread. > = > = > Thanks! > = > Yijing. > = > --===============8845770783273192243==--