From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36239) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c4SHu-0006Yv-C5 for qemu-devel@nongnu.org; Wed, 09 Nov 2016 07:47:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c4SHp-00058U-F2 for qemu-devel@nongnu.org; Wed, 09 Nov 2016 07:47:34 -0500 Received: from mx1.redhat.com ([209.132.183.28]:47098) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1c4SHp-000588-9g for qemu-devel@nongnu.org; Wed, 09 Nov 2016 07:47:29 -0500 References: <1475035789-685-1-git-send-email-ashish.mittal@veritas.com> <20160930083606.GA5411@stefanha-x1.localdomain> <20161104095223.GC9817@stefanha-x1.localdomain> <87C0A0E2-9D12-4C54-81F9-07C5200A5306@veritas.com> <20161107102202.GA5036@stefanha-x1.localdomain> <20161108153915.GA11274@stefanha-x1.localdomain> From: Paolo Bonzini Message-ID: Date: Wed, 9 Nov 2016 13:47:22 +0100 MIME-Version: 1.0 In-Reply-To: <20161108153915.GA11274@stefanha-x1.localdomain> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v7 RFC] block/vxhs: Initial commit to add Veritas HyperScale VxHS block device support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi , Ketan Nilangekar Cc: Ashish Mittal , "qemu-devel@nongnu.org" , "kwolf@redhat.com" , "armbru@redhat.com" , "berrange@redhat.com" , "jcody@redhat.com" , "famz@redhat.com" , Ashish Mittal , Abhijit Dey On 08/11/2016 16:39, Stefan Hajnoczi wrote: > The current status is: >=20 > 1. virtio-blk and virtio-scsi support multiple queues but these queues > are processed from a single thread today. >=20 > 2. MemoryRegions can be marked with !global_locking so its handler > functions are dispatched without taking the QEMU global mutex. This > allows device emulation to run in multiple threads. Alternatively, virtio-blk and virtio-scsi can already use ioeventfd and "-object iothread,id=3DFOO -device virtio-blk-pci,iothread=3DFOO" to let device emulation run in a separate thread that doesn't take the QEMU global mutex. > 3. Paolo Bonzini (CCed) is currently working on make the block layer > (BlockDriverState and co) support access from multiple threads and > multiqueue. This is work in progress. >=20 > If you are interested in this work keep an eye out for patch series fro= m > Paolo Bonzini and Fam Zheng. The first part (drop RFifoLock) was committed for 2.8. It's a relatively long road, but these are the currently ready parts of the work= : - take AioContext acquire/release in small critical sections - push AioContext down to individual callbacks - make BlockDriverState thread-safe The latter needs rebasing after the last changes to dirty bitmaps, but I think these patches should be ready for 2.9. These are the planned bits: - replace AioContext with fine-grained mutex in bdrv_aio_* - protect everything with CoMutex in bdrv_co_* - remove aio_context_acquire/release For now I was not planning to make network backends support multiqueue, only files. Paolo