On 06/17/2017 09:03 AM, Christoph Hellwig wrote: > On Sat, Jun 17, 2017 at 08:20:01AM -0600, Jens Axboe wrote: >> We can certainly go that route. So you'd be fine with allocating 4 >> streams controller wide by default, and dump the lazy alloc? We can make >> this depend on the streams module parameter, so people could turn it >> off, if needed. > > We don't even need to allocate the streams - streams are implicitly > allocated on first use: > > "Stream resources that are not allocated for the exclusive use of any > namespace are available NVM subsystem stream resources as reported in > NVM Subsystem Streams Available (NSSA) and may be used by any namespace > that has the Streams Directive enabled and has not been allocated > exclusive stream resources in response to an Allocate Resources > operation." > > so the only thing you need to do is to enable streams on the namespace, > or just for whole whole controller using nsid=0xffffffff I have two samples here, and I just tested, and both of them want it assigned with nsid=0xffffffff or they will fail the writes... So I'd say we're better off ensuring we do allocate them globally. For the IO limits, are you sure you want those exposed? SWS is a write setting, exposing it as io_min may not make sense. For discard, SWS * SGS * block_size ends up being huge, but I guess at least that setting does make sense. -- Jens Axboe