public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
From: David Woodhouse <dwmw2@infradead.org>
To: Vincent Catros <Vincent.Catros@elios-informatique.fr>
Cc: ecos-discuss@sources.redhat.com
Subject: [ECOS] Re: RE : [ECOS] Is JFFS2 thread-safe?
Date: Thu, 27 Nov 2003 09:36:00 -0000	[thread overview]
Message-ID: <1069925786.18076.8.camel@imladris.demon.co.uk> (raw)
In-Reply-To: <000001c3b4c7$023894e0$7407a8c0@figuier>

On Thu, 2003-11-27 at 10:15 +0100, Vincent Catros wrote:
> If I understand, JFFS2 should be thread safe, but this has never been
> tested since multual access is avoided by fileio layer when using
> CYG_SYNCMODE_FILE_FILESYSTEM flag?

The core code of JFFS2, which is shared by both Linux and eCos ports, is
definitely thread safe -- assuming the semaphore and spinlock operations
from Linux are mapped to the correct locking primitives under eCos. I
wonder if spin_lock() should be mapped to a preemption lock. This
locking is documented in the file README.Locking. 

The eCos-specific code of JFFS2 lacks locking on its _own_ inode cache
data structures (i.e. struct _inode, not anything used by the JFFS2
core). In particular the i_cache_{next,prev} lists and the use counts
(i_count) need protection, to deal with simultaneous jffs2_iget() and
jffs2_iput() of the same inode, etc.

That is all currently protected by the CYG_SYNCMODE_FILE_FILESYSTEM
flag, but ideally we'd be able to lose that flag and provide our own
finer-grained locking. Currently, if the garbage collect thread is
implemented (I've put in place only a skeleton), it would need to
LOCK_FS(mte) before calling into jffs2_garbage_collect_pass(). That
would prevent even _read_ activity during the GC pass, which is
suboptimal.

-- 
dwmw2



-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss

  reply	other threads:[~2003-11-27  9:36 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-26  9:15 Vincent Catros
2003-11-27  0:27 ` David Woodhouse
2003-11-27  9:12   ` [ECOS] RE : " Vincent Catros
2003-11-27  9:36     ` David Woodhouse [this message]
2003-11-27 10:00       ` [ECOS] RE : " Vincent Catros
2003-11-27 10:24         ` [ECOS] " David Woodhouse
2003-11-28 11:14     ` [ECOS] " David Woodhouse
     [not found]       ` <1070018876.10048.35.camel@hades.cambridge.redhat.com>
2003-11-28 16:09         ` David Woodhouse
2003-11-29 14:54           ` Gary Thomas
2003-11-29 15:46             ` David Woodhouse
2003-11-29 15:47           ` Nick Garnett
2003-11-29 19:40             ` David Woodhouse
2003-11-27 17:02   ` Vincent Catros
2003-11-28 11:09     ` [ECOS] " David Woodhouse

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=1069925786.18076.8.camel@imladris.demon.co.uk \
    --to=dwmw2@infradead.org \
    --cc=Vincent.Catros@elios-informatique.fr \
    --cc=ecos-discuss@sources.redhat.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).