[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