The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
To: Ramprasad C <ramprasad.ch@gmail.com>
Cc: axboe@kernel.dk, abhansali@stec-inc.com, jmoyer@redhat.com,
	kyungmin.park@samsung.com, linux-kernel@vger.kernel.org,
	osengineering@stec-inc.com, Amit.Phansalkar@hgst.com
Subject: Re: [PATCH 14/14] skd: remove skd_bio code
Date: Tue, 01 Oct 2013 18:30:54 +0200	[thread overview]
Message-ID: <3898812.vf7OgV5Y6P@amdc1032> (raw)
In-Reply-To: <CACbH579bNVcSMiWKexxNG=E3BXF1yoEDttHf3A94ZQyNpdM7Cg@mail.gmail.com>


Hi Ramprasad,

On Tuesday, October 01, 2013 06:46:00 PM Ramprasad C wrote:
> Hi Bartlomiej,
> 
> Thank for your contributions to skd driver.
> 
> The reason why skd driver has two code paths is:-
> 1. For some workloads, Bio code path (skd_bio=1) performs better as
> compared to default code, like random r/w, high queue depths, direct i/o
> etc. In Bio code path, driver bypasses linux block elevator + scheduler
> layers and 'struct bio' comes directly to driver through make_request_fn().

Have you tried using "noop" I/O scheduler to alleviate the issue?

You need the kernel compiled with CONFIG_IOSCHED_NOOP=y (it is enabled by
default) and then do i.e. "echo noop > /sys/block/skd0/queue/scheduler" to
enable "noop" I/O scheduler for the skd0 block device.

> 2. For some workloads like buffered mode (app) i/o, the default code path
> performs much better. Hence, both the code paths are kept with module
> parameter. We would prefer to have both code paths.

It would be very useful to see some numbers for skd_bio=1 and skd_bio=0
(with "noop" I/O scheduler enabled) for the affected workloads to see what
kind of improvement is offered by skd_bio=1.

If the block layer queuing code is a problem even with "noop" I/O scheduler
it would be much better try to identify and fix (if possible) the problem
parts in the generic block layer code. This would benefit all SSD hardware
used on Linux not only the one supported by skd driver.

Also it is very inflexible to require the driver re-load just to optimize
it for some workload. I believe that a better solution (runtime selection
of the mode of operation at the block layer level) can be provided if
really necessary.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

> Regards,
> Ramprasad
> 
> 
> 
> On Mon, Sep 30, 2013 at 6:55 PM, Bartlomiej Zolnierkiewicz <
> b.zolnierkie@samsung.com> wrote:
> 
> > skd_bio feature adds a possibility to use the internal bio list to process
> > requests instead of using the normal block layer queueing functionality.
> > Its potential advantages are unclear and if there are any it is better to
> > identify and fix the block layer code deficiences instead. Moreover it
> > introduces separate code-paths through the whole driver which are difficult
> > to test properly and maintain in the long-term. Since it is currently not
> > used unless explicitly enabled by module parameter just remove it.
> >
> > Cc: Akhil Bhansali <abhansali@stec-inc.com>
> > Cc: Jeff Moyer <jmoyer@redhat.com>
> > Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> > ---
> >  drivers/block/skd_main.c | 605
> > ++++++-----------------------------------------
> >  1 file changed, 76 insertions(+), 529 deletions(-)


  parent reply	other threads:[~2013-10-01 16:31 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-30 13:25 [PATCH 00/14] skd: various fixes/cleanups Bartlomiej Zolnierkiewicz
2013-09-30 13:25 ` [PATCH 01/14] skd: fix unregister_blkdev() placement Bartlomiej Zolnierkiewicz
2013-09-30 13:25 ` [PATCH 02/14] skd: fix error paths in skd_init() Bartlomiej Zolnierkiewicz
2013-09-30 13:25 ` [PATCH 03/14] skd: fix error messages " Bartlomiej Zolnierkiewicz
2013-09-30 13:25 ` [PATCH 04/14] skd: alloc flush slab only if some devices are present Bartlomiej Zolnierkiewicz
2013-09-30 13:25 ` [PATCH 05/14] skd: register block device " Bartlomiej Zolnierkiewicz
2013-09-30 13:25 ` [PATCH 06/14] skd: remove SCSI subsystem specific includes Bartlomiej Zolnierkiewicz
2013-10-01 12:05   ` Christoph Hellwig
2013-09-30 13:25 ` [PATCH 07/14] skd: use <asm/unaligned.h> Bartlomiej Zolnierkiewicz
2013-09-30 13:25 ` [PATCH 08/14] skd: remove redundant skdev->pdev assignment from skd_pci_probe() Bartlomiej Zolnierkiewicz
2013-09-30 13:25 ` [PATCH 09/14] skd: remove SKD_OMIT_FROM_SRC_DIST ifdefs Bartlomiej Zolnierkiewicz
2013-09-30 13:25 ` [PATCH 10/14] skd: cleanup skd_do_inq_page_da() Bartlomiej Zolnierkiewicz
2013-09-30 13:25 ` [PATCH 11/14] skd: reorder construct/destruct code Bartlomiej Zolnierkiewicz
2013-09-30 13:25 ` [PATCH 12/14] skd: reorder skd_flush_cmd_[en,de]queue() code Bartlomiej Zolnierkiewicz
2013-09-30 13:25 ` [PATCH 13/14] skd: fix formatting in skd_s1120.h Bartlomiej Zolnierkiewicz
2013-09-30 13:25 ` [PATCH 14/14] skd: remove skd_bio code Bartlomiej Zolnierkiewicz
     [not found]   ` <CACbH579bNVcSMiWKexxNG=E3BXF1yoEDttHf3A94ZQyNpdM7Cg@mail.gmail.com>
2013-10-01 16:30     ` Bartlomiej Zolnierkiewicz [this message]
2013-10-03 12:00       ` OS Engineering
2013-11-04 11:08 ` [PATCH 00/14] skd: various fixes/cleanups Bartlomiej Zolnierkiewicz
2013-11-04 15:24   ` Jens Axboe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3898812.vf7OgV5Y6P@amdc1032 \
    --to=b.zolnierkie@samsung.com \
    --cc=Amit.Phansalkar@hgst.com \
    --cc=abhansali@stec-inc.com \
    --cc=axboe@kernel.dk \
    --cc=jmoyer@redhat.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=osengineering@stec-inc.com \
    --cc=ramprasad.ch@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox