[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.

http://www.usenix.org/events/fast04/tech/li.html

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