lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 22 Mar 2019 09:30:25 -0600
From:   Keith Busch <>
To:     Felipe Franciosi <>
Cc:     Maxim Levitsky <>,
        Stefan Hajnoczi <>,
        Fam Zheng <>,
        "" <>,
        Wolfram Sang <>,
        "" <>,
        "" <>,
        Keith Busch <>,
        Kirti Wankhede <>,
        Mauro Carvalho Chehab <>,
        "Paul E . McKenney" <>,
        Christoph Hellwig <>,
        Sagi Grimberg <>,
        "Harris, James R" <>,
        Liang Cunming <>,
        Jens Axboe <>,
        Alex Williamson <>,
        Thanos Makatos <>,
        John Ferlan <>,
        Liu Changpeng <>,
        Greg Kroah-Hartman <>,
        Nicolas Ferre <>,
        Paolo Bonzini <>,
        Amnon Ilan <>,
        "David S . Miller" <>
Subject: Re: 

On Fri, Mar 22, 2019 at 07:54:50AM +0000, Felipe Franciosi wrote:
> > 
> > Note though that SPDK doesn't support sharing the device between host and the
> > guests, it takes over the nvme device, thus it makes the kernel nvme driver
> > unbind from it.
> That is absolutely true. However, I find it not to be a problem in practice.
> Hypervisor products, specially those caring about performance, efficiency and fairness, will dedicate NVMe devices for a particular purpose (eg. vDisk storage, cache, metadata) and will not share these devices for other use cases. That's because these products want to deterministically control the performance aspects of the device, which you just cannot do if you are sharing the device with a subsystem you do not control.

I don't know, it sounds like you've traded kernel syscalls for IPC,
and I don't think one performs better than the other.

> For scenarios where the device must be shared and such fine grained control is not required, it looks like using the kernel driver with io_uring offers very good performance with flexibility.

NVMe's IO Determinism features provide fine grained control for shared
devices. It's still uncommon to find hardware supporting that, though.

Powered by blists - more mailing lists