From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752832AbbCYBm1 (ORCPT ); Tue, 24 Mar 2015 21:42:27 -0400 Received: from mail-pa0-f52.google.com ([209.85.220.52]:35664 "EHLO mail-pa0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752456AbbCYBmY (ORCPT ); Tue, 24 Mar 2015 21:42:24 -0400 Message-ID: <5512127D.2040508@kernel.dk> Date: Tue, 24 Mar 2015 19:42:21 -0600 From: Jens Axboe User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: Ming Lin-SSI , =?windows-1252?Q?Matias_Bj=F8?= =?windows-1252?Q?rling?= , Jens Axboe , "linux-kernel@vger.kernel.org" , "linux-fsdevel@vger.kernel.org" Subject: Re: [PATCH 1/6] block: add support for carrying a stream ID in a bio References: <1427210823-5283-1-git-send-email-axboe@fb.com> <1427210823-5283-2-git-send-email-axboe@fb.com> <55119AAE.9030202@bjorling.me> <55119E5E.6020405@kernel.dk> <3A47B4705F6BE24CBB43C61AA73286215067DA@SSIEXCH-MB3.ssi.samsung.com> In-Reply-To: <3A47B4705F6BE24CBB43C61AA73286215067DA@SSIEXCH-MB3.ssi.samsung.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 03/24/2015 04:07 PM, Ming Lin-SSI wrote: >> -----Original Message----- >> From: Jens Axboe [mailto:axboe@kernel.dk] >> Sent: Tuesday, March 24, 2015 10:27 AM >> To: Matias Bjørling; Jens Axboe; linux-kernel@vger.kernel.org; linux- >> fsdevel@vger.kernel.org >> Cc: Ming Lin-SSI >> Subject: Re: [PATCH 1/6] block: add support for carrying a stream ID in a bio >> >> On 03/24/2015 11:11 AM, Matias Bjørling wrote: >>> On 03/24/2015 04:26 PM, Jens Axboe wrote: >>>> The top bits of bio->bi_flags are reserved for keeping the allocation >>>> pool, set aside the next four bits for carrying a stream ID. That >>>> leaves us with support for 15 streams, >>>> 0 is reserved as a "stream not set" value. >>> >>> 15 streams seem very limited. Can this be extended? e.g. 16 bits. >>> >>> 15 streams is enough for 1-4 applications. More, and applications >>> starts to fight over the same stream id's, leading them to place >>> different age data in same flash blocks and push us back to square one. >>> >>> I understand that Samsung multi-stream SSD supports a limited amount >>> of streams, more advance implementations should provide higher limits. >> >> Pushing it higher is not a big deal as far as the implementation goes, though >> 16 bits might be stealing a bit too much space for this. On 32-bit archs, we >> have 18 bits currently free that we can abuse. The Samsung device supports >> 16 streams. That's honestly a lot more than I would expect most devices to >> support in hardware, 16 is a lot of open erase blocks and write append points. >> Obviously the open channel effort would make that more feasible, though. > > Can we use 8 bits at least? I'll test performance with 16 streams. We could, but I still question whether that's really useful. I'd rather start smaller and go bigger if there's a real use case for it. It wont change the user space ABI if we later make it larger. -- Jens Axboe