[Stgt-devel] More threads for device server

FUJITA Tomonori fujita.tomonori at lab.ntt.co.jp
Mon Sep 5 06:41:49 CEST 2005

From: Mike Christie <michaelc at cs.wisc.edu>
Subject: Re: [Stgt-devel] More threads for device server
Date: Sun, 04 Sep 2005 22:53:13 -0500

> >>>The current code uses work queue for performing SCSI commands (or
> >>>block target's tasks). Work queue is simple and good enough for
> >>>debugging, however, a single thread per CPU is not good enough (from
> >>>the performance perspective).
> >>>
> >>>I thought about creating multiple kernel threads by hand. Are there
> >>>handy APIs?
> >>
> >>you can create a single threaded workqueue per target or session?
> > 
> > 
> > The vfs APIs work synchronously. So we need multiple threads per
> > target (or session) to perform several SCSI commands simultaneously.
> > 
> > If we always use asynchronous block I/O APIs (like AIO vfs,
> > submit_bio, etc), a single threaded workqueue would be fine.
> Hey what was the submit_bio idea though? Is there a way o do that and 
> still get to use the systems cache?

Some storage systems want to use own cache algorithm, so avoiding page
cache can be useful.

The following paper might interest you.


It says that EMC Symmetric storage systems can have 4-64 GB of memory
for cache.

Anyway, direct I/O is handy than submit_bio, I guess.

More information about the stgt mailing list